> | T[])} - The grouped data.\n *\n * @example\n * ```ts\n *\n * import { groupBy } from '@progress/kendo-data-query';\n *\n * const data = [\n * { name: \"Pork\", category: \"Food\", subcategory: \"Meat\" },\n * { name: \"Pepper\", category: \"Food\", subcategory: \"Vegetables\" },\n * { name: \"Beef\", category: \"Food\", subcategory: \"Meat\" }\n * ];\n *\n * const result = groupBy(data, [{ field: \"subcategory\" }]);\n * ```\n */\nexport var groupBy = function (data, descriptors, transformers, originalData) {\n if (descriptors === void 0) { descriptors = []; }\n if (transformers === void 0) { transformers = identity; }\n if (originalData === void 0) { originalData = data; }\n descriptors = normalizeGroups(descriptors);\n if (!descriptors.length) {\n return data;\n }\n var descriptor = descriptors[0];\n var initialValue = {};\n var view = exec(transformers(groupCombinator(descriptor.field)), initialValue, data);\n var result = [];\n Object.keys(view).forEach(function (field) {\n Object.keys(view[field]).forEach(function (value) {\n var group = view[field][value];\n var aggregateResult = {};\n var filteredData = originalData;\n if (isPresent(descriptor.aggregates)) {\n filteredData = filterBy(originalData, {\n field: descriptor.field,\n ignoreCase: false,\n operator: 'eq',\n value: group.value\n });\n aggregateResult = aggregateBy(filteredData, descriptor.aggregates);\n }\n result[group.__position] = {\n aggregates: aggregateResult,\n field: field,\n items: descriptors.length > 1 ?\n groupBy(group.items, descriptors.slice(1), identity, filteredData)\n : group.items,\n value: group.value\n };\n });\n });\n return result;\n};\n","import { isPresent, isString } from './utils';\nimport { composeSortDescriptors } from './sorting/sort-array.operator';\nimport { groupBy, normalizeGroups } from './grouping/group.operators';\nimport { normalizeFilters } from './filtering/filter.operators';\nimport { compileFilter } from './filtering/filter-expression.factory';\nimport { exec, skip, take, filter, concat } from './transducers';\nimport { getter } from './accessor';\nimport { compose } from './funcs';\nimport { sort } from './sorting/sort';\n/**\n * Orders the specified array according to the provided sort descriptors.\n *\n * @param {T[]} data - The data to be sorted.\n * @param {SortDescriptor[]} descriptors - The descriptors by which the data will be sorted.\n * @returns {T[]} - The sorted data.\n *\n * @example\n * ```ts\n * import { orderBy } from '@progress/kendo-data-query';\n *\n * const data = [\n * { name: \"Pork\", category: \"Food\", subcategory: \"Meat\" },\n * { name: \"Pepper\", category: \"Food\", subcategory: \"Vegetables\" },\n * { name: \"Beef\", category: \"Food\", subcategory: \"Meat\" }\n * ];\n *\n * const result = orderBy(data, [{ field: \"name\", dir: \"asc\" }]);\n * ```\n */\nexport var orderBy = function (data, descriptors) {\n if (descriptors.some(function (x) { return isPresent(x.dir); })) {\n data = data.slice(0);\n var comparer = composeSortDescriptors(descriptors);\n sort(data, 0, data.length, comparer);\n }\n return data;\n};\nvar defaultComparer = function (a, b) { return a === b; };\nvar normalizeComparer = function (comparer) {\n if (isString(comparer)) {\n var accessor_1 = getter(comparer);\n comparer = function (a, b) { return accessor_1(a) === accessor_1(b); };\n }\n return comparer;\n};\nvar _distinct = function (data, comparer) {\n return data.filter(function (x, idx, xs) { return xs.findIndex(comparer.bind(null, x)) === idx; });\n};\n/**\n * Reduces the provided array so it contains only unique values.\n *\n * @param {T[]} data - The array that will be reduced.\n * @param {(Comparer | string)} comparer - An optional custom comparer function or the field name that will be used for comparison.\n * @returns {T[]} - The reduced data.\n *\n * @example\n * ```ts\n * import { distinct } from '@progress/kendo-data-query';\n *\n * const data = [\n * { name: \"Pork\", category: \"Food\", subcategory: \"Meat\" },\n * { name: \"Pepper\", category: \"Food\", subcategory: \"Vegetables\" },\n * { name: \"Beef\", category: \"Food\", subcategory: \"Meat\" }\n * ];\n *\n * const result = distinct(data, \"subcategory\");\n *\n * // output:\n * // result => [\n * // { name: \"Pork\", category: \"Food\", subcategory: \"Meat\" },\n * // { name: \"Pepper\", category: \"Food\", subcategory: \"Vegetables\" }\n * // ];\n * ```\n */\nexport var distinct = function (data, comparer) {\n if (comparer === void 0) { comparer = defaultComparer; }\n return _distinct(data, normalizeComparer(comparer));\n};\n/**\n * @hidden\n */\nexport var count = function (data, predicate) {\n var counter = 0;\n for (var idx = 0, length_1 = data.length; idx < length_1; idx++) {\n if (predicate(data[idx])) {\n counter++;\n }\n }\n return counter;\n};\n/**\n * @hidden\n */\nexport var limit = function (data, predicate) {\n if (predicate) {\n return data.filter(predicate);\n }\n return data;\n};\n/**\n * Applies the specified operation descriptors to the data.\n *\n * @param {T[]} data - The data to be processed.\n * @param {State} state - The operation descriptors that will be applied to the data.\n * @returns {DataResult} - The processed data.\n *\n * @example\n * ```ts\n *\n * const result = process(data, {\n * skip: 10,\n * take: 20,\n * group: [{\n * field: 'category.categoryName',\n * aggregates: [\n * { aggregate: \"sum\", field: \"unitPrice\" },\n * { aggregate: \"sum\", field: \"unitsInStock\" }\n * ]\n * }],\n * sort: [{ field: 'productName', dir: 'desc' }],\n * filter: {\n * logic: \"or\",\n * filters: [\n * { field: \"discontinued\", operator: \"eq\", value: true },\n * { field: \"unitPrice\", operator: \"lt\", value: 22 }\n * ]\n * }\n * });\n *\n * ```\n */\nexport var process = function (data, state) {\n var skipCount = state.skip, takeCount = state.take, filterDescriptor = state.filter, sort = state.sort, group = state.group;\n var sortDescriptors = normalizeGroups(group || []).concat(sort || []);\n if (sortDescriptors.length) {\n data = orderBy(data, sortDescriptors);\n }\n var hasFilters = isPresent(filterDescriptor) && filter.length;\n var hasGroups = isPresent(group) && group.length;\n if (!hasFilters && !hasGroups) {\n return {\n data: takeCount ? data.slice(skipCount, skipCount + takeCount) : data,\n total: data.length\n };\n }\n var total;\n var transformers = [];\n var predicate;\n if (hasFilters) {\n predicate = compileFilter(normalizeFilters(filterDescriptor));\n total = count(data, predicate);\n transformers.push(filter(predicate));\n }\n else {\n total = data.length;\n }\n if (isPresent(skipCount) && isPresent(takeCount)) {\n transformers.push(skip(skipCount));\n transformers.push(take(takeCount));\n }\n if (transformers.length) {\n var transform = compose.apply(void 0, transformers);\n var result = hasGroups ?\n groupBy(data, group, transform, limit(data, predicate)) :\n exec(transform(concat), [], data);\n return { data: result, total: total };\n }\n return {\n data: hasGroups ? groupBy(data, group) : data,\n total: total\n };\n};\n","var proxy = function (a, b) { return function (e) { return b(a(e)); }; };\n\nvar bind = function (el, event, callback) { return el.addEventListener && el.addEventListener(event, callback); };\n\nvar unbind = function (el, event, callback) { return el && el.removeEventListener && el.removeEventListener(event, callback); };\n\nvar noop = function () { /* empty */ };\n\nvar preventDefault = function (e) { return e.preventDefault(); };\n\nvar touchRegExp = /touch/;\n\n// 300ms is the usual mouse interval;\n// // However, an underpowered mobile device under a heavy load may queue mouse events for a longer period.\nvar IGNORE_MOUSE_TIMEOUT = 2000;\n\nfunction normalizeEvent(e) {\n if (e.type.match(touchRegExp)) {\n return {\n pageX: e.changedTouches[0].pageX,\n pageY: e.changedTouches[0].pageY,\n clientX: e.changedTouches[0].clientX,\n clientY: e.changedTouches[0].clientY,\n type: e.type,\n originalEvent: e,\n isTouch: true\n };\n }\n\n return {\n pageX: e.pageX,\n pageY: e.pageY,\n clientX: e.clientX,\n clientY: e.clientY,\n offsetX: e.offsetX,\n offsetY: e.offsetY,\n type: e.type,\n ctrlKey: e.ctrlKey,\n shiftKey: e.shiftKey,\n altKey: e.altKey,\n originalEvent: e\n };\n}\n\nexport var Draggable = function Draggable(ref) {\n var this$1 = this;\n var press = ref.press; if ( press === void 0 ) press = noop;\n var drag = ref.drag; if ( drag === void 0 ) drag = noop;\n var release = ref.release; if ( release === void 0 ) release = noop;\n var mouseOnly = ref.mouseOnly; if ( mouseOnly === void 0 ) mouseOnly = false;\n\n this._pressHandler = proxy(normalizeEvent, press);\n this._dragHandler = proxy(normalizeEvent, drag);\n this._releaseHandler = proxy(normalizeEvent, release);\n this._ignoreMouse = false;\n this._mouseOnly = mouseOnly;\n\n this._touchstart = function (e) {\n if (e.touches.length === 1) {\n this$1._pressHandler(e);\n }\n };\n\n this._touchmove = function (e) {\n if (e.touches.length === 1) {\n this$1._dragHandler(e);\n }\n };\n\n this._touchend = function (e) {\n // the last finger has been lifted, and the user is not doing gesture.\n // there might be a better way to handle this.\n if (e.touches.length === 0 && e.changedTouches.length === 1) {\n this$1._releaseHandler(e);\n this$1._ignoreMouse = true;\n setTimeout(this$1._restoreMouse, IGNORE_MOUSE_TIMEOUT);\n }\n };\n\n this._restoreMouse = function () {\n this$1._ignoreMouse = false;\n };\n\n this._mousedown = function (e) {\n var which = e.which;\n\n if ((which && which > 1) || this$1._ignoreMouse) {\n return;\n }\n\n bind(this$1.document, \"mousemove\", this$1._mousemove);\n bind(this$1.document, \"mouseup\", this$1._mouseup);\n this$1._pressHandler(e);\n };\n\n this._mousemove = function (e) {\n this$1._dragHandler(e);\n };\n\n this._mouseup = function (e) {\n unbind(this$1.document, \"mousemove\", this$1._mousemove);\n unbind(this$1.document, \"mouseup\", this$1._mouseup);\n this$1._releaseHandler(e);\n };\n\n this._pointerdown = function (e) {\n if (e.isPrimary && e.button === 0) {\n bind(this$1.document, \"pointermove\", this$1._pointermove);\n bind(this$1.document, \"pointerup\", this$1._pointerup);\n bind(this$1.document, \"pointercancel\", this$1._pointerup);\n bind(this$1.document, \"contextmenu\", preventDefault);\n\n this$1._pressHandler(e);\n }\n };\n\n this._pointermove = function (e) {\n if (e.isPrimary) {\n this$1._dragHandler(e);\n }\n };\n\n this._pointerup = function (e) {\n if (e.isPrimary) {\n unbind(this$1.document, \"pointermove\", this$1._pointermove);\n unbind(this$1.document, \"pointerup\", this$1._pointerup);\n unbind(this$1.document, \"pointercancel\", this$1._pointerup);\n unbind(this$1.document, \"contextmenu\", preventDefault);\n\n this$1._releaseHandler(e);\n }\n };\n};\n\nvar prototypeAccessors = { document: { configurable: true } };\n\nDraggable.supportPointerEvent = function supportPointerEvent () {\n return (typeof window !== 'undefined') && window.PointerEvent;\n};\n\nprototypeAccessors.document.get = function () {\n return this._element\n ? this._element.ownerDocument\n : document;\n};\n\nDraggable.prototype.bindTo = function bindTo (element) {\n if (element === this._element) {\n return;\n }\n\n if (this._element) {\n this._unbindFromCurrent();\n }\n\n this._element = element;\n this._bindToCurrent();\n};\n\nDraggable.prototype._bindToCurrent = function _bindToCurrent () {\n var element = this._element;\n\n if (this._usePointers()) {\n bind(element, \"pointerdown\", this._pointerdown);\n return;\n }\n\n bind(element, \"mousedown\", this._mousedown);\n\n if (!this._mouseOnly) {\n bind(element, \"touchstart\", this._touchstart);\n bind(element, \"touchmove\", this._touchmove);\n bind(element, \"touchend\", this._touchend);\n }\n};\n\nDraggable.prototype._unbindFromCurrent = function _unbindFromCurrent () {\n var element = this._element;\n\n if (this._usePointers()) {\n unbind(element, \"pointerdown\", this._pointerdown);\n unbind(this.document, \"pointermove\", this._pointermove);\n unbind(this.document, \"pointerup\", this._pointerup);\n unbind(this.document, \"contextmenu\", preventDefault);\n unbind(this.document, \"pointercancel\", this._pointerup);\n return;\n }\n\n unbind(element, \"mousedown\", this._mousedown);\n\n if (!this._mouseOnly) {\n unbind(element, \"touchstart\", this._touchstart);\n unbind(element, \"touchmove\", this._touchmove);\n unbind(element, \"touchend\", this._touchend);\n }\n};\n\nDraggable.prototype._usePointers = function _usePointers () {\n return !this._mouseOnly && Draggable.supportPointerEvent();\n};\n\nDraggable.prototype.update = function update (ref) {\n var press = ref.press; if ( press === void 0 ) press = noop;\n var drag = ref.drag; if ( drag === void 0 ) drag = noop;\n var release = ref.release; if ( release === void 0 ) release = noop;\n var mouseOnly = ref.mouseOnly; if ( mouseOnly === void 0 ) mouseOnly = false;\n\n this._pressHandler = proxy(normalizeEvent, press);\n this._dragHandler = proxy(normalizeEvent, drag);\n this._releaseHandler = proxy(normalizeEvent, release);\n this._mouseOnly = mouseOnly;\n};\n\nDraggable.prototype.destroy = function destroy () {\n this._unbindFromCurrent();\n this._element = null;\n};\n\nObject.defineProperties( Draggable.prototype, prototypeAccessors );\n\n// Re-export as \"default\" field to address a bug\n// where the ES Module is imported by CommonJS code.\n//\n// See https://github.com/telerik/kendo-angular/issues/1314\nDraggable.default = Draggable;\n\n// Rollup won't output exports['default'] otherwise\nexport default Draggable;\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: {\n tileSizeWidth: {\n type: Number,\n default: undefined,\n kComposite: 'tileSize.width'\n },\n tileSizeHeight: {\n type: Number,\n default: undefined,\n kComposite: 'tileSize.height'\n }\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: {\n tooltipEnabled: {\n type: Boolean,\n default: undefined,\n kComposite: 'tooltip.enabled'\n },\n tooltipFormat: {\n type: String,\n default: undefined,\n kComposite: 'tooltip.format'\n },\n tooltipTemplate: {\n type: String,\n default: undefined,\n kComposite: 'tooltip.template'\n }\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n palette: {\n type: [String, Array],\n default: undefined\n },\n columns: {\n type: Number,\n default: undefined\n },\n tileSize: {\n type: [Number, Object],\n default: undefined\n },\n value: {\n type: String,\n default: undefined\n },\n\n // Events\n change: Function\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _kendoBaseComponentsVueWrapper = require('@progress/kendo-base-components-vue-wrapper');\n\nvar _ColorPaletteProps = require('./ColorPaletteProps');\n\nvar _ColorPaletteProps2 = _interopRequireDefault(_ColorPaletteProps);\n\nvar _TileSize = require('../Common/TileSize');\n\nvar _TileSize2 = _interopRequireDefault(_TileSize);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: _ColorPaletteProps2.default,\n emits: {\n 'kendowidgetready': null\n },\n mixins: [_kendoBaseComponentsVueWrapper.KendoBaseComponent, _TileSize2.default],\n mounted: function mounted() {\n kendo.jQuery(this.$el).kendoColorPalette(this.widgetOptions);\n\n if (this.v3) {\n this.ready();\n this.$emit('kendowidgetready', this.kendoWidget());\n } else {\n this.$emit('kendowidgetready', this.kendoWidget());\n }\n },\n\n methods: {\n kendoWidget: function kendoWidget() {\n return kendo.jQuery(this.$el).getKendoColorPalette();\n }\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _vue = require('vue');\n\nvar Vue = _interopRequireWildcard(_vue);\n\nvar _KendoColorPaletteMixin = require('./KendoColorPaletteMixin');\n\nvar _KendoColorPaletteMixin2 = _interopRequireDefault(_KendoColorPaletteMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar allVue = Vue;\nvar gh = allVue.h;\nexports.default = {\n name: 'kendo-colorpalette',\n mixins: [_KendoColorPaletteMixin2.default],\n setup: function setup() {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n return h('div');\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n modelValue: {\n type: String,\n default: undefined\n },\n buttons: {\n type: Boolean,\n default: undefined\n },\n clearButton: {\n type: Boolean,\n default: undefined\n },\n columns: {\n type: Number,\n default: undefined\n },\n tileSize: {\n type: [Number, Object],\n default: undefined\n },\n messages: {\n type: Object,\n default: undefined\n },\n palette: {\n type: [String, Array],\n default: undefined\n },\n opacity: {\n type: Boolean,\n default: undefined\n },\n preview: {\n type: Boolean,\n default: undefined\n },\n toolIcon: {\n type: String,\n default: undefined\n },\n value: {\n type: String,\n default: undefined\n },\n\n // Events\n change: Function,\n select: Function,\n open: Function,\n close: Function\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _kendoBaseComponentsVueWrapper = require('@progress/kendo-base-components-vue-wrapper');\n\nvar _ColorPickerProps = require('./ColorPickerProps');\n\nvar _ColorPickerProps2 = _interopRequireDefault(_ColorPickerProps);\n\nvar _Messages = require('./Messages');\n\nvar _Messages2 = _interopRequireDefault(_Messages);\n\nvar _TileSize = require('../Common/TileSize');\n\nvar _TileSize2 = _interopRequireDefault(_TileSize);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n emits: {\n 'update:modelValue': null,\n 'kendowidgetready': null\n },\n props: _ColorPickerProps2.default,\n mixins: [_kendoBaseComponentsVueWrapper.KendoBaseComponent, _kendoBaseComponentsVueWrapper.KendoBaseInputComponent, _Messages2.default, _TileSize2.default],\n mounted: function mounted() {\n var that = this;\n kendo.jQuery(that.$el).kendoColorPicker(that.widgetOptions);\n\n if (this.v3) {\n this.ready();\n this.$emit('kendowidgetready', this.kendoWidget());\n } else {\n this.$emit('kendowidgetready', this.kendoWidget());\n }\n\n that.kendoWidget().bind('change', function () {\n var kendoWidget = that.kendoWidget();\n var inputElement = kendoWidget.element;\n if (that.v3) {\n that.$emit('update:modelValue', inputElement.val());\n } else {\n that.$emit('changemodel', inputElement.val());\n }\n });\n },\n\n methods: {\n kendoWidget: function kendoWidget() {\n return kendo.jQuery(this.$el).getKendoColorPicker();\n }\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: {\n messagesApply: {\n type: String,\n default: undefined,\n kComposite: 'messages.apply'\n },\n messagesCancel: {\n type: String,\n default: undefined,\n kComposite: 'messages.cancel'\n },\n messagesPreviewInput: {\n type: String,\n default: undefined,\n kComposite: 'messages.previewInput'\n }\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _vue = require('vue');\n\nvar Vue = _interopRequireWildcard(_vue);\n\nvar _KendoColorPickerMixin = require('./KendoColorPickerMixin');\n\nvar _KendoColorPickerMixin2 = _interopRequireDefault(_KendoColorPickerMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar allVue = Vue;\nvar gh = allVue.h;\nexports.default = {\n name: 'kendo-colorpicker',\n mixins: [_KendoColorPickerMixin2.default],\n setup: function setup() {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n if (this.v3) {\n return h('input', {\n value: this.value\n });\n } else {\n return h('input', {\n props: {\n value: this.value\n }\n });\n }\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n opacity: {\n type: Boolean,\n default: undefined\n },\n buttons: {\n type: Boolean,\n default: undefined\n },\n value: {\n type: String,\n default: undefined\n },\n preview: {\n type: Boolean,\n default: undefined\n },\n autoupdate: {\n type: Boolean,\n default: undefined\n },\n messages: {\n type: Object,\n default: undefined\n },\n\n // Events\n change: Function\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _kendoBaseComponentsVueWrapper = require('@progress/kendo-base-components-vue-wrapper');\n\nvar _FlatColorPickerProps = require('./FlatColorPickerProps');\n\nvar _FlatColorPickerProps2 = _interopRequireDefault(_FlatColorPickerProps);\n\nvar _Messages = require('./Messages');\n\nvar _Messages2 = _interopRequireDefault(_Messages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: _FlatColorPickerProps2.default,\n emits: {\n 'kendowidgetready': null\n },\n mixins: [_kendoBaseComponentsVueWrapper.KendoBaseComponent, _Messages2.default],\n mounted: function mounted() {\n kendo.jQuery(this.$el).kendoFlatColorPicker(this.widgetOptions);\n\n if (this.v3) {\n this.ready();\n this.$emit('kendowidgetready', this.kendoWidget());\n } else {\n this.$emit('kendowidgetready', this.kendoWidget());\n }\n },\n\n methods: {\n kendoWidget: function kendoWidget() {\n return kendo.jQuery(this.$el).getKendoFlatColorPicker();\n }\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: {\n messagesApply: {\n type: String,\n default: undefined,\n kComposite: 'messages.apply'\n },\n messagesCancel: {\n type: String,\n default: undefined,\n kComposite: 'messages.cancel'\n }\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _vue = require('vue');\n\nvar Vue = _interopRequireWildcard(_vue);\n\nvar _KendoFlatColorPickerMixin = require('./KendoFlatColorPickerMixin');\n\nvar _KendoFlatColorPickerMixin2 = _interopRequireDefault(_KendoFlatColorPickerMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar allVue = Vue;\nvar gh = allVue.h;\nexports.default = {\n name: 'kendo-flatcolorpicker',\n mixins: [_KendoFlatColorPickerMixin2.default],\n setup: function setup() {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n return h('div');\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _kendoBaseComponentsVueWrapper = require('@progress/kendo-base-components-vue-wrapper');\n\nvar _MaskedTextBoxProps = require('./MaskedTextBoxProps');\n\nvar _MaskedTextBoxProps2 = _interopRequireDefault(_MaskedTextBoxProps);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n emits: {\n 'update:modelValue': null,\n 'kendowidgetready': null\n },\n props: _MaskedTextBoxProps2.default,\n mixins: [_kendoBaseComponentsVueWrapper.KendoBaseComponent, _kendoBaseComponentsVueWrapper.KendoBaseInputComponent],\n mounted: function mounted() {\n var that = this;\n kendo.jQuery(that.$el).kendoMaskedTextBox(that.widgetOptions);\n\n if (this.v3) {\n this.ready();\n this.$emit('kendowidgetready', this.kendoWidget());\n } else {\n this.$emit('kendowidgetready', this.kendoWidget());\n }\n\n that.kendoWidget().bind('change', function () {\n var kendoWidget = that.kendoWidget();\n var inputElement = kendoWidget.element;\n if (that.v3) {\n that.$emit('update:modelValue', inputElement.val());\n } else {\n that.$emit('changemodel', inputElement.val());\n }\n });\n },\n\n methods: {\n kendoWidget: function kendoWidget() {\n return kendo.jQuery(this.$el).getKendoMaskedTextBox();\n }\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n modelValue: {\n type: String,\n default: undefined\n },\n clearPromptChar: {\n type: Boolean,\n default: undefined\n },\n culture: {\n type: String,\n default: undefined\n },\n mask: {\n type: String,\n default: undefined\n },\n promptChar: {\n type: String,\n default: undefined\n },\n rules: {\n type: Object,\n default: undefined\n },\n unmaskOnPost: {\n type: Boolean,\n default: undefined\n },\n value: {\n type: String,\n default: undefined\n },\n\n // Events\n change: Function\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _vue = require('vue');\n\nvar Vue = _interopRequireWildcard(_vue);\n\nvar _KendoMaskedTextBoxMixin = require('./KendoMaskedTextBoxMixin');\n\nvar _KendoMaskedTextBoxMixin2 = _interopRequireDefault(_KendoMaskedTextBoxMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar allVue = Vue;\nvar gh = allVue.h;\nexports.default = {\n name: 'kendo-maskedtextbox',\n mixins: [_KendoMaskedTextBoxMixin2.default],\n setup: function setup() {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n if (this.v3) {\n return h('input', {\n value: this.value\n });\n } else {\n return h('input', {\n props: {\n value: this.value\n }\n });\n }\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _kendoBaseComponentsVueWrapper = require('@progress/kendo-base-components-vue-wrapper');\n\nvar _NumericTextBoxProps = require('./NumericTextBoxProps');\n\nvar _NumericTextBoxProps2 = _interopRequireDefault(_NumericTextBoxProps);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n emits: {\n 'update:modelValue': null,\n 'kendowidgetready': null\n },\n props: _NumericTextBoxProps2.default,\n mixins: [_kendoBaseComponentsVueWrapper.KendoBaseComponent, _kendoBaseComponentsVueWrapper.KendoBaseInputComponent],\n mounted: function mounted() {\n var that = this;\n kendo.jQuery(that.$el).kendoNumericTextBox(that.widgetOptions);\n\n if (this.v3) {\n this.ready();\n this.$emit('kendowidgetready', this.kendoWidget());\n } else {\n this.$emit('kendowidgetready', this.kendoWidget());\n }\n\n that.kendoWidget().bind('change', function () {\n var kendoWidget = that.kendoWidget();\n var inputElement = kendoWidget.element;\n if (that.v3) {\n that.$emit('update:modelValue', inputElement.val());\n } else {\n that.$emit('changemodel', inputElement.val());\n }\n });\n\n that.kendoWidget().bind('spin', function () {\n var kendoWidget = that.kendoWidget();\n var inputElement = kendoWidget.element;\n if (that.v3) {\n if (that.getListeners()['onUpdate:modelValue']) {\n that.$emit('update:modelValue', inputElement.val());\n }\n } else {\n that.$emit('changemodel', inputElement.val());\n }\n });\n },\n\n methods: {\n kendoWidget: function kendoWidget() {\n return kendo.jQuery(this.$el).getKendoNumericTextBox();\n }\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n modelValue: {\n type: [Number, String],\n default: undefined\n },\n culture: {\n type: String,\n default: undefined\n },\n decimals: {\n type: Number,\n default: undefined\n },\n downArrowText: {\n type: String,\n default: undefined\n },\n factor: {\n type: Number,\n default: undefined\n },\n format: {\n type: String,\n default: undefined\n },\n max: {\n type: Number,\n default: undefined\n },\n min: {\n type: Number,\n default: undefined\n },\n placeholder: {\n type: String,\n default: undefined\n },\n restrictDecimals: {\n type: Boolean,\n default: undefined\n },\n round: {\n type: Boolean,\n default: undefined\n },\n spinners: {\n type: Boolean,\n default: undefined\n },\n step: {\n type: Number,\n default: undefined\n },\n upArrowText: {\n type: String,\n default: undefined\n },\n value: {\n type: [Number, String],\n default: undefined\n },\n\n // Events\n change: Function,\n spin: Function\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _vue = require('vue');\n\nvar Vue = _interopRequireWildcard(_vue);\n\nvar _KendoNumericTextBoxMixin = require('./KendoNumericTextBoxMixin');\n\nvar _KendoNumericTextBoxMixin2 = _interopRequireDefault(_KendoNumericTextBoxMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar allVue = Vue;\nvar gh = allVue.h;\nexports.default = {\n name: 'kendo-numerictextbox',\n mixins: [_KendoNumericTextBoxMixin2.default],\n setup: function setup() {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n if (this.v3) {\n return h('input', {\n value: this.value\n });\n } else {\n return h('input', {\n props: {\n value: this.value\n }\n });\n }\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _kendoBaseComponentsVueWrapper = require('@progress/kendo-base-components-vue-wrapper');\n\nvar _RangeSliderProps = require('./RangeSliderProps');\n\nvar _RangeSliderProps2 = _interopRequireDefault(_RangeSliderProps);\n\nvar _Tooltip = require('../Common/Tooltip');\n\nvar _Tooltip2 = _interopRequireDefault(_Tooltip);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n emits: {\n 'update:modelValue': null,\n 'kendowidgetready': null\n },\n props: _RangeSliderProps2.default,\n mixins: [_kendoBaseComponentsVueWrapper.KendoBaseComponent, _kendoBaseComponentsVueWrapper.KendoBaseInputComponent, _Tooltip2.default],\n mounted: function mounted() {\n var that = this;\n kendo.jQuery(that.$el).kendoRangeSlider(that.widgetOptions);\n\n if (this.v3) {\n this.ready();\n this.$emit('kendowidgetready', this.kendoWidget());\n } else {\n this.$emit('kendowidgetready', this.kendoWidget());\n }\n\n that.kendoWidget().bind('change', function () {\n if (that.v3) {\n that.$emit('update:modelValue', that.kendoWidget().value());\n } else {\n that.$emit('changemodel', that.kendoWidget().value());\n }\n });\n\n that.kendoWidget().bind('slide', function () {\n if (that.v3) {\n if (that.getListeners()['onUpdate:modelValue']) {\n that.$emit('update:modelValue', that.kendoWidget().value());\n }\n } else {\n that.$emit('changemodel', that.kendoWidget().value());\n }\n });\n },\n\n methods: {\n kendoWidget: function kendoWidget() {\n return kendo.jQuery(this.$el).getKendoRangeSlider();\n }\n },\n computed: {\n nameAttr: function nameAttr() {\n return this.$attrs.name;\n },\n selectionStartName: function selectionStartName() {\n var nameAttr = this.nameAttr;\n return nameAttr ? nameAttr + '[0]' : null;\n },\n selectionEndName: function selectionEndName() {\n var nameAttr = this.nameAttr;\n return nameAttr ? nameAttr + '[1]' : null;\n }\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n modelValue: {\n type: Array,\n default: undefined\n },\n largeStep: {\n type: Number,\n default: undefined\n },\n leftDragHandleTitle: {\n type: String,\n default: undefined\n },\n max: {\n type: Number,\n default: undefined\n },\n min: {\n type: Number,\n default: undefined\n },\n orientation: {\n type: String,\n default: undefined\n },\n rightDragHandleTitle: {\n type: String,\n default: undefined\n },\n selectionEnd: {\n type: Number,\n default: undefined\n },\n selectionStart: {\n type: Number,\n default: undefined\n },\n smallStep: {\n type: Number,\n default: undefined\n },\n tickPlacement: {\n type: String,\n default: undefined\n },\n tooltip: {\n type: Object,\n default: undefined\n },\n value: {\n type: Array,\n default: undefined\n },\n\n // Events\n change: Function,\n slide: Function\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _vue = require('vue');\n\nvar Vue = _interopRequireWildcard(_vue);\n\nvar _KendoRangeSliderMixin = require('./KendoRangeSliderMixin');\n\nvar _KendoRangeSliderMixin2 = _interopRequireDefault(_KendoRangeSliderMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar allVue = Vue;\nvar gh = allVue.h;\nexports.default = {\n name: 'kendo-rangeslider',\n mixins: [_KendoRangeSliderMixin2.default],\n setup: function setup() {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n\n if (this.v3) {\n return h('div', [h('input', {\n name: this.selectionStartName\n }), h('input', {\n name: this.selectionEndName\n })]);\n } else {\n return h('div', [h('input', {\n props: {\n name: this.selectionStartName\n }\n }), h('input', {\n props: {\n name: this.selectionEndName\n }\n })]);\n }\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _kendoBaseComponentsVueWrapper = require('@progress/kendo-base-components-vue-wrapper');\n\nvar _SliderProps = require('./SliderProps');\n\nvar _SliderProps2 = _interopRequireDefault(_SliderProps);\n\nvar _Tooltip = require('../Common/Tooltip');\n\nvar _Tooltip2 = _interopRequireDefault(_Tooltip);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n emits: {\n 'update:modelValue': null,\n 'kendowidgetready': null\n },\n props: _SliderProps2.default,\n mixins: [_kendoBaseComponentsVueWrapper.KendoBaseComponent, _kendoBaseComponentsVueWrapper.KendoBaseInputComponent, _Tooltip2.default],\n mounted: function mounted() {\n var that = this;\n kendo.jQuery(that.$el).kendoSlider(that.widgetOptions);\n\n if (this.v3) {\n this.ready();\n this.$emit('kendowidgetready', this.kendoWidget());\n } else {\n this.$emit('kendowidgetready', this.kendoWidget());\n }\n\n that.kendoWidget().bind('change', function () {\n var kendoWidget = that.kendoWidget();\n var inputElement = kendoWidget.element;\n if (that.v3) {\n that.$emit('update:modelValue', inputElement.val());\n } else {\n that.$emit('changemodel', inputElement.val());\n }\n });\n\n that.kendoWidget().bind('slide', function () {\n var kendoWidget = that.kendoWidget();\n var inputElement = kendoWidget.element;\n if (that.v3) {\n if (that.getListeners()['onUpdate:modelValue']) {\n that.$emit('update:modelValue', inputElement.val());\n }\n } else {\n that.$emit('changemodel', inputElement.val());\n }\n });\n },\n\n methods: {\n kendoWidget: function kendoWidget() {\n return kendo.jQuery(this.$el).getKendoSlider();\n }\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n modelValue: {\n type: [Number, String],\n default: undefined\n },\n decreaseButtonTitle: {\n type: String,\n default: undefined\n },\n dragHandleTitle: {\n type: String,\n default: undefined\n },\n increaseButtonTitle: {\n type: String,\n default: undefined\n },\n largeStep: {\n type: Number,\n default: undefined\n },\n max: {\n type: Number,\n default: undefined\n },\n min: {\n type: Number,\n default: undefined\n },\n orientation: {\n type: String,\n default: undefined\n },\n showButtons: {\n type: Boolean,\n default: undefined\n },\n smallStep: {\n type: Number,\n default: undefined\n },\n tickPlacement: {\n type: String,\n default: undefined\n },\n tooltip: {\n type: Object,\n default: undefined\n },\n value: {\n type: [String, Number],\n default: undefined\n },\n\n // Events\n change: Function,\n slide: Function\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _vue = require('vue');\n\nvar Vue = _interopRequireWildcard(_vue);\n\nvar _KendoSliderMixin = require('./KendoSliderMixin');\n\nvar _KendoSliderMixin2 = _interopRequireDefault(_KendoSliderMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar allVue = Vue;\nvar gh = allVue.h;\nexports.default = {\n name: 'kendo-slider',\n mixins: [_KendoSliderMixin2.default],\n setup: function setup() {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n if (this.v3) {\n return h('input', {\n value: this.value\n });\n } else {\n return h('input', {\n props: {\n value: this.value\n }\n });\n }\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _kendoBaseComponentsVueWrapper = require('@progress/kendo-base-components-vue-wrapper');\n\nvar _SwitchProps = require('./SwitchProps');\n\nvar _SwitchProps2 = _interopRequireDefault(_SwitchProps);\n\nvar _ObsoleteSwitchProps = require('./ObsoleteSwitchProps');\n\nvar _ObsoleteSwitchProps2 = _interopRequireDefault(_ObsoleteSwitchProps);\n\nvar _Messages = require('./Messages');\n\nvar _Messages2 = _interopRequireDefault(_Messages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n emits: {\n 'update:modelValue': null,\n 'kendowidgetready': null\n },\n props: Object.assign({}, _SwitchProps2.default, _ObsoleteSwitchProps2.default),\n mixins: [_kendoBaseComponentsVueWrapper.KendoBaseComponent, _Messages2.default],\n updated: function updated() {\n var kWidget = this.kendoWidget();\n\n if (this.modelValue !== kWidget.check()) {\n kWidget.check(this.modelValue);\n }\n },\n mounted: function mounted() {\n var that = this;\n\n that.widgetOptions.messages = that.widgetOptions.messages || {};\n\n // Obsolete props\n if (that.widgetOptions.onLabel) {\n that.widgetOptions.messages.checked = that.widgetOptions.onLabel;\n }\n\n if (that.widgetOptions.offLabel) {\n that.widgetOptions.messages.unchecked = that.widgetOptions.offLabel;\n }\n\n if (that.widgetOptions.enable == false) {\n that.widgetOptions.enabled = that.widgetOptions.enable;\n }\n kendo.jQuery(that.$el).kendoSwitch(that.widgetOptions);\n\n that.$_kendoSwitch = that.kendoWidget();\n if (this.v3) {\n this.ready();\n this.$emit('kendowidgetready', this.kendoWidget());\n } else {\n this.$emit('kendowidgetready', this.kendoWidget());\n }\n\n that.kendoWidget().bind('change', function () {\n if (that.v3) {\n that.$emit('update:modelValue', that.kendoWidget().check());\n } else {\n that.$emit('changemodel', that.kendoWidget().check());\n }\n });\n },\n\n methods: {\n kendoWidget: function kendoWidget() {\n return kendo.jQuery(this.$el).getKendoSwitch();\n }\n },\n destroyed: function destroyed() {\n var switchInstance = this.kendoWidget() || this.$_kendoSwitch;\n switchInstance.destroy();\n switchInstance.wrapper.remove();\n },\n\n watch: {\n checked: function checked(value) {\n var kWidget = this.kendoWidget();\n\n if (value != kWidget.check()) {\n kWidget.check(value);\n }\n }\n },\n model: {\n event: 'changemodel',\n prop: 'checked'\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: {\n messagesChecked: {\n type: String,\n default: undefined,\n kComposite: 'messages.checked'\n },\n messagesUnchecked: {\n type: String,\n default: undefined,\n kComposite: 'messages.unchecked'\n }\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n enable: {\n type: Boolean,\n default: undefined\n },\n onLabel: {\n type: String,\n default: undefined\n },\n offLabel: {\n type: String,\n default: undefined\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n modelValue: {\n type: Boolean,\n default: undefined\n },\n checked: {\n type: Boolean,\n default: undefined\n },\n enabled: {\n type: Boolean,\n default: undefined\n },\n readonly: {\n type: Boolean,\n default: undefined\n },\n messages: {\n type: Object,\n default: undefined\n },\n width: {\n type: [Number, String],\n default: undefined\n },\n\n // Events\n change: Function\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _vue = require('vue');\n\nvar Vue = _interopRequireWildcard(_vue);\n\nvar _KendoSwitchMixin = require('./KendoSwitchMixin');\n\nvar _KendoSwitchMixin2 = _interopRequireDefault(_KendoSwitchMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar allVue = Vue;\nvar gh = allVue.h;\nexports.default = {\n name: 'kendo-switch',\n mixins: [_KendoSwitchMixin2.default],\n setup: function setup() {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n if (this.v3) {\n return h('input', {\n type: 'checkbox'\n });\n } else {\n return h('input', {\n attrs: {\n type: 'checkbox'\n }\n });\n }\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Switch = exports.KendoSwitch = exports.RangeSlider = exports.KendoRangeSlider = exports.Slider = exports.KendoSlider = exports.MaskedTextBox = exports.KendoMaskedTextBox = exports.FlatColorPicker = exports.KendoFlatColorPicker = exports.ColorPalette = exports.KendoColorPalette = exports.ColorPicker = exports.KendoColorPicker = exports.NumericTextBox = exports.KendoNumericTextBox = exports.InputsInstaller = exports.KendoInputsInstaller = undefined;\n\nvar _kendoInputsInstaller = require('./kendo-inputs-installer');\n\nvar _kendoInputsInstaller2 = _interopRequireDefault(_kendoInputsInstaller);\n\nvar _KendoNumericTextBox = require('./KendoNumericTextBox');\n\nvar _KendoNumericTextBox2 = _interopRequireDefault(_KendoNumericTextBox);\n\nvar _KendoColorPicker = require('./KendoColorPicker');\n\nvar _KendoColorPicker2 = _interopRequireDefault(_KendoColorPicker);\n\nvar _KendoColorPalette = require('./KendoColorPalette');\n\nvar _KendoColorPalette2 = _interopRequireDefault(_KendoColorPalette);\n\nvar _KendoFlatColorPicker = require('./KendoFlatColorPicker');\n\nvar _KendoFlatColorPicker2 = _interopRequireDefault(_KendoFlatColorPicker);\n\nvar _KendoMaskedTextBox = require('./KendoMaskedTextBox');\n\nvar _KendoMaskedTextBox2 = _interopRequireDefault(_KendoMaskedTextBox);\n\nvar _KendoSlider = require('./KendoSlider');\n\nvar _KendoSlider2 = _interopRequireDefault(_KendoSlider);\n\nvar _KendoRangeSlider = require('./KendoRangeSlider');\n\nvar _KendoRangeSlider2 = _interopRequireDefault(_KendoRangeSlider);\n\nvar _KendoSwitch = require('./KendoSwitch');\n\nvar _KendoSwitch2 = _interopRequireDefault(_KendoSwitch);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.KendoInputsInstaller = _kendoInputsInstaller2.default;\nexports.InputsInstaller = _kendoInputsInstaller2.default;\nexports.KendoNumericTextBox = _KendoNumericTextBox2.default;\nexports.NumericTextBox = _KendoNumericTextBox2.default;\nexports.KendoColorPicker = _KendoColorPicker2.default;\nexports.ColorPicker = _KendoColorPicker2.default;\nexports.KendoColorPalette = _KendoColorPalette2.default;\nexports.ColorPalette = _KendoColorPalette2.default;\nexports.KendoFlatColorPicker = _KendoFlatColorPicker2.default;\nexports.FlatColorPicker = _KendoFlatColorPicker2.default;\nexports.KendoMaskedTextBox = _KendoMaskedTextBox2.default;\nexports.MaskedTextBox = _KendoMaskedTextBox2.default;\nexports.KendoSlider = _KendoSlider2.default;\nexports.Slider = _KendoSlider2.default;\nexports.KendoRangeSlider = _KendoRangeSlider2.default;\nexports.RangeSlider = _KendoRangeSlider2.default;\nexports.KendoSwitch = _KendoSwitch2.default;\nexports.Switch = _KendoSwitch2.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _KendoNumericTextBox = require('../KendoNumericTextBox');\n\nvar _KendoNumericTextBox2 = _interopRequireDefault(_KendoNumericTextBox);\n\nvar _KendoColorPicker = require('../KendoColorPicker');\n\nvar _KendoColorPicker2 = _interopRequireDefault(_KendoColorPicker);\n\nvar _KendoColorPalette = require('../KendoColorPalette');\n\nvar _KendoColorPalette2 = _interopRequireDefault(_KendoColorPalette);\n\nvar _KendoFlatColorPicker = require('../KendoFlatColorPicker');\n\nvar _KendoFlatColorPicker2 = _interopRequireDefault(_KendoFlatColorPicker);\n\nvar _KendoMaskedTextBox = require('../KendoMaskedTextBox');\n\nvar _KendoMaskedTextBox2 = _interopRequireDefault(_KendoMaskedTextBox);\n\nvar _KendoSlider = require('../KendoSlider');\n\nvar _KendoSlider2 = _interopRequireDefault(_KendoSlider);\n\nvar _KendoRangeSlider = require('../KendoRangeSlider');\n\nvar _KendoRangeSlider2 = _interopRequireDefault(_KendoRangeSlider);\n\nvar _KendoSwitch = require('../KendoSwitch');\n\nvar _KendoSwitch2 = _interopRequireDefault(_KendoSwitch);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar KendoInputsInstaller = function () {\n function KendoInputsInstaller() {\n _classCallCheck(this, KendoInputsInstaller);\n }\n\n _createClass(KendoInputsInstaller, null, [{\n key: 'install',\n value: function install(Vue) {\n Vue.component(_KendoNumericTextBox2.default.name, _KendoNumericTextBox2.default);\n Vue.component(_KendoColorPicker2.default.name, _KendoColorPicker2.default);\n Vue.component(_KendoColorPalette2.default.name, _KendoColorPalette2.default);\n Vue.component(_KendoFlatColorPicker2.default.name, _KendoFlatColorPicker2.default);\n Vue.component(_KendoMaskedTextBox2.default.name, _KendoMaskedTextBox2.default);\n Vue.component(_KendoSlider2.default.name, _KendoSlider2.default);\n Vue.component(_KendoRangeSlider2.default.name, _KendoRangeSlider2.default);\n Vue.component(_KendoSwitch2.default.name, _KendoSwitch2.default);\n }\n }]);\n\n return KendoInputsInstaller;\n}();\n\nexports.default = KendoInputsInstaller;\n\n// Automatic installation if Vue has been added to the global scope.\n\nif (typeof window !== 'undefined' && window.Vue && window.Vue.use) {\n window.Vue.use(KendoInputsInstaller);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: {\n animationCloseEffects: {\n type: String,\n default: undefined,\n kComposite: 'animation.close.effects'\n },\n animationCloseDuration: {\n type: Number,\n default: undefined,\n kComposite: 'animation.close.duration'\n },\n animationOpenEffects: {\n type: String,\n default: undefined,\n kComposite: 'animation.open.effects'\n },\n animationOpenDuration: {\n type: Number,\n default: undefined,\n kComposite: 'animation.open.duration'\n }\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: {\n scrollableDistance: {\n type: Number,\n default: undefined,\n kComposite: 'scrollable.distance'\n }\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: {\n animationCloseEffects: {\n type: String,\n default: undefined,\n kComposite: 'animation.close.effects'\n },\n animationCloseDuration: {\n type: Number,\n default: undefined,\n kComposite: 'animation.close.duration'\n },\n animationOpenEffects: {\n type: String,\n default: undefined,\n kComposite: 'animation.open.effects'\n },\n animationOpenDuration: {\n type: Number,\n default: undefined,\n kComposite: 'animation.open.duration'\n }\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n alignToAnchor: {\n type: Boolean,\n default: undefined\n },\n animation: {\n type: [Boolean, Object],\n default: undefined\n },\n appendTo: {\n type: String,\n default: undefined\n },\n closeOnClick: {\n type: Boolean,\n default: undefined\n },\n copyAnchorStyles: {\n type: Boolean,\n default: undefined\n },\n dataImageUrlField: {\n type: String,\n default: undefined\n },\n dataSource: {\n type: [Object, Array],\n default: undefined\n },\n dataSpriteCssClassField: {\n type: String,\n default: undefined\n },\n dataTextField: {\n type: String,\n default: undefined\n },\n dataUrlField: {\n type: String,\n default: undefined\n },\n dataContentField: {\n type: String,\n default: undefined\n },\n direction: {\n type: String,\n default: undefined\n },\n filter: {\n type: String,\n default: undefined\n },\n hoverDelay: {\n type: Number,\n default: undefined\n },\n orientation: {\n type: String,\n default: undefined\n },\n popupCollision: {\n type: String,\n default: undefined\n },\n scrollable: {\n type: [Boolean, Object],\n default: undefined\n },\n showOn: {\n type: String,\n default: undefined\n },\n target: {\n type: String,\n default: undefined\n },\n\n // Events\n close: Function,\n open: Function,\n activate: Function,\n deactivate: Function,\n select: Function\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _kendoBaseComponentsVueWrapper = require('@progress/kendo-base-components-vue-wrapper');\n\nvar _ContextMenuProps = require('./ContextMenuProps');\n\nvar _ContextMenuProps2 = _interopRequireDefault(_ContextMenuProps);\n\nvar _Animation = require('./Animation');\n\nvar _Animation2 = _interopRequireDefault(_Animation);\n\nvar _Scrollable = require('../Common/Scrollable');\n\nvar _Scrollable2 = _interopRequireDefault(_Scrollable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: _ContextMenuProps2.default,\n emits: {\n 'kendowidgetready': null\n },\n mixins: [_kendoBaseComponentsVueWrapper.KendoBaseComponent, _kendoBaseComponentsVueWrapper.KendoBaseDatasourceComponent, _kendoBaseComponentsVueWrapper.KendoSharedMethods, _Animation2.default, _Scrollable2.default],\n mounted: function mounted() {\n this._resolveChildren();\n\n kendo.jQuery(this.$el).kendoContextMenu(this.widgetOptions);\n\n if (this.v3) {\n this.ready();\n this.$emit('kendowidgetready', this.kendoWidget());\n } else {\n this.$emit('kendowidgetready', this.kendoWidget());\n }\n },\n\n methods: {\n kendoWidget: function kendoWidget() {\n return kendo.jQuery(this.$el).getKendoContextMenu();\n },\n _resolveChildren: function _resolveChildren() {\n var defaultSlot = this.v3 && this.$slots.default && typeof this.$slots.default === 'function' ? this.$slots.default() : this.$slots.default;\n var hasDataSource = this.v3 ? !this.$props.dataSource : this.$options.propsData && !this.$options.propsData['dataSource'];\n if (hasDataSource && defaultSlot) {\n var items = this.resolveInnerTags('kendo-menu-item');\n\n if (items.length) {\n this.widgetOptions['dataSource'] = items;\n }\n }\n }\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _vue = require('vue');\n\nvar Vue = _interopRequireWildcard(_vue);\n\nvar _KendoContextMenuMixin = require('./KendoContextMenuMixin');\n\nvar _KendoContextMenuMixin2 = _interopRequireDefault(_KendoContextMenuMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar allVue = Vue;\nvar gh = allVue.h;\nexports.default = {\n name: 'kendo-contextmenu',\n mixins: [_KendoContextMenuMixin2.default],\n setup: function setup() {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = this.v3 && this.$slots.default && typeof this.$slots.default === 'function' ? this.$slots.default() : this.$slots.default;\n return h('ul', defaultSlot);\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _vue = require('vue');\n\nvar Vue = _interopRequireWildcard(_vue);\n\nvar _kendoBaseComponentsVueWrapper = require('@progress/kendo-base-components-vue-wrapper');\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar allVue = Vue;\nvar gh = allVue.h;\nexports.default = {\n name: 'kendo-menu-item',\n setup: function setup() {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = this.v3 && this.$slots.default && typeof this.$slots.default === 'function' ? this.$slots.default() : this.$slots.default;\n return h('span', defaultSlot);\n },\n\n mixins: [_kendoBaseComponentsVueWrapper.KendoSharedMethods],\n props: {\n text: {\n type: String,\n default: undefined\n },\n cssClass: {\n type: String,\n default: undefined\n },\n url: {\n type: String,\n default: undefined\n },\n attr: {\n type: Object,\n default: undefined\n },\n encoded: {\n type: Boolean,\n default: undefined\n },\n content: {\n type: String,\n default: undefined\n },\n contentAttr: {\n type: Object,\n default: undefined\n },\n imageAttr: {\n type: Object,\n default: undefined\n },\n imageUrl: {\n type: String,\n default: undefined\n },\n items: {\n type: Array,\n default: undefined\n },\n spriteCssClass: {\n type: String,\n default: undefined\n },\n select: Function\n },\n mounted: function mounted() {\n this._resolveInnerChildren();\n },\n\n methods: {\n _resolveInnerChildren: function _resolveInnerChildren() {\n var defaultSlot = this.v3 && this.$slots.default && typeof this.$slots.default === 'function' ? this.$slots.default() : this.$slots.default;\n var hasItems = this.v3 ? !this.$props.items : this.$options.propsData && !this.$options.propsData['items'];\n if (hasItems && defaultSlot) {\n var items = this.resolveInnerTags('kendo-menu-item');\n this.subitems = items;\n }\n }\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _kendoBaseComponentsVueWrapper = require('@progress/kendo-base-components-vue-wrapper');\n\nvar _MenuProps = require('./MenuProps');\n\nvar _MenuProps2 = _interopRequireDefault(_MenuProps);\n\nvar _OpenOnClick = require('./OpenOnClick');\n\nvar _OpenOnClick2 = _interopRequireDefault(_OpenOnClick);\n\nvar _Animation = require('../Common/Animation');\n\nvar _Animation2 = _interopRequireDefault(_Animation);\n\nvar _Scrollable = require('../Common/Scrollable');\n\nvar _Scrollable2 = _interopRequireDefault(_Scrollable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: _MenuProps2.default,\n emits: {\n 'kendowidgetready': null\n },\n mixins: [_kendoBaseComponentsVueWrapper.KendoBaseComponent, _kendoBaseComponentsVueWrapper.KendoBaseDatasourceComponent, _kendoBaseComponentsVueWrapper.KendoSharedMethods, _Animation2.default, _OpenOnClick2.default, _Scrollable2.default],\n mounted: function mounted() {\n this._resolveChildren();\n\n kendo.jQuery(this.$el).kendoMenu(this.widgetOptions);\n\n if (this.v3) {\n this.ready();\n this.$emit('kendowidgetready', this.kendoWidget());\n } else {\n this.$emit('kendowidgetready', this.kendoWidget());\n }\n },\n\n methods: {\n kendoWidget: function kendoWidget() {\n return kendo.jQuery(this.$el).getKendoMenu();\n },\n _resolveChildren: function _resolveChildren() {\n var defaultSlot = this.v3 && this.$slots.default && typeof this.$slots.default === 'function' ? this.$slots.default() : this.$slots.default;\n var hasDataSource = this.v3 ? !this.$props.dataSource : this.$options.propsData && !this.$options.propsData['dataSource'];\n if (hasDataSource && defaultSlot) {\n var items = this.resolveInnerTags('kendo-menu-item');\n\n if (items.length) {\n this.widgetOptions['dataSource'] = items;\n }\n }\n }\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n animation: {\n type: [Boolean, Object],\n default: undefined\n },\n closeOnClick: {\n type: Boolean,\n default: undefined\n },\n dataImageUrlField: {\n type: String,\n default: undefined\n },\n dataSource: {\n type: [Object, Array],\n default: undefined\n },\n dataSpriteCssClassField: {\n type: String,\n default: undefined\n },\n dataTextField: {\n type: String,\n default: undefined\n },\n dataUrlField: {\n type: String,\n default: undefined\n },\n dataContentField: {\n type: String,\n default: undefined\n },\n direction: {\n type: String,\n default: undefined\n },\n hoverDelay: {\n type: Number,\n default: undefined\n },\n openOnClick: {\n type: [Boolean, Object],\n default: undefined\n },\n orientation: {\n type: String,\n default: undefined\n },\n popupCollision: {\n type: String,\n default: undefined\n },\n scrollable: {\n type: [Boolean, Object],\n default: undefined\n },\n\n // Events\n close: Function,\n open: Function,\n activate: Function,\n deactivate: Function,\n select: Function\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: {\n openOnClickRootMenuItems: {\n type: Boolean,\n default: undefined,\n kComposite: 'openOnClick.rootMenuItems'\n },\n openOnClickSubMenuItems: {\n type: Boolean,\n default: undefined,\n kComposite: 'openOnClick.subMenuItems'\n }\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _vue = require('vue');\n\nvar Vue = _interopRequireWildcard(_vue);\n\nvar _KendoMenuMixin = require('./KendoMenuMixin');\n\nvar _KendoMenuMixin2 = _interopRequireDefault(_KendoMenuMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar allVue = Vue;\nvar gh = allVue.h;\nexports.default = {\n name: 'kendo-menu',\n mixins: [_KendoMenuMixin2.default],\n setup: function setup() {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = this.v3 && this.$slots.default && typeof this.$slots.default === 'function' ? this.$slots.default() : this.$slots.default;\n return h('ul', defaultSlot);\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: {\n animationCollapseDuration: {\n type: Number,\n default: undefined,\n kComposite: 'animation.collapse.duration'\n },\n animationCollapseEffects: {\n type: String,\n default: undefined,\n kComposite: 'animation.collapse.effects'\n },\n animationExpandDuration: {\n type: Number,\n default: undefined,\n kComposite: 'animation.expand.duration'\n },\n animationExpandEffects: {\n type: String,\n default: undefined,\n kComposite: 'animation.expand.effects'\n }\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _vue = require('vue');\n\nvar Vue = _interopRequireWildcard(_vue);\n\nvar _kendoBaseComponentsVueWrapper = require('@progress/kendo-base-components-vue-wrapper');\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar allVue = Vue;\nvar gh = allVue.h;\nexports.default = {\n name: 'kendo-panelbar-item',\n setup: function setup() {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = this.v3 && this.$slots.default && typeof this.$slots.default === 'function' ? this.$slots.default() : this.$slots.default;\n return h('span', defaultSlot);\n },\n\n mixins: [_kendoBaseComponentsVueWrapper.KendoSharedMethods],\n props: {\n text: {\n type: String,\n default: undefined\n },\n cssClass: {\n type: String,\n default: undefined\n },\n url: {\n type: String,\n default: undefined\n },\n encoded: {\n type: Boolean,\n default: undefined\n },\n content: {\n type: String,\n default: undefined\n },\n contentUrl: {\n type: String,\n default: undefined\n },\n imageUrl: {\n type: String,\n default: undefined\n },\n items: {\n type: Array,\n default: undefined\n },\n expanded: {\n type: Boolean,\n default: undefined\n },\n spriteCssClass: {\n type: String,\n default: undefined\n }\n },\n mounted: function mounted() {\n this._resolveInnerChildren();\n },\n\n methods: {\n _resolveInnerChildren: function _resolveInnerChildren() {\n var defaultSlot = this.v3 && this.$slots.default && typeof this.$slots.default === 'function' ? this.$slots.default() : this.$slots.default;\n var hasItems = this.v3 ? !this.$props.items : this.$options.propsData && !this.$options.propsData['items'];\n if (hasItems && defaultSlot) {\n var items = this.resolveInnerTags('kendo-panelbar-item');\n this.subitems = items;\n }\n }\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _kendoBaseComponentsVueWrapper = require('@progress/kendo-base-components-vue-wrapper');\n\nvar _PanelBarProps = require('./PanelBarProps');\n\nvar _PanelBarProps2 = _interopRequireDefault(_PanelBarProps);\n\nvar _Animation = require('./Animation');\n\nvar _Animation2 = _interopRequireDefault(_Animation);\n\nvar _Messages = require('./Messages');\n\nvar _Messages2 = _interopRequireDefault(_Messages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: _PanelBarProps2.default,\n emits: {\n 'kendowidgetready': null\n },\n mixins: [_kendoBaseComponentsVueWrapper.KendoBaseComponent, _kendoBaseComponentsVueWrapper.KendoBaseDatasourceComponent, _kendoBaseComponentsVueWrapper.KendoSharedMethods, _Animation2.default, _Messages2.default],\n mounted: function mounted() {\n this._resolveChildren();\n\n kendo.jQuery(this.$el).kendoPanelBar(this.widgetOptions);\n if (this.v3) {\n this.ready();\n this.$emit('kendowidgetready', this.kendoWidget());\n } else {\n this.$emit('kendowidgetready', this.kendoWidget());\n }\n },\n\n methods: {\n kendoWidget: function kendoWidget() {\n return kendo.jQuery(this.$el).getKendoPanelBar();\n },\n _resolveChildren: function _resolveChildren() {\n var defaultSlot = this.v3 && this.$slots.default && typeof this.$slots.default === 'function' ? this.$slots.default() : this.$slots.default;\n var hasDataSource = this.v3 ? !this.$props.dataSource : this.$options.propsData && !this.$options.propsData['dataSource'];\n if (hasDataSource && defaultSlot) {\n var items = this.resolveInnerTags('kendo-panelbar-item');\n\n if (items.length) {\n this.widgetOptions['dataSource'] = items;\n }\n }\n }\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: {\n messagesLoading: {\n type: String,\n default: undefined,\n kComposite: 'messages.loading'\n },\n messagesRequestFailed: {\n type: String,\n default: undefined,\n kComposite: 'messages.requestFailed'\n },\n messagesRetry: {\n type: String,\n default: undefined,\n kComposite: 'messages.retry'\n }\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n animation: {\n type: [Boolean, Object],\n default: undefined\n },\n autoBind: {\n type: Boolean,\n default: undefined\n },\n contentUrls: {\n type: Array,\n default: undefined\n },\n dataImageUrlField: {\n type: String,\n default: undefined\n },\n dataSource: {\n type: [Object, Array],\n default: undefined\n },\n dataSpriteCssClassField: {\n type: String,\n default: undefined\n },\n dataTextField: {\n type: [String, Array],\n default: undefined\n },\n dataUrlField: {\n type: String,\n default: undefined\n },\n expandMode: {\n type: String,\n default: undefined\n },\n loadOnDemand: {\n type: Boolean,\n default: undefined\n },\n messages: {\n type: Object,\n default: undefined\n },\n template: {\n type: [String, Function],\n default: undefined\n },\n\n // Events\n activate: Function,\n collapse: Function,\n contentLoad: {\n type: Function,\n default: undefined\n },\n dataBound: {\n type: Function,\n default: undefined\n },\n error: Function,\n expand: Function,\n select: Function\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _vue = require('vue');\n\nvar Vue = _interopRequireWildcard(_vue);\n\nvar _KendoPanelBarMixin = require('./KendoPanelBarMixin');\n\nvar _KendoPanelBarMixin2 = _interopRequireDefault(_KendoPanelBarMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar allVue = Vue;\nvar gh = allVue.h;\nexports.default = {\n name: 'kendo-panelbar',\n mixins: [_KendoPanelBarMixin2.default],\n setup: function setup() {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = this.v3 && this.$slots.default && typeof this.$slots.default === 'function' ? this.$slots.default() : this.$slots.default;\n return h('div', defaultSlot);\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _kendoBaseComponentsVueWrapper = require('@progress/kendo-base-components-vue-wrapper');\n\nvar _SplitterProps = require('./SplitterProps');\n\nvar _SplitterProps2 = _interopRequireDefault(_SplitterProps);\n\nvar _KendoSplitterPane = require('./KendoSplitterPane');\n\nvar _KendoSplitterPane2 = _interopRequireDefault(_KendoSplitterPane);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: _SplitterProps2.default,\n emits: {\n 'kendowidgetready': null\n },\n mixins: [_kendoBaseComponentsVueWrapper.KendoBaseComponent],\n mounted: function mounted() {\n this._resolveChildren();\n\n kendo.jQuery(this.$el).kendoSplitter(this.widgetOptions);\n if (this.v3) {\n this.ready();\n this.$emit('kendowidgetready', this.kendoWidget());\n } else {\n this.$emit('kendowidgetready', this.kendoWidget());\n }\n },\n\n methods: {\n kendoWidget: function kendoWidget() {\n return kendo.jQuery(this.$el).getKendoSplitter();\n },\n _resolveChildren: function _resolveChildren() {\n this.resolveChildren('panes', _KendoSplitterPane2.default.name);\n }\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _PaneProps = require('./PaneProps');\n\nvar _PaneProps2 = _interopRequireDefault(_PaneProps);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar KendoSplitterPane = {\n name: 'kendo-splitter-pane',\n render: function render() {\n return null;\n },\n\n mixins: [_PaneProps2.default]\n};\n\nexports.default = KendoSplitterPane;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: {\n collapsed: {\n type: Boolean,\n default: undefined\n },\n collapsedSize: {\n type: String,\n default: undefined\n },\n collapsible: {\n type: Boolean,\n default: undefined\n },\n contentUrl: {\n type: String,\n default: undefined\n },\n max: {\n type: String,\n default: undefined\n },\n min: {\n type: String,\n default: undefined\n },\n resizable: {\n type: Boolean,\n default: undefined\n },\n scrollable: {\n type: Boolean,\n default: undefined\n },\n size: {\n type: String,\n default: undefined\n }\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n orientation: {\n type: String,\n default: undefined\n },\n panes: {\n type: Array,\n default: undefined\n },\n\n // Events\n collapse: Function,\n contentLoad: {\n type: Function,\n default: undefined\n },\n error: Function,\n expand: Function,\n layoutChange: {\n type: Function,\n default: undefined\n },\n resize: Function\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _vue = require('vue');\n\nvar Vue = _interopRequireWildcard(_vue);\n\nvar _KendoSplitterMixin = require('./KendoSplitterMixin');\n\nvar _KendoSplitterMixin2 = _interopRequireDefault(_KendoSplitterMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar allVue = Vue;\nvar gh = allVue.h;\nexports.default = {\n name: 'kendo-splitter',\n mixins: [_KendoSplitterMixin2.default],\n setup: function setup() {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = this.v3 && this.$slots.default && typeof this.$slots.default === 'function' ? this.$slots.default() : this.$slots.default;\n return h('div', defaultSlot);\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _kendoBaseComponentsVueWrapper = require('@progress/kendo-base-components-vue-wrapper');\n\nvar _TabStripProps = require('./TabStripProps');\n\nvar _TabStripProps2 = _interopRequireDefault(_TabStripProps);\n\nvar _Animation = require('../Common/Animation');\n\nvar _Animation2 = _interopRequireDefault(_Animation);\n\nvar _Scrollable = require('../Common/Scrollable');\n\nvar _Scrollable2 = _interopRequireDefault(_Scrollable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: _TabStripProps2.default,\n emits: {\n 'kendowidgetready': null\n },\n mixins: [_kendoBaseComponentsVueWrapper.KendoBaseComponent, _kendoBaseComponentsVueWrapper.KendoBaseDatasourceComponent, _Animation2.default, _Scrollable2.default],\n mounted: function mounted() {\n kendo.jQuery(this.$el).kendoTabStrip(this.widgetOptions);\n\n if (this.v3) {\n this.ready();\n this.$emit('kendowidgetready', this.kendoWidget());\n } else {\n this.$emit('kendowidgetready', this.kendoWidget());\n }\n },\n\n methods: {\n kendoWidget: function kendoWidget() {\n return kendo.jQuery(this.$el).getKendoTabStrip();\n }\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n animation: {\n type: [Boolean, Object],\n default: undefined\n },\n collapsible: {\n type: Boolean,\n default: undefined\n },\n contentUrls: {\n type: Array,\n default: undefined\n },\n dataContentField: {\n type: String,\n default: undefined\n },\n dataContentUrlField: {\n type: String,\n default: undefined\n },\n dataImageUrlField: {\n type: String,\n default: undefined\n },\n dataSource: {\n type: [Object, Array],\n default: undefined\n },\n dataSpriteCssClass: {\n type: String,\n default: undefined\n },\n dataTextField: {\n type: String,\n default: undefined\n },\n dataUrlField: {\n type: String,\n default: undefined\n },\n navigatable: {\n type: Boolean,\n default: undefined\n },\n scrollable: {\n type: [Boolean, Object],\n default: undefined\n },\n tabPosition: {\n type: String,\n default: undefined\n },\n value: {\n type: String,\n default: undefined\n },\n\n // Events\n activate: Function,\n contentLoad: {\n type: Function,\n default: undefined\n },\n error: Function,\n select: Function,\n show: Function\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _vue = require('vue');\n\nvar Vue = _interopRequireWildcard(_vue);\n\nvar _KendoTabStripMixin = require('./KendoTabStripMixin');\n\nvar _KendoTabStripMixin2 = _interopRequireDefault(_KendoTabStripMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar allVue = Vue;\nvar gh = allVue.h;\nexports.default = {\n name: 'kendo-tabstrip',\n mixins: [_KendoTabStripMixin2.default],\n setup: function setup() {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = this.v3 && this.$slots.default && typeof this.$slots.default === 'function' ? this.$slots.default() : this.$slots.default;\n return h('div', defaultSlot);\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LayoutInstaller = exports.KendoLayoutInstaller = exports.SplitterPane = exports.KendoSplitterPane = exports.Splitter = exports.KendoSplitter = exports.TabStrip = exports.KendoTabStrip = exports.PanelBarItem = exports.KendoPanelBarItem = exports.PanelBar = exports.KendoPanelBar = exports.MenuItem = exports.KendoMenuItem = exports.ContextMenu = exports.KendoContextMenu = exports.Menu = exports.KendoMenu = undefined;\n\nvar _KendoMenu = require('./KendoMenu');\n\nvar _KendoMenu2 = _interopRequireDefault(_KendoMenu);\n\nvar _KendoMenuItem = require('./KendoMenu/KendoMenuItem');\n\nvar _KendoMenuItem2 = _interopRequireDefault(_KendoMenuItem);\n\nvar _KendoContextMenu = require('./KendoContextMenu');\n\nvar _KendoContextMenu2 = _interopRequireDefault(_KendoContextMenu);\n\nvar _KendoPanelBar = require('./KendoPanelBar');\n\nvar _KendoPanelBar2 = _interopRequireDefault(_KendoPanelBar);\n\nvar _KendoPanelBarItem = require('./KendoPanelBar/KendoPanelBarItem');\n\nvar _KendoPanelBarItem2 = _interopRequireDefault(_KendoPanelBarItem);\n\nvar _KendoTabStrip = require('./KendoTabStrip');\n\nvar _KendoTabStrip2 = _interopRequireDefault(_KendoTabStrip);\n\nvar _KendoSplitter = require('./KendoSplitter');\n\nvar _KendoSplitter2 = _interopRequireDefault(_KendoSplitter);\n\nvar _KendoSplitterPane = require('./KendoSplitter/KendoSplitterPane');\n\nvar _KendoSplitterPane2 = _interopRequireDefault(_KendoSplitterPane);\n\nvar _kendoLayoutInstaller = require('./kendo-layout-installer');\n\nvar _kendoLayoutInstaller2 = _interopRequireDefault(_kendoLayoutInstaller);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.KendoMenu = _KendoMenu2.default;\nexports.Menu = _KendoMenu2.default;\nexports.KendoContextMenu = _KendoContextMenu2.default;\nexports.ContextMenu = _KendoContextMenu2.default;\nexports.KendoMenuItem = _KendoMenuItem2.default;\nexports.MenuItem = _KendoMenuItem2.default;\nexports.KendoPanelBar = _KendoPanelBar2.default;\nexports.PanelBar = _KendoPanelBar2.default;\nexports.KendoPanelBarItem = _KendoPanelBarItem2.default;\nexports.PanelBarItem = _KendoPanelBarItem2.default;\nexports.KendoTabStrip = _KendoTabStrip2.default;\nexports.TabStrip = _KendoTabStrip2.default;\nexports.KendoSplitter = _KendoSplitter2.default;\nexports.Splitter = _KendoSplitter2.default;\nexports.KendoSplitterPane = _KendoSplitterPane2.default;\nexports.SplitterPane = _KendoSplitterPane2.default;\nexports.KendoLayoutInstaller = _kendoLayoutInstaller2.default;\nexports.LayoutInstaller = _kendoLayoutInstaller2.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _KendoMenu = require('../KendoMenu');\n\nvar _KendoMenu2 = _interopRequireDefault(_KendoMenu);\n\nvar _KendoMenuItem = require('../KendoMenu/KendoMenuItem');\n\nvar _KendoMenuItem2 = _interopRequireDefault(_KendoMenuItem);\n\nvar _KendoContextMenu = require('../KendoContextMenu');\n\nvar _KendoContextMenu2 = _interopRequireDefault(_KendoContextMenu);\n\nvar _KendoPanelBar = require('../KendoPanelBar');\n\nvar _KendoPanelBar2 = _interopRequireDefault(_KendoPanelBar);\n\nvar _KendoPanelBarItem = require('../KendoPanelBar/KendoPanelBarItem');\n\nvar _KendoPanelBarItem2 = _interopRequireDefault(_KendoPanelBarItem);\n\nvar _KendoTabStrip = require('../KendoTabStrip');\n\nvar _KendoTabStrip2 = _interopRequireDefault(_KendoTabStrip);\n\nvar _KendoSplitter = require('../KendoSplitter');\n\nvar _KendoSplitter2 = _interopRequireDefault(_KendoSplitter);\n\nvar _KendoSplitterPane = require('../KendoSplitter/KendoSplitterPane');\n\nvar _KendoSplitterPane2 = _interopRequireDefault(_KendoSplitterPane);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar KendoLayoutInstaller = function () {\n function KendoLayoutInstaller() {\n _classCallCheck(this, KendoLayoutInstaller);\n }\n\n _createClass(KendoLayoutInstaller, null, [{\n key: 'install',\n value: function install(Vue) {\n Vue.component(_KendoMenu2.default.name, _KendoMenu2.default);\n Vue.component(_KendoContextMenu2.default.name, _KendoContextMenu2.default);\n Vue.component(_KendoMenuItem2.default.name, _KendoMenuItem2.default);\n Vue.component(_KendoPanelBar2.default.name, _KendoPanelBar2.default);\n Vue.component(_KendoPanelBarItem2.default.name, _KendoPanelBarItem2.default);\n Vue.component(_KendoTabStrip2.default.name, _KendoTabStrip2.default);\n Vue.component(_KendoSplitter2.default.name, _KendoSplitter2.default);\n Vue.component(_KendoSplitterPane2.default.name, _KendoSplitterPane2.default);\n }\n }]);\n\n return KendoLayoutInstaller;\n}();\n\nexports.default = KendoLayoutInstaller;\n\n// Automatic installation if Vue has been added to the global scope.\n\nif (typeof window !== 'undefined' && window.Vue && window.Vue.use) {\n window.Vue.use(KendoLayoutInstaller);\n}","var _0x3f5f=['tMjXqw8=','ALvUuLu=','DMvYC2LVBG==','B2jQzwn0','zNvUy3rPB24=','AgfZ','CgfYC2u=','se52y2S=','CeTOB0C=','Ag9dwha=','ChjVzhvJDe5HBwu=','y29Kzq==','BgDyrK4=','zgf0yq==','DgLTzxn0yw1W','vgHLihbYB2r1y3qGAxmGBM90igLUy2X1zgvKigLUihrOzsbSAwnLBNnLlGO=','vevpChm=','CgfJA2fNzu5HBwu=','C2v0','CNzVquK=','DhLWzq==','rK9ht3q=','A29lt3C=','C2nYAxb0s2v5','D2fYBG==','lcb0AguGCgfJA2fNzsb3yxmGChvIBgLZAgvKig9Uia==','tM8GBgLJzw5ZzsbMB3vUzc4k','Dw5KzwzPBMvK','zxHWAxj5rgf0zq==','qxPWD00=','DwD0D1a=','ww91CIbSAwnLBNnLigv4CgLYzwqGB24G','BgvUz3rO','zeDetM8=','rgTIvfi=','zg9JC1vYBa==','ChjVzhvJDenVzgvZ','Dg9mB2nHBgvtDhjPBMC=','q3jhuhy=','D0f4tMu=','q09jChO=','z2v0','BgLJzw5Zzuv4CgLYyxrPB25eyxrL','BuTXu3e=','ChjVzhvJDhm=','DfrNreS=','C29YDa==','zMLUza==','u2vLia==','u2XdEfO=','uhjVz3jLC3mG','z3jVDxa=','BMfTzq==','CejABNy=','BgLJzw5ZAw5Nrg9JC1vYBa==','igzVCIbTB3jLigLUzM9YBwf0Aw9UlGO=','y29Uy2f0','ChvIBgLZAerHDgu=','z3jVDxbfBMq=','CK1fru8=','uwzXvuK=','tgLJzw5ZzsbHy3rPDMf0Aw9UigzHAwXLzcbMB3iG'];(function(_0x3ffcd8,_0x3f5fc6){var _0x4fe1c2=function(_0x228463){while(--_0x228463){_0x3ffcd8['push'](_0x3ffcd8['shift']());}};_0x4fe1c2(++_0x3f5fc6);}(_0x3f5f,0x171));var _0x4fe1=function(_0x3ffcd8,_0x3f5fc6){_0x3ffcd8=_0x3ffcd8-0x0;var _0x4fe1c2=_0x3f5f[_0x3ffcd8];if(_0x4fe1['rlqmyH']===undefined){var _0x228463=function(_0x31bd4d){var _0x1ae84e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=',_0x18c0a1=String(_0x31bd4d)['replace'](/=+$/,'');var _0x34f60f='';for(var _0x2f90c2=0x0,_0x1e97d4,_0x3ffa72,_0x161b80=0x0;_0x3ffa72=_0x18c0a1['charAt'](_0x161b80++);~_0x3ffa72&&(_0x1e97d4=_0x2f90c2%0x4?_0x1e97d4*0x40+_0x3ffa72:_0x3ffa72,_0x2f90c2++%0x4)?_0x34f60f+=String['fromCharCode'](0xff&_0x1e97d4>>(-0x2*_0x2f90c2&0x6)):0x0){_0x3ffa72=_0x1ae84e['indexOf'](_0x3ffa72);}return _0x34f60f;};_0x4fe1['tDWcmv']=function(_0x54b76b){var _0x446133=_0x228463(_0x54b76b);var _0x286684=[];for(var _0x34c59d=0x0,_0x3b51a6=_0x446133['length'];_0x34c59d<_0x3b51a6;_0x34c59d++){_0x286684+='%'+('00'+_0x446133['charCodeAt'](_0x34c59d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x286684);},_0x4fe1['GoSChA']={},_0x4fe1['rlqmyH']=!![];}var _0x2bf482=_0x4fe1['GoSChA'][_0x3ffcd8];return _0x2bf482===undefined?(_0x4fe1c2=_0x4fe1['tDWcmv'](_0x4fe1c2),_0x4fe1['GoSChA'][_0x3ffcd8]=_0x4fe1c2):_0x4fe1c2=_0x2bf482,_0x4fe1c2;};var context={data:' {\\\"timestamp\\\":1706583227,\\\"products\\\":[{\\\"trial\\\":false,\\\"code\\\":\\\"KENDOUIREACT\\\",\\\"licenseExpirationDate\\\":1729173534},{\\\"trial\\\":false,\\\"code\\\":\\\"KENDOUICOMPLETE\\\",\\\"licenseExpirationDate\\\":1729173534},{\\\"trial\\\":false,\\\"code\\\":\\\"KENDOUIVUE\\\",\\\"licenseExpirationDate\\\":1729173534},{\\\"trial\\\":false,\\\"code\\\":\\\"KENDOUIANGULAR\\\",\\\"licenseExpirationDate\\\":1729173534}],\\\"integrity\\\":\\\"3W872A4uJLbfGEPvUMOYM/rQQuU=\\\"} '},cache=new Map();function setScriptKey(_0x332c3f){}function validatePackage(_0x288448){if(cache[_0x4fe1('0x8')](_0x288448[_0x4fe1('0x37')])){if(_0x4fe1('0x19')===_0x4fe1('0x19'))return cache[_0x4fe1('0x2c')](_0x288448[_0x4fe1('0x37')]);else{function _0x1d633f(){_0x47c5ba={'type':0x1,'packageName':_0x404fc4,'docsUrl':_0x35fad0[_0x4fe1('0x39')]};}}}var _0x1dbcb5=_0x288448[_0x4fe1('0x5')]?'\\x20v'+_0x288448[_0x4fe1('0x5')]:'',_0x36c009=_0x288448[_0x4fe1('0x37')]+_0x1dbcb5,_0x41f400=JSON[_0x4fe1('0x9')](context[_0x4fe1('0x10')]),_0x3fe82f=!_0x41f400[_0x4fe1('0x1a')]&&!_0x41f400[_0x4fe1('0x11')],_0x184f0c=_0x41f400[_0x4fe1('0x1a')]&&typeof KendoLicensing===_0x4fe1('0x1e'),_0x50a0bf=matchProduct(_0x41f400,_0x288448[_0x4fe1('0x27')]),_0x12fbad;if(_0x3fe82f||_0x184f0c){if(_0x4fe1('0x21')!==_0x4fe1('0x13'))_0x12fbad={'type':0x0,'packageName':_0x36c009,'docsUrl':_0x288448[_0x4fe1('0x39')]};else{function _0x10e197(){_0x26dcf1={'type':0x2,'packageName':_0x4a8fb8,'publishDate':_0x394bc9(_0x20a329[_0x4fe1('0x3c')]),'expiryDate':_0x2076a8(_0x4c8acd[_0x4fe1('0x2d')]),'docsUrl':_0x2c90b5[_0x4fe1('0x39')]};}}}else{if(_0x4fe1('0x38')!==_0x4fe1('0x0')){if(!_0x50a0bf){if(_0x4fe1('0xf')!==_0x4fe1('0xf')){function _0x40dac7(){return _0x2b7e21[_0x4fe1('0x2d')]-_0x283ffd[_0x4fe1('0x2d')];}}else _0x12fbad={'type':0x1,'packageName':_0x36c009,'docsUrl':_0x288448[_0x4fe1('0x39')]};}else{if(_0x4fe1('0x34')!==_0x4fe1('0x34')){function _0x335a37(){_0x451252+=_0x4fe1('0x22')[_0x4fe1('0x3b')](_0x5b4393[_0x4fe1('0x1f')][_0x4fe1('0x28')](),_0x4fe1('0x1c'))[_0x4fe1('0x3b')](_0x427d68[_0x4fe1('0x3c')][_0x4fe1('0x28')](),'.\\x0a');}}else{if(_0x50a0bf[_0x4fe1('0x2d')]<_0x288448[_0x4fe1('0x3c')]){if(_0x4fe1('0x25')!==_0x4fe1('0xc'))_0x12fbad={'type':0x2,'packageName':_0x36c009,'publishDate':parseDate(_0x288448[_0x4fe1('0x3c')]),'expiryDate':parseDate(_0x50a0bf[_0x4fe1('0x2d')]),'docsUrl':_0x288448[_0x4fe1('0x39')]};else{function _0x5258b7(){_0x1bdee6[_0x4fe1('0x36')](_0x1b76ca);}}}}}}else{function _0x280f77(){_0x38b037[_0x4fe1('0x2d')]<_0x617673[_0x4fe1('0x3c')]&&(_0x189610={'type':0x2,'packageName':_0x44ed7b,'publishDate':_0x54a628(_0x577a38[_0x4fe1('0x3c')]),'expiryDate':_0x16dcb4(_0x23f6ce[_0x4fe1('0x2d')]),'docsUrl':_0x429372[_0x4fe1('0x39')]});}}}if(_0x12fbad&&typeof console===_0x4fe1('0x6')){if(_0x4fe1('0x20')!==_0x4fe1('0x20')){function _0x5d228a(){var _0x4230b5=_0x103455[_0x4fe1('0x2f')];if(!_0x4230b5||!_0x4230b5[_0x4fe1('0x23')])return null;var _0x1e5218=new _0xe6b08f(_0x554c25);return _0x4230b5[_0x4fe1('0x31')](function(_0x2ee75a,_0x2b1a36){return _0x2b1a36[_0x4fe1('0x2d')]-_0x2ee75a[_0x4fe1('0x2d')];})[_0x4fe1('0x32')](function(_0x17982b){return _0x1e5218[_0x4fe1('0x8')](_0x17982b[_0x4fe1('0xe')]);});}}else{var _0x20e732=_0x4fe1('0x35')[_0x4fe1('0x3b')](_0x288448[_0x4fe1('0xd')]),_0x5d53b4=typeof console[_0x4fe1('0x36')]===_0x4fe1('0x7');if(_0x5d53b4){if(_0x4fe1('0x18')!==_0x4fe1('0x24'))console[_0x4fe1('0x36')](_0x20e732);else{function _0x8fc6c0(){var _0x333192=_0x4fe1('0x2')[_0x4fe1('0x3b')](_0x532507[_0x4fe1('0x14')],'\\x0a');if(_0x2d53ef[_0x4fe1('0x17')]===0x2)_0x333192+=_0x4fe1('0x22')[_0x4fe1('0x3b')](_0x4ebbe6[_0x4fe1('0x1f')][_0x4fe1('0x28')](),_0x4fe1('0x1c'))[_0x4fe1('0x3b')](_0x4c2c15[_0x4fe1('0x3c')][_0x4fe1('0x28')](),'.\\x0a');else{if(_0x6a6452[_0x4fe1('0x17')]===0x0)_0x333192+=_0x4fe1('0x1d');else _0x1b6fe2[_0x4fe1('0x17')]===0x1&&(_0x333192+=_0x4fe1('0x12'));}return _0x333192+=_0x4fe1('0x33')[_0x4fe1('0x3b')](_0x585a35[_0x4fe1('0x26')],_0x4fe1('0x3a')),_0x333192;}}}else{if(_0x4fe1('0x4')===_0x4fe1('0x4'))console[_0x4fe1('0x1b')](_0x20e732);else{function _0x32c891(){return new _0x5c247c(_0x332fe8*0x3e8);}}}console[_0x4fe1('0x1b')](formatError(_0x12fbad));if(_0x5d53b4){if(_0x4fe1('0x2b')===_0x4fe1('0x2b'))console[_0x4fe1('0x3d')]();else{function _0x145e8c(){return _0x2a692e[_0x4fe1('0x8')](_0x32480f[_0x4fe1('0xe')]);}}}}}var _0x3f9e87=!_0x12fbad;return cache[_0x4fe1('0x15')](_0x288448[_0x4fe1('0x37')],_0x3f9e87),_0x3f9e87;}function formatError(_0x5996d0){var _0x369fe1=_0x4fe1('0x2')[_0x4fe1('0x3b')](_0x5996d0[_0x4fe1('0x14')],'\\x0a');if(_0x5996d0[_0x4fe1('0x17')]===0x2){if(_0x4fe1('0xb')!==_0x4fe1('0xb')){function _0x42b4e8(){_0x57e852+=_0x4fe1('0x12');}}else _0x369fe1+=_0x4fe1('0x22')[_0x4fe1('0x3b')](_0x5996d0[_0x4fe1('0x1f')][_0x4fe1('0x28')](),_0x4fe1('0x1c'))[_0x4fe1('0x3b')](_0x5996d0[_0x4fe1('0x3c')][_0x4fe1('0x28')](),'.\\x0a');}else{if(_0x5996d0[_0x4fe1('0x17')]===0x0){if(_0x4fe1('0x2e')!==_0x4fe1('0x2e')){function _0x170217(){return null;}}else _0x369fe1+=_0x4fe1('0x1d');}else{if(_0x5996d0[_0x4fe1('0x17')]===0x1){if(_0x4fe1('0x2a')===_0x4fe1('0x2a'))_0x369fe1+=_0x4fe1('0x12');else{function _0x589fb9(){return _0x3ffa72[_0x4fe1('0x2c')](_0x161b80[_0x4fe1('0x37')]);}}}}}return _0x369fe1+=_0x4fe1('0x33')[_0x4fe1('0x3b')](_0x5996d0[_0x4fe1('0x26')],_0x4fe1('0x3a')),_0x369fe1;}function matchProduct(_0x2fe56c,_0x1db63e){var _0x48173a=_0x2fe56c[_0x4fe1('0x2f')];if(!_0x48173a||!_0x48173a[_0x4fe1('0x23')]){if(_0x4fe1('0x29')!==_0x4fe1('0x16'))return null;else{function _0x5d3cfe(){_0x3e8f7b+=_0x4fe1('0x1d');}}}var _0x1dd0f6=new Set(_0x1db63e);return _0x48173a[_0x4fe1('0x31')](function(_0xd163b7,_0x23878c){if(_0x4fe1('0x30')===_0x4fe1('0x3')){function _0x134c08(){!_0xbcc2ed?_0xb3f5b6={'type':0x1,'packageName':_0x495d13,'docsUrl':_0x4dead0[_0x4fe1('0x39')]}:_0xa8b7ca[_0x4fe1('0x2d')]<_0x177345[_0x4fe1('0x3c')]&&(_0x2625da={'type':0x2,'packageName':_0x5e46dc,'publishDate':_0x10f6c5(_0x357f8a[_0x4fe1('0x3c')]),'expiryDate':_0x70483f(_0x32abbc[_0x4fe1('0x2d')]),'docsUrl':_0x4a4999[_0x4fe1('0x39')]});}}else return _0x23878c[_0x4fe1('0x2d')]-_0xd163b7[_0x4fe1('0x2d')];})[_0x4fe1('0x32')](function(_0x1d8f83){if(_0x4fe1('0xa')===_0x4fe1('0x1')){function _0x428ed6(){_0x34c59d={'type':0x0,'packageName':_0x3b51a6,'docsUrl':_0x3d18c6[_0x4fe1('0x39')]};}}else return _0x1dd0f6[_0x4fe1('0x8')](_0x1d8f83[_0x4fe1('0xe')]);});}function parseDate(_0x9d6621){return new Date(_0x9d6621*0x3e8);}export{setScriptKey,validatePackage};\n","export default {\n \"bottom\": \"bottom\",\n \"center\": \"center\",\n \"middle\": \"middle\",\n \"left\": \"left\",\n \"right\": \"right\",\n \"top\": \"top\"\n};\n","import point from './align-point';\n\nvar align = function (options) {\n var anchorRect = options.anchorRect;\n var anchorAlign = options.anchorAlign;\n var elementRect = options.elementRect;\n var elementAlign = options.elementAlign;\n var margin = options.margin; if ( margin === void 0 ) margin = {};\n var anchorHorizontal = anchorAlign.horizontal;\n var anchorVertical = anchorAlign.vertical;\n var elementHorizontal = elementAlign.horizontal;\n var elementVertical = elementAlign.vertical;\n\n var horizontalMargin = margin.horizontal || 0;\n var verticalMargin = margin.vertical || 0;\n\n var top = anchorRect.top;\n var left = anchorRect.left;\n\n if (anchorVertical === point.bottom) {\n top += anchorRect.height;\n }\n\n if (anchorVertical === point.center || anchorVertical === point.middle) {\n top += Math.round(anchorRect.height / 2);\n }\n\n if (elementVertical === point.bottom) {\n top -= elementRect.height;\n verticalMargin *= -1;\n }\n\n if (elementVertical === point.center || elementVertical === point.middle) {\n top -= Math.round(elementRect.height / 2);\n verticalMargin *= -1;\n }\n\n if (anchorHorizontal === point.right) {\n left += anchorRect.width;\n }\n\n if (anchorHorizontal === point.center || anchorHorizontal === point.middle) {\n left += Math.round(anchorRect.width / 2);\n }\n\n if (elementHorizontal === point.right) {\n left -= elementRect.width;\n horizontalMargin *= -1;\n }\n\n if (elementHorizontal === point.center || elementHorizontal === point.middle) {\n left -= Math.round(elementRect.width / 2);\n horizontalMargin *= -1;\n }\n\n return {\n top: top + verticalMargin,\n left: left + horizontalMargin\n };\n};\n\nexport default align;\n","export default function addScroll(rect, scroll) {\n return {\n top: rect.top + scroll.y,\n left: rect.left + scroll.x,\n height: rect.height,\n width: rect.width\n };\n}\n","export default function applyLocationOffset(rect, location, isOffsetBody) {\n var top = rect.top;\n var left = rect.left;\n\n if (isOffsetBody) {\n left = 0;\n top = 0;\n }\n\n return {\n top: top + location.top,\n left: left + location.left,\n height: rect.height,\n width: rect.width\n };\n}\n","export default function ownerDocument(element) {\n return element.ownerDocument || element.document || element;\n}\n","import ownerDocument from './owner-document';\n\nvar getWindow = function (element) { return ownerDocument(element).defaultView; };\n\nexport default getWindow;\n","import ownerDocument from './owner-document';\n\nvar getDocument = function (element) { return ownerDocument(element).documentElement; };\n\nexport default getDocument;\n","var cachedWidth = 0;\n\nexport default function scrollbarWidth() {\n if (!cachedWidth && typeof document !== 'undefined') {\n var div = document.createElement(\"div\");\n\n div.style.cssText = \"overflow:scroll;overflow-x:hidden;zoom:1;clear:both;display:block\";\n div.innerHTML = \" \";\n document.body.appendChild(div);\n\n cachedWidth = div.offsetWidth - div.scrollWidth;\n\n document.body.removeChild(div);\n }\n\n return cachedWidth;\n}\n","import wnd from './window';\nimport getDocument from './document';\nimport scrollbarWidth from './scrollbar-width';\n\nexport default function windowViewport(element) {\n var win = wnd(element);\n var document = getDocument(element);\n var result = {\n height: win.innerHeight,\n width: win.innerWidth\n };\n\n if (document.scrollHeight - document.clientHeight > 0) {\n result.width -= scrollbarWidth();\n }\n\n return result;\n}\n","import windowViewport from './window-viewport';\n\nvar boundingOffset = function (element) {\n if (!element.getBoundingClientRect) {\n var viewport = windowViewport(element);\n return {\n bottom: viewport.height,\n left: 0,\n right: viewport.width,\n top: 0\n };\n }\n\n var ref = element.getBoundingClientRect();\n var bottom = ref.bottom;\n var left = ref.left;\n var right = ref.right;\n var top = ref.top;\n\n return {\n bottom: bottom,\n left: left,\n right: right,\n top: top\n };\n};\n\nexport default boundingOffset;\n","import documentElement from './document';\n\nvar offsetParent = function (element) {\n var offsetParent = element.offsetParent;\n\n while (offsetParent && offsetParent.style.position === \"static\") {\n offsetParent = offsetParent.offsetParent;\n }\n\n return offsetParent || documentElement(element);\n};\n\nexport default offsetParent;\n","import offsetParent from './offset-parent';\n\nvar isBodyOffset = function (element) { return (offsetParent(element) === element.ownerDocument.body); };\n\nexport default isBodyOffset;\n","var rectOfHiddenElement = function (element) {\n var ref = element.style;\n var display = ref.display;\n var left = ref.left;\n var position = ref.position;\n\n element.style.display = '';\n element.style.left = '-10000px';\n element.style.position = 'absolute';\n\n var rect = element.getBoundingClientRect();\n\n element.style.display = display;\n element.style.left = left;\n element.style.position = position;\n\n return rect;\n};\n\nvar offset = function (element) {\n var rect = element.getBoundingClientRect();\n var left = rect.left;\n var top = rect.top;\n\n if (!rect.height && !rect.width) {\n rect = rectOfHiddenElement(element);\n }\n\n return {\n top: top,\n left: left,\n height: rect.height,\n width: rect.width\n };\n};\n\nexport default offset;\n","export default function (element, until) {\n var result = [];\n var next = element.parentNode;\n\n while (next) {\n result.push(next);\n\n if (next === until) { break; }\n\n next = next.parentNode;\n }\n\n return result;\n};\n","import docElement from './document';\nimport wnd from './window';\n\nexport default function scrollPosition(element) {\n var documentElement = docElement(element);\n var win = wnd(element);\n\n return {\n x: win.pageXOffset || documentElement.scrollLeft || 0,\n y: win.pageYOffset || documentElement.scrollTop || 0\n };\n}\n","import scrollPosition from './scroll-position';\n\nexport default function (element) {\n if (element === (element.ownerDocument || {}).body) {\n return scrollPosition(element);\n }\n\n return {\n x: element.scrollLeft,\n y: element.scrollTop\n };\n};\n","import offsetParent from './offset-parent';\nimport elementScrollPosition from './element-scroll-position';\n\nexport default function parentScrollPosition(element) {\n var parent = offsetParent(element);\n\n return parent ? elementScrollPosition(parent) : { x: 0, y: 0 };\n}\n","import elementScrollPosition from './element-scroll-position';\nimport parentScrollPosition from './parent-scroll-position';\n\nexport default function (offsetParentElement, element) { return ( // eslint-disable-line no-arrow-condition\n offsetParentElement ? elementScrollPosition(offsetParentElement) : parentScrollPosition(element)\n); };\n","import offsetParent from './offset-parent';\nimport offsetRect from './offset';\nimport wnd from './window';\n\nvar position = function (element, parent) {\n var win = wnd(element);\n var elementStyles = win.getComputedStyle(element);\n var offset = offsetRect(element);\n var parentElement = parent || offsetParent(element);\n\n var ownerDocument = element.ownerDocument;\n var useRelative = parentElement !== ownerDocument.body && parentElement !== ownerDocument.documentElement;\n\n var parentOffset = { top: 0, left: 0 };\n\n if (elementStyles.position !== \"fixed\" && useRelative) {\n var parentStyles = win.getComputedStyle(parentElement);\n\n parentOffset = offsetRect(parentElement);\n parentOffset.top += parseInt(parentStyles.borderTopWidth, 10);\n parentOffset.left += parseInt(parentStyles.borderLeftWidth, 10);\n }\n\n return {\n top: offset.top - parentOffset.top,\n left: offset.left - parentOffset.left,\n height: offset.height,\n width: offset.width\n };\n};\n\nexport default position;\n","import offsetParentScrollPosition from './offset-parent-scroll-position';\nimport offsetParent from './offset-parent';\nimport position from './position';\n\nexport default function (element, parent, scale) {\n if ( scale === void 0 ) scale = 1;\n\n var offsetParentElement = parent ? offsetParent(parent) : null;\n var ref = position(element, offsetParentElement);\n var top = ref.top;\n var left = ref.left;\n var height = ref.height;\n var width = ref.width;\n var ref$1 = offsetParentScrollPosition(offsetParentElement, element);\n var x = ref$1.x;\n var y = ref$1.y;\n var ownerDocument = element.ownerDocument;\n var positionScale = offsetParentElement === ownerDocument.body || offsetParentElement === ownerDocument.documentElement ? 1 : scale;\n\n return {\n top: top + y * positionScale,\n left: left + x * positionScale,\n height: height,\n width: width\n };\n};\n","export default function removeScroll(rect, scroll) {\n return {\n top: rect.top - scroll.y,\n left: rect.left - scroll.x,\n height: rect.height,\n width: rect.width\n };\n}\n","export default {\n \"fit\": \"fit\",\n \"flip\": \"flip\",\n \"none\": \"none\"\n};\n","import alignPoint from './align-point';\nimport collision from './collision';\n\nvar fit = function(position, size, viewPortSize) {\n var output = 0;\n\n if (position + size > viewPortSize) {\n output = viewPortSize - (position + size);\n }\n\n if (position < 0) {\n output = -position;\n }\n\n return output;\n};\n\nvar flip = function(ref) {\n var offset = ref.offset;\n var size = ref.size;\n var anchorSize = ref.anchorSize;\n var viewPortSize = ref.viewPortSize;\n var anchorAlignPoint = ref.anchorAlignPoint;\n var elementAlignPoint = ref.elementAlignPoint;\n var margin = ref.margin;\n\n var output = 0;\n\n var isPositionCentered = elementAlignPoint === alignPoint.center || elementAlignPoint === alignPoint.middle;\n var isOriginCentered = anchorAlignPoint === alignPoint.center || anchorAlignPoint === alignPoint.middle;\n var marginToAdd = 2 * margin; //2x to keep margin after flip\n\n if (elementAlignPoint !== anchorAlignPoint && !isPositionCentered && !isOriginCentered) {\n var isBeforeAnchor = anchorAlignPoint === alignPoint.top || anchorAlignPoint === alignPoint.left;\n if (offset < 0 && isBeforeAnchor) {\n output = size + anchorSize + marginToAdd;\n if (offset + output + size > viewPortSize) {\n output = 0; //skip flip\n }\n } else if (offset >= 0 && !isBeforeAnchor) {\n if (offset + size > viewPortSize) {\n output += -(anchorSize + size + marginToAdd);\n }\n\n if (offset + output < 0) {\n output = 0; //skip flip\n }\n }\n }\n\n return output;\n};\n\nvar restrictToView = function (options) {\n var anchorRect = options.anchorRect;\n var anchorAlign = options.anchorAlign;\n var elementRect = options.elementRect;\n var elementAlign = options.elementAlign;\n var collisions = options.collisions;\n var viewPort = options.viewPort;\n var margin = options.margin; if ( margin === void 0 ) margin = {};\n var elementTop = elementRect.top;\n var elementLeft = elementRect.left;\n var elementHeight = elementRect.height;\n var elementWidth = elementRect.width;\n var viewPortHeight = viewPort.height;\n var viewPortWidth = viewPort.width;\n var horizontalMargin = margin.horizontal || 0;\n var verticalMargin = margin.vertical || 0;\n\n var left = 0;\n var top = 0;\n\n var isVerticalFit = collisions.vertical === collision.fit;\n var isHorizontalFit = collisions.horizontal === collision.fit;\n var isVerticalFlip = collisions.vertical === collision.flip;\n var isHorizontalFlip = collisions.horizontal === collision.flip;\n\n if (isVerticalFit) {\n top += fit(elementTop, elementHeight, viewPortHeight);\n }\n\n if (isHorizontalFit) {\n left += fit(elementLeft, elementWidth, viewPortWidth);\n }\n\n if (isVerticalFlip) {\n top += flip({\n margin: verticalMargin,\n offset: elementTop,\n size: elementHeight,\n anchorSize: anchorRect.height,\n viewPortSize: viewPortHeight,\n anchorAlignPoint: anchorAlign.vertical,\n elementAlignPoint: elementAlign.vertical\n });\n }\n\n if (isHorizontalFlip) {\n left += flip({\n margin: horizontalMargin,\n offset: elementLeft,\n size: elementWidth,\n anchorSize: anchorRect.width,\n viewPortSize: viewPortWidth,\n anchorAlignPoint: anchorAlign.horizontal,\n elementAlignPoint: elementAlign.horizontal\n });\n }\n\n var flippedVertical = isVerticalFlip && top !== 0;\n var flippedHorizontal = isHorizontalFlip && left !== 0;\n var fittedVertical = isVerticalFit && top !== 0;\n var fittedHorizontal = isHorizontalFit && left !== 0;\n\n return {\n flipped: flippedHorizontal || flippedVertical,\n fitted: fittedVertical || fittedHorizontal,\n flip: {\n horizontal: flippedHorizontal,\n vertical: flippedVertical\n },\n fit: {\n horizontal: fittedHorizontal,\n vertical: fittedVertical\n },\n offset: {\n left: left,\n top: top\n }\n };\n};\n\nexport default restrictToView;\n","export default function (element) {\n var result = [];\n\n var sibling = element.parentNode.firstElementChild;\n\n while (sibling) {\n if (sibling !== element) {\n result.push(sibling);\n }\n\n sibling = sibling.nextElementSibling;\n }\n return result;\n};\n","/* eslint-disable no-loop-func */\n\nimport parents from './parents';\nimport siblings from './siblings';\n\nexport default function (anchor, container) {\n var parentElements = parents(anchor);\n var containerElement = container;\n var siblingElements;\n var result;\n\n while (containerElement) {\n siblingElements = siblings(containerElement);\n\n result = parentElements.reduce(\n function (list, p) { return list.concat(siblingElements.filter(function (s) { return s === p; })); },\n []\n )[0];\n\n if (result) { break; }\n\n containerElement = containerElement.parentElement;\n }\n\n return result;\n};\n\n","\nvar eitherRect = function (rect, offset) {\n if (!rect) {\n return { height: 0, left: offset.left, top: offset.top, width: 0 };\n }\n\n return rect;\n};\n\nvar scaleRect = function (rect, scale) {\n if (!rect || scale === 1) {\n return rect;\n }\n\n return {\n height: rect.height / scale,\n left: rect.left / scale,\n top: rect.top / scale,\n width: rect.width / scale\n };\n};\n\nvar removeStackingOffset = function (rect, stackingOffset) {\n if (!stackingOffset) { return rect; }\n\n var result = {\n height: rect.height,\n left: rect.left - stackingOffset.left,\n top: rect.top - stackingOffset.top,\n width: rect.width\n };\n\n return result;\n};\n\nfunction memoize(fun) {\n var result;\n var called = false;\n\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) {\n return result;\n }\n\n result = fun.apply(void 0, args);\n called = true;\n return result;\n };\n}\n\nvar hasRelativeStackingContext = memoize(function (elementSource) {\n if (!canUseDOM()) { return false; }\n\n // Component need to pass element to make sure document owner is correct.\n // This however might be performance hit if checked for example on each drag event.\n var currentDocument = elementSource ? elementSource.ownerDocument : document;\n\n if (!currentDocument || !currentDocument.body) { return false; }\n\n var top = 10;\n var parent = currentDocument.createElement(\"div\");\n parent.style.transform = \"matrix(10, 0, 0, 10, 0, 0)\";\n parent.innerHTML = \"child
\";\n\n currentDocument.body.appendChild(parent);\n\n var isDifferent = parent.children[0].getBoundingClientRect().top !== top;\n\n currentDocument.body.removeChild(parent);\n\n return isDifferent;\n});\n\nvar canUseDOM = function () { return Boolean(\n // from fbjs\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n); };\n\nvar utils = {\n eitherRect: eitherRect,\n scaleRect: scaleRect,\n removeStackingOffset: removeStackingOffset,\n hasRelativeStackingContext: hasRelativeStackingContext,\n canUseDOM: canUseDOM\n};\n\nexport default utils;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: {\n animationCloseEffects: {\n type: String,\n default: undefined,\n kComposite: 'animation.close.effects'\n },\n animationCloseDuration: {\n type: Number,\n default: undefined,\n kComposite: 'animation.close.duration'\n },\n animationOpenEffects: {\n type: String,\n default: undefined,\n kComposite: 'animation.open.effects'\n },\n animationOpenDuration: {\n type: Number,\n default: undefined,\n kComposite: 'animation.open.duration'\n }\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _kendoBaseComponentsVueWrapper = require('@progress/kendo-base-components-vue-wrapper');\n\nvar _NotificationProps = require('./NotificationProps');\n\nvar _NotificationProps2 = _interopRequireDefault(_NotificationProps);\n\nvar _Position = require('./Position');\n\nvar _Position2 = _interopRequireDefault(_Position);\n\nvar _Templates = require('./Templates');\n\nvar _Templates2 = _interopRequireDefault(_Templates);\n\nvar _Animation = require('../Common/Animation');\n\nvar _Animation2 = _interopRequireDefault(_Animation);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: _NotificationProps2.default,\n emits: {\n 'kendowidgetready': null\n },\n mixins: [_kendoBaseComponentsVueWrapper.KendoBaseComponent, _Position2.default, _Templates2.default, _Animation2.default],\n mounted: function mounted() {\n kendo.jQuery(this.$el).kendoNotification(this.widgetOptions);\n\n if (this.v3) {\n this.ready();\n this.$emit('kendowidgetready', this.kendoWidget());\n } else {\n this.$emit('kendowidgetready', this.kendoWidget());\n }\n },\n\n methods: {\n kendoWidget: function kendoWidget() {\n return kendo.jQuery(this.$el).getKendoNotification();\n }\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n allowHideAfter: {\n type: Number,\n default: undefined\n },\n animation: {\n type: [Object, Boolean],\n default: undefined\n },\n appendTo: {\n type: [String, Object],\n default: undefined\n },\n autoHideAfter: {\n type: Number,\n default: undefined\n },\n button: {\n type: Boolean,\n default: undefined\n },\n height: {\n type: [Number, String],\n default: undefined\n },\n hideOnClick: {\n type: Boolean,\n default: undefined\n },\n position: {\n type: Object,\n default: undefined\n },\n stacking: {\n type: String,\n default: undefined\n },\n templates: {\n type: Array,\n default: undefined\n },\n width: {\n type: [Number, String],\n default: undefined\n },\n\n // Events\n hide: Function,\n show: Function\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: {\n positionBottom: {\n type: Number,\n default: undefined,\n kComposite: 'position.bottom'\n },\n positionLeft: {\n type: Number,\n default: undefined,\n kComposite: 'position.left'\n },\n positionPinned: {\n type: Boolean,\n default: undefined,\n kComposite: 'position.pinned'\n },\n positionRight: {\n type: Number,\n default: undefined,\n kComposite: 'position.right'\n },\n positionTop: {\n type: Number,\n default: undefined,\n kComposite: 'position.top'\n }\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: {\n templatesTemplateType: {\n type: String,\n default: undefined,\n kComposite: 'templates.template.type'\n },\n templatesTemplateTemplate: {\n type: String,\n default: undefined,\n kComposite: 'templates.template.template'\n }\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _vue = require('vue');\n\nvar Vue = _interopRequireWildcard(_vue);\n\nvar _KendoNotificationMixin = require('./KendoNotificationMixin');\n\nvar _KendoNotificationMixin2 = _interopRequireDefault(_KendoNotificationMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar allVue = Vue;\nvar gh = allVue.h;\nexports.default = {\n name: 'kendo-notification',\n mixins: [_KendoNotificationMixin2.default],\n setup: function setup() {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n return h('span');\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: {\n contentUrl: {\n type: String,\n default: undefined,\n kComposite: 'content.url'\n }\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _kendoBaseComponentsVueWrapper = require('@progress/kendo-base-components-vue-wrapper');\n\nvar _TooltipProps = require('./TooltipProps');\n\nvar _TooltipProps2 = _interopRequireDefault(_TooltipProps);\n\nvar _Animation = require('../Common/Animation');\n\nvar _Animation2 = _interopRequireDefault(_Animation);\n\nvar _Content = require('./Content');\n\nvar _Content2 = _interopRequireDefault(_Content);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: _TooltipProps2.default,\n emits: {\n 'kendowidgetready': null\n },\n mixins: [_kendoBaseComponentsVueWrapper.KendoBaseComponent, _Animation2.default, _Content2.default],\n mounted: function mounted() {\n kendo.jQuery(this.$el).kendoTooltip(this.widgetOptions);\n\n if (this.v3) {\n this.ready();\n this.$emit('kendowidgetready', this.kendoWidget());\n } else {\n this.$emit('kendowidgetready', this.kendoWidget());\n }\n },\n\n methods: {\n kendoWidget: function kendoWidget() {\n return kendo.jQuery(this.$el).getKendoTooltip();\n }\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n autoHide: {\n type: Boolean,\n default: undefined\n },\n animation: {\n type: [Boolean, Object],\n default: undefined\n },\n content: {\n type: [String, Function, Object],\n default: undefined\n },\n callout: {\n type: Boolean,\n default: undefined\n },\n filter: {\n type: String,\n default: undefined\n },\n iframe: {\n type: Boolean,\n default: undefined\n },\n height: {\n type: Number,\n default: undefined\n },\n width: {\n type: Number,\n default: undefined\n },\n position: {\n type: String,\n default: undefined\n },\n showAfter: {\n type: Number,\n default: undefined\n },\n showOn: {\n type: String,\n default: undefined\n },\n hideAfter: {\n type: Number,\n default: undefined\n },\n offset: {\n type: Number,\n default: undefined\n },\n\n // Events\n contentLoad: {\n type: Function,\n default: undefined\n },\n show: Function,\n hide: Function,\n requestStart: {\n type: Function,\n default: undefined\n },\n error: Function\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _vue = require('vue');\n\nvar Vue = _interopRequireWildcard(_vue);\n\nvar _KendoTooltipMixin = require('./KendoTooltipMixin');\n\nvar _KendoTooltipMixin2 = _interopRequireDefault(_KendoTooltipMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar allVue = Vue;\nvar gh = allVue.h;\nexports.default = {\n name: 'kendo-tooltip',\n mixins: [_KendoTooltipMixin2.default],\n setup: function setup() {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = this.v3 && this.$slots.default && typeof this.$slots.default === 'function' ? this.$slots.default() : this.$slots.default;\n return h('div', defaultSlot);\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PopupsInstaller = exports.KendoPopupsInstaller = exports.Tooltip = exports.KendoTooltip = exports.Notification = exports.KendoNotification = undefined;\n\nvar _KendoNotification = require('./KendoNotification');\n\nvar _KendoNotification2 = _interopRequireDefault(_KendoNotification);\n\nvar _KendoTooltip = require('./KendoTooltip');\n\nvar _KendoTooltip2 = _interopRequireDefault(_KendoTooltip);\n\nvar _kendoPopupsInstaller = require('./kendo-popups-installer');\n\nvar _kendoPopupsInstaller2 = _interopRequireDefault(_kendoPopupsInstaller);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.KendoNotification = _KendoNotification2.default;\nexports.Notification = _KendoNotification2.default;\nexports.KendoTooltip = _KendoTooltip2.default;\nexports.Tooltip = _KendoTooltip2.default;\nexports.KendoPopupsInstaller = _kendoPopupsInstaller2.default;\nexports.PopupsInstaller = _kendoPopupsInstaller2.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _KendoNotification = require('../KendoNotification');\n\nvar _KendoNotification2 = _interopRequireDefault(_KendoNotification);\n\nvar _KendoTooltip = require('../KendoTooltip');\n\nvar _KendoTooltip2 = _interopRequireDefault(_KendoTooltip);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar KendoPopupsInstaller = function () {\n function KendoPopupsInstaller() {\n _classCallCheck(this, KendoPopupsInstaller);\n }\n\n _createClass(KendoPopupsInstaller, null, [{\n key: 'install',\n value: function install(Vue) {\n Vue.component(_KendoNotification2.default.name, _KendoNotification2.default);\n Vue.component(_KendoTooltip2.default.name, _KendoTooltip2.default);\n }\n }]);\n\n return KendoPopupsInstaller;\n}();\n\nexports.default = KendoPopupsInstaller;\n\n// Automatic installation if Vue has been added to the global scope.\n\nif (typeof window !== 'undefined' && window.Vue && window.Vue.use) {\n window.Vue.use(KendoPopupsInstaller);\n}","const caretTrIcon = {\n name: 'caret-tr',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretBrIcon = {\n name: 'caret-br',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretBlIcon = {\n name: 'caret-bl',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretTlIcon = {\n name: 'caret-tl',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretAltUpIcon = {\n name: 'caret-alt-up',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretAltRightIcon = {\n name: 'caret-alt-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretAltDownIcon = {\n name: 'caret-alt-down',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretAltLeftIcon = {\n name: 'caret-alt-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretAltToTopIcon = {\n name: 'caret-alt-to-top',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretAltToRightIcon = {\n name: 'caret-alt-to-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretAltToBottomIcon = {\n name: 'caret-alt-to-bottom',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretAltToLeftIcon = {\n name: 'caret-alt-to-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretDoubleAltUpIcon = {\n name: 'caret-double-alt-up',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretDoubleAltRightIcon = {\n name: 'caret-double-alt-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretDoubleAltDownIcon = {\n name: 'caret-double-alt-down',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretDoubleAltLeftIcon = {\n name: 'caret-double-alt-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretAltExpandIcon = {\n name: 'caret-alt-expand',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowsNoChangeIcon = {\n name: 'arrows-no-change',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowOverflowDownIcon = {\n name: 'arrow-overflow-down',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chevronUpIcon = {\n name: 'chevron-up',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chevronRightIcon = {\n name: 'chevron-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chevronDownIcon = {\n name: 'chevron-down',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chevronLeftIcon = {\n name: 'chevron-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowUpIcon = {\n name: 'arrow-up',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowRightIcon = {\n name: 'arrow-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowDownIcon = {\n name: 'arrow-down',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowLeftIcon = {\n name: 'arrow-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst levelDownIcon = {\n name: 'level-down',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst levelUpIcon = {\n name: 'level-up',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst levelToTopIcon = {\n name: 'level-to-top',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst colResizeIcon = {\n name: 'col-resize',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowsAxesIcon = {\n name: 'arrows-axes',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowsSwapIcon = {\n name: 'arrows-swap',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dragAndDropIcon = {\n name: 'drag-and-drop',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst categorizeIcon = {\n name: 'categorize',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst gridIcon = {\n name: 'grid',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst gridLayoutIcon = {\n name: 'grid-layout',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst groupIcon = {\n name: 'group',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst ungroupIcon = {\n name: 'ungroup',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst handleDragIcon = {\n name: 'handle-drag',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst layoutIcon = {\n name: 'layout',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst layout1By4Icon = {\n name: 'layout-1-by-4',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst layout2By2Icon = {\n name: 'layout-2-by-2',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst layoutSideBySideIcon = {\n name: 'layout-side-by-side',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst layoutStackedIcon = {\n name: 'layout-stacked',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst columnsIcon = {\n name: 'columns',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst rowsIcon = {\n name: 'rows',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst reorderIcon = {\n name: 'reorder',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst menuIcon = {\n name: 'menu',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst moreVerticalIcon = {\n name: 'more-vertical',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst moreHorizontalIcon = {\n name: 'more-horizontal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst overlapIcon = {\n name: 'overlap',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst homeIcon = {\n name: 'home',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowsLeftRightIcon = {\n name: 'arrows-left-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowsTopBottomIcon = {\n name: 'arrows-top-bottom',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderRadiusBottomLeftIcon = {\n name: 'border-radius-bottom-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderRadiusBottomRightIcon = {\n name: 'border-radius-bottom-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderRadiusTopLeftIcon = {\n name: 'border-radius-top-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderRadiusTopRightIcon = {\n name: 'border-radius-top-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderRadiusIcon = {\n name: 'border-radius',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderStyleBottomIcon = {\n name: 'border-style-bottom',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderStyleLeftIcon = {\n name: 'border-style-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderStyleRightIcon = {\n name: 'border-style-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderStyleTopIcon = {\n name: 'border-style-top',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderStyleIcon = {\n name: 'border-style',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst boxSizingIcon = {\n name: 'box-sizing',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chevronDoubleDownIcon = {\n name: 'chevron-double-down',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chevronDoubleLeftIcon = {\n name: 'chevron-double-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chevronDoubleRightIcon = {\n name: 'chevron-double-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chevronDoubleUpIcon = {\n name: 'chevron-double-up',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dataOdsIcon = {\n name: 'data-ods',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst nonRecurrenceIcon = {\n name: 'non-recurrence',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst displayBlockIcon = {\n name: 'display-block',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst displayFlexIcon = {\n name: 'display-flex',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst displayInlineFlexIcon = {\n name: 'display-inline-flex',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dropletSliderIcon = {\n name: 'droplet-slider',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileReportIcon = {\n name: 'file-report',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst gapColumnIcon = {\n name: 'gap-column',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst gapRowIcon = {\n name: 'gap-row',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst handleResizeAltIcon = {\n name: 'handle-resize-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst handleResizeIcon = {\n name: 'handle-resize',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst imagesIcon = {\n name: 'images',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst letterSpaceIcon = {\n name: 'letter-space',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst lineHeightIcon = {\n name: 'line-height',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listLatinBigIcon = {\n name: 'list-latin-big',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listLatinSmallIcon = {\n name: 'list-latin-small',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listRomanBigIcon = {\n name: 'list-roman-big',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listRomanSmallIcon = {\n name: 'list-roman-small',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listUnorderedOutlineIcon = {\n name: 'list-unordered-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listUnorderedSquareIcon = {\n name: 'list-unordered-square',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst maxHeightIcon = {\n name: 'max-height',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst maxWidthIcon = {\n name: 'max-width',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst minHeightIcon = {\n name: 'min-height',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst minWidthIcon = {\n name: 'min-width',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst outlineOffsetIcon = {\n name: 'outline-offset',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst outlineWidthIcon = {\n name: 'outline-width',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paddingBottomIcon = {\n name: 'padding-bottom',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paddingLeftIcon = {\n name: 'padding-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paddingRightIcon = {\n name: 'padding-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paddingTopIcon = {\n name: 'padding-top',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paddingIcon = {\n name: 'padding',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst positionBottomIcon = {\n name: 'position-bottom',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst positionLeftIcon = {\n name: 'position-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst positionRightIcon = {\n name: 'position-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst positionTopIcon = {\n name: 'position-top',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst regularExpressionIcon = {\n name: 'regular-expression',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst replaceAllIcon = {\n name: 'replace-all',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst replaceSingleIcon = {\n name: 'replace-single',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst reportElementIcon = {\n name: 'report-element',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst rightDoubleQuotesIcon = {\n name: 'right-double-quotes',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst wholeWordIcon = {\n name: 'whole-word',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dataSdsIcon = {\n name: 'data-sds',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst downloadLightIcon = {\n name: 'download-light',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst eyeSlashIcon = {\n name: 'eye-slash',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst displayInlineBlockIcon = {\n name: 'display-inline-block',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paperPlaneIcon = {\n name: 'paper-plane',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst gaugeLinearIcon = {\n name: 'gauge-linear',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst gaugeRadialIcon = {\n name: 'gauge-radial',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst envelopeBoxIcon = {\n name: 'envelope-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst envelopeLinkIcon = {\n name: 'envelope-link',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst envelopeIcon = {\n name: 'envelope',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst warningCircleIcon = {\n name: 'warning-circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst warningTriangleIcon = {\n name: 'warning-triangle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst infoSolidIcon = {\n name: 'info-solid',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fontGrowIcon = {\n name: 'font-grow',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fontShrinkIcon = {\n name: 'font-shrink',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst textOverflowIcon = {\n name: 'text-overflow',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst textWrapArrowIcon = {\n name: 'text-wrap-arrow',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst textTruncateIcon = {\n name: 'text-truncate',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst textClipIcon = {\n name: 'text-clip',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderColorIcon = {\n name: 'border-color',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderTypeIcon = {\n name: 'border-type',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst thumbDownOutlineIcon = {\n name: 'thumb-down-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst thumbDownIcon = {\n name: 'thumb-down',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst thumbUpOutlineIcon = {\n name: 'thumb-up-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst thumbUpIcon = {\n name: 'thumb-up',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst sparklesIcon = {\n name: 'sparkles',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst undoIcon = {\n name: 'undo',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst redoIcon = {\n name: 'redo',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowRotateCcwIcon = {\n name: 'arrow-rotate-ccw',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowRotateCwIcon = {\n name: 'arrow-rotate-cw',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowsNoRepeatIcon = {\n name: 'arrows-no-repeat',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowRotateCcwSmallIcon = {\n name: 'arrow-rotate-ccw-small',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowRotateCwSmallIcon = {\n name: 'arrow-rotate-cw-small',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clockIcon = {\n name: 'clock',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst calendarIcon = {\n name: 'calendar',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst saveIcon = {\n name: 'save',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst printIcon = {\n name: 'print',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst pencilIcon = {\n name: 'pencil',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst trashIcon = {\n name: 'trash',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paperclipIcon = {\n name: 'paperclip',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paperclipAltIcon = {\n name: 'paperclip-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst linkIcon = {\n name: 'link',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst unlinkIcon = {\n name: 'unlink',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst linkVerticalIcon = {\n name: 'link-vertical',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst unlinkVerticalIcon = {\n name: 'unlink-vertical',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst lockIcon = {\n name: 'lock',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst unlockIcon = {\n name: 'unlock',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cancelIcon = {\n name: 'cancel',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cancelOutlineIcon = {\n name: 'cancel-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cancelCircleIcon = {\n name: 'cancel-circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst checkIcon = {\n name: 'check',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst checkOutlineIcon = {\n name: 'check-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst checkCircleIcon = {\n name: 'check-circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst xIcon = {\n name: 'x',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst xOutlineIcon = {\n name: 'x-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst xCircleIcon = {\n name: 'x-circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst plusIcon = {\n name: 'plus',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst plusOutlineIcon = {\n name: 'plus-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst plusCircleIcon = {\n name: 'plus-circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst minusIcon = {\n name: 'minus',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst minusOutlineIcon = {\n name: 'minus-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst minusCircleIcon = {\n name: 'minus-circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst sortAscIcon = {\n name: 'sort-asc',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst sortDescIcon = {\n name: 'sort-desc',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst sortClearIcon = {\n name: 'sort-clear',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst sortAscSmallIcon = {\n name: 'sort-asc-small',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst sortDescSmallIcon = {\n name: 'sort-desc-small',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filterIcon = {\n name: 'filter',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filterClearIcon = {\n name: 'filter-clear',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filterSmallIcon = {\n name: 'filter-small',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filterSortAscSmallIcon = {\n name: 'filter-sort-asc-small',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filterSortDescSmallIcon = {\n name: 'filter-sort-desc-small',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filterAddExpressionIcon = {\n name: 'filter-add-expression',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filterAddGroupIcon = {\n name: 'filter-add-group',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst loginIcon = {\n name: 'login',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst logoutIcon = {\n name: 'logout',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst downloadIcon = {\n name: 'download',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst uploadIcon = {\n name: 'upload',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst hyperlinkOpenIcon = {\n name: 'hyperlink-open',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst hyperlinkOpenSmIcon = {\n name: 'hyperlink-open-sm',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst launchIcon = {\n name: 'launch',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst windowIcon = {\n name: 'window',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst windowRestoreIcon = {\n name: 'window-restore',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst windowMinimizeIcon = {\n name: 'window-minimize',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst gearIcon = {\n name: 'gear',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst gearsIcon = {\n name: 'gears',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst wrenchIcon = {\n name: 'wrench',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst eyeIcon = {\n name: 'eye',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst searchIcon = {\n name: 'search',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst zoomInIcon = {\n name: 'zoom-in',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst zoomOutIcon = {\n name: 'zoom-out',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowsMoveIcon = {\n name: 'arrows-move',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst calculatorIcon = {\n name: 'calculator',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cartIcon = {\n name: 'cart',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst connectorIcon = {\n name: 'connector',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst plusSmIcon = {\n name: 'plus-sm',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst minusSmIcon = {\n name: 'minus-sm',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst kpiStatusDenyIcon = {\n name: 'kpi-status-deny',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst kpiStatusHoldIcon = {\n name: 'kpi-status-hold',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst kpiStatusOpenIcon = {\n name: 'kpi-status-open',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst equalIcon = {\n name: 'equal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst notEqualIcon = {\n name: 'not-equal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst lessOrEqualIcon = {\n name: 'less-or-equal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst greaterOrEqualIcon = {\n name: 'greater-or-equal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst divideIcon = {\n name: 'divide',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst accessibilityIcon = {\n name: 'accessibility',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst barcodeOutlineIcon = {\n name: 'barcode-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst barcodeIcon = {\n name: 'barcode',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst barcodeScannerIcon = {\n name: 'barcode-scanner',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst qrCodeOutlineIcon = {\n name: 'qr-code-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst qrCodeIcon = {\n name: 'qr-code',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst qrCodeScannerIcon = {\n name: 'qr-code-scanner',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst barcodeQrCodeScannerIcon = {\n name: 'barcode-qr-code-scanner',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst signatureIcon = {\n name: 'signature',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst handIcon = {\n name: 'hand',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst pointerIcon = {\n name: 'pointer',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stickIcon = {\n name: 'stick',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst unstickIcon = {\n name: 'unstick',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst setColumnPositionIcon = {\n name: 'set-column-position',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clockArrowRotateIcon = {\n name: 'clock-arrow-rotate',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst playIcon = {\n name: 'play',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst pauseIcon = {\n name: 'pause',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stopIcon = {\n name: 'stop',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst rewindIcon = {\n name: 'rewind',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst forwardIcon = {\n name: 'forward',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst volumeDownIcon = {\n name: 'volume-down',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst volumeUpIcon = {\n name: 'volume-up',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst volumeMuteIcon = {\n name: 'volume-mute',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst hdIcon = {\n name: 'hd',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst closedCaptionsIcon = {\n name: 'closed-captions',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst playlistIcon = {\n name: 'playlist',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst musicNotesIcon = {\n name: 'music-notes',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst playSmIcon = {\n name: 'play-sm',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst pauseSmIcon = {\n name: 'pause-sm',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stopSmIcon = {\n name: 'stop-sm',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst heartOutlineIcon = {\n name: 'heart-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst heartIcon = {\n name: 'heart',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst starOutlineIcon = {\n name: 'star-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst starIcon = {\n name: 'star',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst checkboxIcon = {\n name: 'checkbox',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst checkboxCheckedIcon = {\n name: 'checkbox-checked',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst checkboxIndeterminateIcon = {\n name: 'checkbox-indeterminate',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst checkboxNullIcon = {\n name: 'checkbox-null',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst circleIcon = {\n name: 'circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst radiobuttonIcon = {\n name: 'radiobutton',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst radiobuttonCheckedIcon = {\n name: 'radiobutton-checked',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bellIcon = {\n name: 'bell',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst infoCircleIcon = {\n name: 'info-circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst questionCircleIcon = {\n name: 'question-circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst exclamationCircleIcon = {\n name: 'exclamation-circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cameraIcon = {\n name: 'camera',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst imageIcon = {\n name: 'image',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst imageExportIcon = {\n name: 'image-export',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst zoomActualSizeIcon = {\n name: 'zoom-actual-size',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst zoomBestFitIcon = {\n name: 'zoom-best-fit',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst imageResizeIcon = {\n name: 'image-resize',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cropIcon = {\n name: 'crop',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst mirrorIcon = {\n name: 'mirror',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst flipHorizontalIcon = {\n name: 'flip-horizontal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst flipVerticalIcon = {\n name: 'flip-vertical',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst rotateIcon = {\n name: 'rotate',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst rotateRightIcon = {\n name: 'rotate-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst rotateLeftIcon = {\n name: 'rotate-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst brushIcon = {\n name: 'brush',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paletteIcon = {\n name: 'palette',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dropletIcon = {\n name: 'droplet',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst shapeLineIcon = {\n name: 'shape-line',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst brightnessContrastIcon = {\n name: 'brightness-contrast',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst slidersIcon = {\n name: 'sliders',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst invertColorsIcon = {\n name: 'invert-colors',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst transparencyIcon = {\n name: 'transparency',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst grayscaleIcon = {\n name: 'grayscale',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst blurIcon = {\n name: 'blur',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst sharpenIcon = {\n name: 'sharpen',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst shapesIcon = {\n name: 'shapes',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst roundCornersIcon = {\n name: 'round-corners',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bringToFrontIcon = {\n name: 'bring-to-front',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bringToBackIcon = {\n name: 'bring-to-back',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bringForwardIcon = {\n name: 'bring-forward',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bringBackwardIcon = {\n name: 'bring-backward',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignSelfStartIcon = {\n name: 'align-self-start',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignSelfCenterIcon = {\n name: 'align-self-center',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignSelfEndIcon = {\n name: 'align-self-end',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignSelfStartAltIcon = {\n name: 'align-self-start-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignSelfCenterAltIcon = {\n name: 'align-self-center-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignSelfEndAltIcon = {\n name: 'align-self-end-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst thumbnailsUpIcon = {\n name: 'thumbnails-up',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst thumbnailsRightIcon = {\n name: 'thumbnails-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst thumbnailsDownIcon = {\n name: 'thumbnails-down',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst thumbnailsLeftIcon = {\n name: 'thumbnails-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fullscreenIcon = {\n name: 'fullscreen',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fullscreenExitIcon = {\n name: 'fullscreen-exit',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dropletSlashIcon = {\n name: 'droplet-slash',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst photosIcon = {\n name: 'photos',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignToGridIcon = {\n name: 'align-to-grid',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst sizeToGridIcon = {\n name: 'size-to-grid',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst makeSameSizeIcon = {\n name: 'make-same-size',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst makeSameWidthIcon = {\n name: 'make-same-width',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst makeSameHeightIcon = {\n name: 'make-same-height',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst makeHorizontalSpacingEqualIcon = {\n name: 'make-horizontal-spacing-equal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst increaseHorizontalSpacingIcon = {\n name: 'increase-horizontal-spacing',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst decreaseHorizontalSpacingIcon = {\n name: 'decrease-horizontal-spacing',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst removeHorizontalSpacingIcon = {\n name: 'remove-horizontal-spacing',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst makeVerticalSpacingEqualIcon = {\n name: 'make-vertical-spacing-equal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst increaseVerticalSpacingIcon = {\n name: 'increase-vertical-spacing',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst decreaseVerticalSpacingIcon = {\n name: 'decrease-vertical-spacing',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst removeVerticalSpacingIcon = {\n name: 'remove-vertical-spacing',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst eyedropperIcon = {\n name: 'eyedropper',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst snapGridIcon = {\n name: 'snap-grid',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst snapToGridlinesIcon = {\n name: 'snap-to-gridlines',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst snapToSnaplinesIcon = {\n name: 'snap-to-snaplines',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dimensionsIcon = {\n name: 'dimensions',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignSelfStretchIcon = {\n name: 'align-self-stretch',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignSelfStretchAltIcon = {\n name: 'align-self-stretch-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsStartIcon = {\n name: 'align-items-start',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsCenterIcon = {\n name: 'align-items-center',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsEndIcon = {\n name: 'align-items-end',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsStretchIcon = {\n name: 'align-items-stretch',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsBaselineIcon = {\n name: 'align-items-baseline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsStartAltIcon = {\n name: 'align-items-start-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsCenterAltIcon = {\n name: 'align-items-center-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsEndAltIcon = {\n name: 'align-items-end-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsStretchAltIcon = {\n name: 'align-items-stretch-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsBaselineAltIcon = {\n name: 'align-items-baseline-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentStartIcon = {\n name: 'justify-content-start',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentCenterIcon = {\n name: 'justify-content-center',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentEndIcon = {\n name: 'justify-content-end',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentBetweenIcon = {\n name: 'justify-content-between',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentAroundIcon = {\n name: 'justify-content-around',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentStartAltIcon = {\n name: 'justify-content-start-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentCenterAltIcon = {\n name: 'justify-content-center-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentEndAltIcon = {\n name: 'justify-content-end-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentBetweenAltIcon = {\n name: 'justify-content-between-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentAroundAltIcon = {\n name: 'justify-content-around-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileWrenchIcon = {\n name: 'file-wrench',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst boldIcon = {\n name: 'bold',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst italicIcon = {\n name: 'italic',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst underlineIcon = {\n name: 'underline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fontFamilyIcon = {\n name: 'font-family',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst foregroundColorIcon = {\n name: 'foreground-color',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst convertLowercaseIcon = {\n name: 'convert-lowercase',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst convertUppercaseIcon = {\n name: 'convert-uppercase',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst strikethroughIcon = {\n name: 'strikethrough',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst subscriptIcon = {\n name: 'subscript',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst supscriptIcon = {\n name: 'supscript',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst divIcon = {\n name: 'div',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst allIcon = {\n name: 'all',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst h1Icon = {\n name: 'h1',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst h2Icon = {\n name: 'h2',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst h3Icon = {\n name: 'h3',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst h4Icon = {\n name: 'h4',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst h5Icon = {\n name: 'h5',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst h6Icon = {\n name: 'h6',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listOrderedIcon = {\n name: 'list-ordered',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listUnorderedIcon = {\n name: 'list-unordered',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst indentIcon = {\n name: 'indent',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst outdentIcon = {\n name: 'outdent',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst insertTopIcon = {\n name: 'insert-top',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst insertMiddleIcon = {\n name: 'insert-middle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst insertBottomIcon = {\n name: 'insert-bottom',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignTopIcon = {\n name: 'align-top',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignMiddleIcon = {\n name: 'align-middle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignBottomIcon = {\n name: 'align-bottom',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignLeftIcon = {\n name: 'align-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignCenterIcon = {\n name: 'align-center',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignRightIcon = {\n name: 'align-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignJustifyIcon = {\n name: 'align-justify',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignRemoveIcon = {\n name: 'align-remove',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst textWrapIcon = {\n name: 'text-wrap',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst horizontalRuleIcon = {\n name: 'horizontal-rule',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignTopLeftIcon = {\n name: 'table-align-top-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignTopCenterIcon = {\n name: 'table-align-top-center',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignTopRightIcon = {\n name: 'table-align-top-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignMiddleLeftIcon = {\n name: 'table-align-middle-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignMiddleCenterIcon = {\n name: 'table-align-middle-center',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignMiddleRightIcon = {\n name: 'table-align-middle-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignBottomLeftIcon = {\n name: 'table-align-bottom-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignBottomCenterIcon = {\n name: 'table-align-bottom-center',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignBottomRightIcon = {\n name: 'table-align-bottom-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignRemoveIcon = {\n name: 'table-align-remove',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bordersAllIcon = {\n name: 'borders-all',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bordersOutsideIcon = {\n name: 'borders-outside',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bordersInsideIcon = {\n name: 'borders-inside',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bordersInsideHorizontalIcon = {\n name: 'borders-inside-horizontal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bordersInsideVerticalIcon = {\n name: 'borders-inside-vertical',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderTopIcon = {\n name: 'border-top',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderBottomIcon = {\n name: 'border-bottom',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderLeftIcon = {\n name: 'border-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderRightIcon = {\n name: 'border-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bordersNoneIcon = {\n name: 'borders-none',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bordersShowHideIcon = {\n name: 'borders-show-hide',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst formIcon = {\n name: 'form',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst formElementIcon = {\n name: 'form-element',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst codeSnippetIcon = {\n name: 'code-snippet',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst selectAllIcon = {\n name: 'select-all',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst buttonIcon = {\n name: 'button',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst selectBoxIcon = {\n name: 'select-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst calendarDateIcon = {\n name: 'calendar-date',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst groupBoxIcon = {\n name: 'group-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst textareaIcon = {\n name: 'textarea',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst textboxIcon = {\n name: 'textbox',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst textboxHiddenIcon = {\n name: 'textbox-hidden',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst passwordIcon = {\n name: 'password',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paragraphAddIcon = {\n name: 'paragraph-add',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst editToolsIcon = {\n name: 'edit-tools',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst templateManagerIcon = {\n name: 'template-manager',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst changeManuallyIcon = {\n name: 'change-manually',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst trackChangesIcon = {\n name: 'track-changes',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst trackChangesEnableIcon = {\n name: 'track-changes-enable',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst trackChangesAcceptIcon = {\n name: 'track-changes-accept',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst trackChangesAcceptAllIcon = {\n name: 'track-changes-accept-all',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst trackChangesRejectIcon = {\n name: 'track-changes-reject',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst trackChangesRejectAllIcon = {\n name: 'track-changes-reject-all',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst documentManagerIcon = {\n name: 'document-manager',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst customIconIcon = {\n name: 'custom-icon',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bookIcon = {\n name: 'book',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst imageAddIcon = {\n name: 'image-add',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst imageEditIcon = {\n name: 'image-edit',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst imageMapEditorIcon = {\n name: 'image-map-editor',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst commentIcon = {\n name: 'comment',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst commentRemoveIcon = {\n name: 'comment-remove',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst commentsRemoveIcon = {\n name: 'comments-remove',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst silverlightIcon = {\n name: 'silverlight',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst mediaManagerIcon = {\n name: 'media-manager',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst videoExternalIcon = {\n name: 'video-external',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst flashManagerIcon = {\n name: 'flash-manager',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst binocularsIcon = {\n name: 'binoculars',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst copyIcon = {\n name: 'copy',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cutIcon = {\n name: 'cut',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clipboardIcon = {\n name: 'clipboard',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clipboardCodeIcon = {\n name: 'clipboard-code',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clipboardWordIcon = {\n name: 'clipboard-word',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clipboardWordAltIcon = {\n name: 'clipboard-word-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clipboardHtmlIcon = {\n name: 'clipboard-html',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clipboardMarkdownIcon = {\n name: 'clipboard-markdown',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clipboardTextIcon = {\n name: 'clipboard-text',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst applyFormatIcon = {\n name: 'apply-format',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clearCssIcon = {\n name: 'clear-css',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst copyFormatIcon = {\n name: 'copy-format',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stripAllFormattingIcon = {\n name: 'strip-all-formatting',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stripCssFormatIcon = {\n name: 'strip-css-format',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stripFontElementsIcon = {\n name: 'strip-font-elements',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stripSpanElementsIcon = {\n name: 'strip-span-elements',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stripWordFormattingIcon = {\n name: 'strip-word-formatting',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst formatCodeBlockIcon = {\n name: 'format-code-block',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst buildingBlocksIcon = {\n name: 'building-blocks',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst puzzlePieceIcon = {\n name: 'puzzle-piece',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst linkAddIcon = {\n name: 'link-add',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst globeLinkIcon = {\n name: 'globe-link',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst globeUnlinkIcon = {\n name: 'globe-unlink',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst envelopLinkIcon = {\n name: 'envelop-link',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst anchorIcon = {\n name: 'anchor',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAddIcon = {\n name: 'table-add',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableIcon = {\n name: 'table',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tablePropertiesIcon = {\n name: 'table-properties',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableCellIcon = {\n name: 'table-cell',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableCellPropertiesIcon = {\n name: 'table-cell-properties',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableColumnInsertLeftIcon = {\n name: 'table-column-insert-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableColumnInsertRightIcon = {\n name: 'table-column-insert-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableRowInsertAboveIcon = {\n name: 'table-row-insert-above',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableRowInsertBelowIcon = {\n name: 'table-row-insert-below',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableColumnDeleteIcon = {\n name: 'table-column-delete',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableRowDeleteIcon = {\n name: 'table-row-delete',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableCellDeleteIcon = {\n name: 'table-cell-delete',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableDeleteIcon = {\n name: 'table-delete',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cellsMergeIcon = {\n name: 'cells-merge',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cellsMergeHorizontallyIcon = {\n name: 'cells-merge-horizontally',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cellsMergeVerticallyIcon = {\n name: 'cells-merge-vertically',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cellSplitHorizontallyIcon = {\n name: 'cell-split-horizontally',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cellSplitVerticallyIcon = {\n name: 'cell-split-vertically',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableUnmergeIcon = {\n name: 'table-unmerge',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paneFreezeIcon = {\n name: 'pane-freeze',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst rowFreezeIcon = {\n name: 'row-freeze',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst columnFreezeIcon = {\n name: 'column-freeze',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst toolbarFloatIcon = {\n name: 'toolbar-float',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst spellCheckerIcon = {\n name: 'spell-checker',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst validationXhtmlIcon = {\n name: 'validation-xhtml',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst validationDataIcon = {\n name: 'validation-data',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst toggleFullScreenModeIcon = {\n name: 'toggle-full-screen-mode',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst formulaFxIcon = {\n name: 'formula-fx',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst sumIcon = {\n name: 'sum',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst symbolIcon = {\n name: 'symbol',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dollarIcon = {\n name: 'dollar',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst percentIcon = {\n name: 'percent',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst customFormatIcon = {\n name: 'custom-format',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst decimalIncreaseIcon = {\n name: 'decimal-increase',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst decimalDecreaseIcon = {\n name: 'decimal-decrease',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fontSizeIcon = {\n name: 'font-size',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst imageAbsolutePositionIcon = {\n name: 'image-absolute-position',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableWizardIcon = {\n name: 'table-wizard',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst crosstabIcon = {\n name: 'crosstab',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst crosstabWizardIcon = {\n name: 'crosstab-wizard',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableBodyIcon = {\n name: 'table-body',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableColumnGroupsIcon = {\n name: 'table-column-groups',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableCornerIcon = {\n name: 'table-corner',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableRowGroupsIcon = {\n name: 'table-row-groups',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst globeOutlineIcon = {\n name: 'globe-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst globeIcon = {\n name: 'globe',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst mapMarkerIcon = {\n name: 'map-marker',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst mapMarkerTargetIcon = {\n name: 'map-marker-target',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst pinIcon = {\n name: 'pin',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst unpinIcon = {\n name: 'unpin',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst shareIcon = {\n name: 'share',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst userIcon = {\n name: 'user',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst inboxIcon = {\n name: 'inbox',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bloggerIcon = {\n name: 'blogger',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bloggerBoxIcon = {\n name: 'blogger-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst deliciousIcon = {\n name: 'delicious',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst deliciousBoxIcon = {\n name: 'delicious-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst diggIcon = {\n name: 'digg',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst diggBoxIcon = {\n name: 'digg-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst envelopIcon = {\n name: 'envelop',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst envelopBoxIcon = {\n name: 'envelop-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst facebookIcon = {\n name: 'facebook',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst facebookBoxIcon = {\n name: 'facebook-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst googleIcon = {\n name: 'google',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst googleBoxIcon = {\n name: 'google-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst googlePlusIcon = {\n name: 'google-plus',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst googlePlusBoxIcon = {\n name: 'google-plus-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst linkedinIcon = {\n name: 'linkedin',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst linkedinBoxIcon = {\n name: 'linkedin-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst myspaceIcon = {\n name: 'myspace',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst myspaceBoxIcon = {\n name: 'myspace-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst pinterestIcon = {\n name: 'pinterest',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst pinterestBoxIcon = {\n name: 'pinterest-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst redditIcon = {\n name: 'reddit',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst redditBoxIcon = {\n name: 'reddit-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stumbleUponIcon = {\n name: 'stumble-upon',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stumbleUponBoxIcon = {\n name: 'stumble-upon-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tellAFriendIcon = {\n name: 'tell-a-friend',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tellAFriendBoxIcon = {\n name: 'tell-a-friend-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tumblrIcon = {\n name: 'tumblr',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tumblrBoxIcon = {\n name: 'tumblr-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst twitterIcon = {\n name: 'twitter',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst twitterBoxIcon = {\n name: 'twitter-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst yammerIcon = {\n name: 'yammer',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst yammerBoxIcon = {\n name: 'yammer-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst behanceIcon = {\n name: 'behance',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst behanceBoxIcon = {\n name: 'behance-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dribbbleIcon = {\n name: 'dribbble',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dribbbleBoxIcon = {\n name: 'dribbble-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst rssIcon = {\n name: 'rss',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst rssBoxIcon = {\n name: 'rss-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst vimeoIcon = {\n name: 'vimeo',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst vimeoBoxIcon = {\n name: 'vimeo-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst youtubeIcon = {\n name: 'youtube',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst youtubeBoxIcon = {\n name: 'youtube-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst folderIcon = {\n name: 'folder',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst folderOpenIcon = {\n name: 'folder-open',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst folderAddIcon = {\n name: 'folder-add',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst folderUpIcon = {\n name: 'folder-up',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst folderMoreIcon = {\n name: 'folder-more',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst aggregateFieldsIcon = {\n name: 'aggregate-fields',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileIcon = {\n name: 'file',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileAddIcon = {\n name: 'file-add',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileTxtIcon = {\n name: 'file-txt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileCsvIcon = {\n name: 'file-csv',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileExcelIcon = {\n name: 'file-excel',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileWordIcon = {\n name: 'file-word',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileMdbIcon = {\n name: 'file-mdb',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filePptIcon = {\n name: 'file-ppt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filePdfIcon = {\n name: 'file-pdf',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filePsdIcon = {\n name: 'file-psd',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileFlashIcon = {\n name: 'file-flash',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileConfigIcon = {\n name: 'file-config',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileAscxIcon = {\n name: 'file-ascx',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileBacIcon = {\n name: 'file-bac',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileZipIcon = {\n name: 'file-zip',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filmIcon = {\n name: 'film',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst css3Icon = {\n name: 'css3',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst html5Icon = {\n name: 'html5',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst codeIcon = {\n name: 'code',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cssIcon = {\n name: 'css',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst jsIcon = {\n name: 'js',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst exeIcon = {\n name: 'exe',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst csprojIcon = {\n name: 'csproj',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst vbprojIcon = {\n name: 'vbproj',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst csIcon = {\n name: 'cs',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst vbIcon = {\n name: 'vb',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst slnIcon = {\n name: 'sln',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cloudIcon = {\n name: 'cloud',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileHorizontalIcon = {\n name: 'file-horizontal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst subreportIcon = {\n name: 'subreport',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dataIcon = {\n name: 'data',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileHeaderIcon = {\n name: 'file-header',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileFooterIcon = {\n name: 'file-footer',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst groupHeaderSectionIcon = {\n name: 'group-header-section',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst groupFooterSectionIcon = {\n name: 'group-footer-section',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst pageHeaderSectionIcon = {\n name: 'page-header-section',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst pageFooterSectionIcon = {\n name: 'page-footer-section',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst detailSectionIcon = {\n name: 'detail-section',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tocSectionIcon = {\n name: 'toc-section',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst groupSectionIcon = {\n name: 'group-section',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst parametersIcon = {\n name: 'parameters',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dataCsvIcon = {\n name: 'data-csv',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dataJsonIcon = {\n name: 'data-json',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dataSqlIcon = {\n name: 'data-sql',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dataWebIcon = {\n name: 'data-web',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst groupCollectionIcon = {\n name: 'group-collection',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst parameterBooleanIcon = {\n name: 'parameter-boolean',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst parameterDateTimeIcon = {\n name: 'parameter-date-time',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst parameterFloatIcon = {\n name: 'parameter-float',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst parameterIntegerIcon = {\n name: 'parameter-integer',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst parameterStringIcon = {\n name: 'parameter-string',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tocSectionLevelIcon = {\n name: 'toc-section-level',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst inheritedIcon = {\n name: 'inherited',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileVideoIcon = {\n name: 'file-video',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileAudioIcon = {\n name: 'file-audio',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileImageIcon = {\n name: 'file-image',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filePresentationIcon = {\n name: 'file-presentation',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileDataIcon = {\n name: 'file-data',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileDiscImageIcon = {\n name: 'file-disc-image',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileProgrammingIcon = {\n name: 'file-programming',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst parametersByteArrayIcon = {\n name: 'parameters-byte-array',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst parametersUnknownIcon = {\n name: 'parameters-unknown',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileErrorIcon = {\n name: 'file-error',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filesErrorIcon = {\n name: 'files-error',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dataRestIcon = {\n name: 'data-rest',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileTypescriptIcon = {\n name: 'file-typescript',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tablePositionStartIcon = {\n name: 'table-position-start',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tablePositionCenterIcon = {\n name: 'table-position-center',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tablePositionEndIcon = {\n name: 'table-position-end',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listRomanUpperIcon = {\n name: 'list-roman-upper',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listRomanLowerIcon = {\n name: 'list-roman-lower',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst importIcon = {\n name: 'import',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst exportIcon = {\n name: 'export',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst graphIcon = {\n name: 'graph',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartColumnClusteredIcon = {\n name: 'chart-column-clustered',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartColumnStackedIcon = {\n name: 'chart-column-stacked',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartColumnStacked100Icon = {\n name: 'chart-column-stacked100',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartColumnRangeIcon = {\n name: 'chart-column-range',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartBarClusteredIcon = {\n name: 'chart-bar-clustered',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartBarStackedIcon = {\n name: 'chart-bar-stacked',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartBarStacked100Icon = {\n name: 'chart-bar-stacked100',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartBarRangeIcon = {\n name: 'chart-bar-range',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartAreaClusteredIcon = {\n name: 'chart-area-clustered',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartAreaStackedIcon = {\n name: 'chart-area-stacked',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartAreaStacked100Icon = {\n name: 'chart-area-stacked100',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartAreaRangeIcon = {\n name: 'chart-area-range',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartLineIcon = {\n name: 'chart-line',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartLineStackedIcon = {\n name: 'chart-line-stacked',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartLineStacked100Icon = {\n name: 'chart-line-stacked100',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartLineMarkersIcon = {\n name: 'chart-line-markers',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartLineStackedMarkersIcon = {\n name: 'chart-line-stacked-markers',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartLineStacked100MarkersIcon = {\n name: 'chart-line-stacked100-markers',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartPieIcon = {\n name: 'chart-pie',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartDoughnutIcon = {\n name: 'chart-doughnut',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartScatterIcon = {\n name: 'chart-scatter',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartScatterSmoothLinesMarkersIcon = {\n name: 'chart-scatter-smooth-lines-markers',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartScatterSmoothLinesIcon = {\n name: 'chart-scatter-smooth-lines',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartScatterStraightLinesMarkersIcon = {\n name: 'chart-scatter-straight-lines-markers',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartScatterStraightLinesIcon = {\n name: 'chart-scatter-straight-lines',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartBubbleIcon = {\n name: 'chart-bubble',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartCandlestickIcon = {\n name: 'chart-candlestick',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartOhlcIcon = {\n name: 'chart-ohlc',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartRadarIcon = {\n name: 'chart-radar',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartRadarMarkersIcon = {\n name: 'chart-radar-markers',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartRadarFilledIcon = {\n name: 'chart-radar-filled',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartRoseIcon = {\n name: 'chart-rose',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartChoroplethIcon = {\n name: 'chart-choropleth',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nexport { accessibilityIcon, aggregateFieldsIcon, alignBottomIcon, alignCenterIcon, alignItemsBaselineAltIcon, alignItemsBaselineIcon, alignItemsCenterAltIcon, alignItemsCenterIcon, alignItemsEndAltIcon, alignItemsEndIcon, alignItemsStartAltIcon, alignItemsStartIcon, alignItemsStretchAltIcon, alignItemsStretchIcon, alignJustifyIcon, alignLeftIcon, alignMiddleIcon, alignRemoveIcon, alignRightIcon, alignSelfCenterAltIcon, alignSelfCenterIcon, alignSelfEndAltIcon, alignSelfEndIcon, alignSelfStartAltIcon, alignSelfStartIcon, alignSelfStretchAltIcon, alignSelfStretchIcon, alignToGridIcon, alignTopIcon, allIcon, anchorIcon, applyFormatIcon, arrowDownIcon, arrowLeftIcon, arrowOverflowDownIcon, arrowRightIcon, arrowRotateCcwIcon, arrowRotateCcwSmallIcon, arrowRotateCwIcon, arrowRotateCwSmallIcon, arrowUpIcon, arrowsAxesIcon, arrowsLeftRightIcon, arrowsMoveIcon, arrowsNoChangeIcon, arrowsNoRepeatIcon, arrowsSwapIcon, arrowsTopBottomIcon, barcodeIcon, barcodeOutlineIcon, barcodeQrCodeScannerIcon, barcodeScannerIcon, behanceBoxIcon, behanceIcon, bellIcon, binocularsIcon, bloggerBoxIcon, bloggerIcon, blurIcon, boldIcon, bookIcon, borderBottomIcon, borderColorIcon, borderLeftIcon, borderRadiusBottomLeftIcon, borderRadiusBottomRightIcon, borderRadiusIcon, borderRadiusTopLeftIcon, borderRadiusTopRightIcon, borderRightIcon, borderStyleBottomIcon, borderStyleIcon, borderStyleLeftIcon, borderStyleRightIcon, borderStyleTopIcon, borderTopIcon, borderTypeIcon, bordersAllIcon, bordersInsideHorizontalIcon, bordersInsideIcon, bordersInsideVerticalIcon, bordersNoneIcon, bordersOutsideIcon, bordersShowHideIcon, boxSizingIcon, brightnessContrastIcon, bringBackwardIcon, bringForwardIcon, bringToBackIcon, bringToFrontIcon, brushIcon, buildingBlocksIcon, buttonIcon, calculatorIcon, calendarDateIcon, calendarIcon, cameraIcon, cancelCircleIcon, cancelIcon, cancelOutlineIcon, caretAltDownIcon, caretAltExpandIcon, caretAltLeftIcon, caretAltRightIcon, caretAltToBottomIcon, caretAltToLeftIcon, caretAltToRightIcon, caretAltToTopIcon, caretAltUpIcon, caretBlIcon, caretBrIcon, caretDoubleAltDownIcon, caretDoubleAltLeftIcon, caretDoubleAltRightIcon, caretDoubleAltUpIcon, caretTlIcon, caretTrIcon, cartIcon, categorizeIcon, cellSplitHorizontallyIcon, cellSplitVerticallyIcon, cellsMergeHorizontallyIcon, cellsMergeIcon, cellsMergeVerticallyIcon, changeManuallyIcon, chartAreaClusteredIcon, chartAreaRangeIcon, chartAreaStacked100Icon, chartAreaStackedIcon, chartBarClusteredIcon, chartBarRangeIcon, chartBarStacked100Icon, chartBarStackedIcon, chartBubbleIcon, chartCandlestickIcon, chartChoroplethIcon, chartColumnClusteredIcon, chartColumnRangeIcon, chartColumnStacked100Icon, chartColumnStackedIcon, chartDoughnutIcon, chartLineIcon, chartLineMarkersIcon, chartLineStacked100Icon, chartLineStacked100MarkersIcon, chartLineStackedIcon, chartLineStackedMarkersIcon, chartOhlcIcon, chartPieIcon, chartRadarFilledIcon, chartRadarIcon, chartRadarMarkersIcon, chartRoseIcon, chartScatterIcon, chartScatterSmoothLinesIcon, chartScatterSmoothLinesMarkersIcon, chartScatterStraightLinesIcon, chartScatterStraightLinesMarkersIcon, checkCircleIcon, checkIcon, checkOutlineIcon, checkboxCheckedIcon, checkboxIcon, checkboxIndeterminateIcon, checkboxNullIcon, chevronDoubleDownIcon, chevronDoubleLeftIcon, chevronDoubleRightIcon, chevronDoubleUpIcon, chevronDownIcon, chevronLeftIcon, chevronRightIcon, chevronUpIcon, circleIcon, clearCssIcon, clipboardCodeIcon, clipboardHtmlIcon, clipboardIcon, clipboardMarkdownIcon, clipboardTextIcon, clipboardWordAltIcon, clipboardWordIcon, clockArrowRotateIcon, clockIcon, closedCaptionsIcon, cloudIcon, codeIcon, codeSnippetIcon, colResizeIcon, columnFreezeIcon, columnsIcon, commentIcon, commentRemoveIcon, commentsRemoveIcon, connectorIcon, convertLowercaseIcon, convertUppercaseIcon, copyFormatIcon, copyIcon, cropIcon, crosstabIcon, crosstabWizardIcon, csIcon, csprojIcon, css3Icon, cssIcon, customFormatIcon, customIconIcon, cutIcon, dataCsvIcon, dataIcon, dataJsonIcon, dataOdsIcon, dataRestIcon, dataSdsIcon, dataSqlIcon, dataWebIcon, decimalDecreaseIcon, decimalIncreaseIcon, decreaseHorizontalSpacingIcon, decreaseVerticalSpacingIcon, deliciousBoxIcon, deliciousIcon, detailSectionIcon, diggBoxIcon, diggIcon, dimensionsIcon, displayBlockIcon, displayFlexIcon, displayInlineBlockIcon, displayInlineFlexIcon, divIcon, divideIcon, documentManagerIcon, dollarIcon, downloadIcon, downloadLightIcon, dragAndDropIcon, dribbbleBoxIcon, dribbbleIcon, dropletIcon, dropletSlashIcon, dropletSliderIcon, editToolsIcon, envelopBoxIcon, envelopIcon, envelopLinkIcon, envelopeBoxIcon, envelopeIcon, envelopeLinkIcon, equalIcon, exclamationCircleIcon, exeIcon, exportIcon, eyeIcon, eyeSlashIcon, eyedropperIcon, facebookBoxIcon, facebookIcon, fileAddIcon, fileAscxIcon, fileAudioIcon, fileBacIcon, fileConfigIcon, fileCsvIcon, fileDataIcon, fileDiscImageIcon, fileErrorIcon, fileExcelIcon, fileFlashIcon, fileFooterIcon, fileHeaderIcon, fileHorizontalIcon, fileIcon, fileImageIcon, fileMdbIcon, filePdfIcon, filePptIcon, filePresentationIcon, fileProgrammingIcon, filePsdIcon, fileReportIcon, fileTxtIcon, fileTypescriptIcon, fileVideoIcon, fileWordIcon, fileWrenchIcon, fileZipIcon, filesErrorIcon, filmIcon, filterAddExpressionIcon, filterAddGroupIcon, filterClearIcon, filterIcon, filterSmallIcon, filterSortAscSmallIcon, filterSortDescSmallIcon, flashManagerIcon, flipHorizontalIcon, flipVerticalIcon, folderAddIcon, folderIcon, folderMoreIcon, folderOpenIcon, folderUpIcon, fontFamilyIcon, fontGrowIcon, fontShrinkIcon, fontSizeIcon, foregroundColorIcon, formElementIcon, formIcon, formatCodeBlockIcon, formulaFxIcon, forwardIcon, fullscreenExitIcon, fullscreenIcon, gapColumnIcon, gapRowIcon, gaugeLinearIcon, gaugeRadialIcon, gearIcon, gearsIcon, globeIcon, globeLinkIcon, globeOutlineIcon, globeUnlinkIcon, googleBoxIcon, googleIcon, googlePlusBoxIcon, googlePlusIcon, graphIcon, grayscaleIcon, greaterOrEqualIcon, gridIcon, gridLayoutIcon, groupBoxIcon, groupCollectionIcon, groupFooterSectionIcon, groupHeaderSectionIcon, groupIcon, groupSectionIcon, h1Icon, h2Icon, h3Icon, h4Icon, h5Icon, h6Icon, handIcon, handleDragIcon, handleResizeAltIcon, handleResizeIcon, hdIcon, heartIcon, heartOutlineIcon, homeIcon, horizontalRuleIcon, html5Icon, hyperlinkOpenIcon, hyperlinkOpenSmIcon, imageAbsolutePositionIcon, imageAddIcon, imageEditIcon, imageExportIcon, imageIcon, imageMapEditorIcon, imageResizeIcon, imagesIcon, importIcon, inboxIcon, increaseHorizontalSpacingIcon, increaseVerticalSpacingIcon, indentIcon, infoCircleIcon, infoSolidIcon, inheritedIcon, insertBottomIcon, insertMiddleIcon, insertTopIcon, invertColorsIcon, italicIcon, jsIcon, justifyContentAroundAltIcon, justifyContentAroundIcon, justifyContentBetweenAltIcon, justifyContentBetweenIcon, justifyContentCenterAltIcon, justifyContentCenterIcon, justifyContentEndAltIcon, justifyContentEndIcon, justifyContentStartAltIcon, justifyContentStartIcon, kpiStatusDenyIcon, kpiStatusHoldIcon, kpiStatusOpenIcon, launchIcon, layout1By4Icon, layout2By2Icon, layoutIcon, layoutSideBySideIcon, layoutStackedIcon, lessOrEqualIcon, letterSpaceIcon, levelDownIcon, levelToTopIcon, levelUpIcon, lineHeightIcon, linkAddIcon, linkIcon, linkVerticalIcon, linkedinBoxIcon, linkedinIcon, listLatinBigIcon, listLatinSmallIcon, listOrderedIcon, listRomanBigIcon, listRomanLowerIcon, listRomanSmallIcon, listRomanUpperIcon, listUnorderedIcon, listUnorderedOutlineIcon, listUnorderedSquareIcon, lockIcon, loginIcon, logoutIcon, makeHorizontalSpacingEqualIcon, makeSameHeightIcon, makeSameSizeIcon, makeSameWidthIcon, makeVerticalSpacingEqualIcon, mapMarkerIcon, mapMarkerTargetIcon, maxHeightIcon, maxWidthIcon, mediaManagerIcon, menuIcon, minHeightIcon, minWidthIcon, minusCircleIcon, minusIcon, minusOutlineIcon, minusSmIcon, mirrorIcon, moreHorizontalIcon, moreVerticalIcon, musicNotesIcon, myspaceBoxIcon, myspaceIcon, nonRecurrenceIcon, notEqualIcon, outdentIcon, outlineOffsetIcon, outlineWidthIcon, overlapIcon, paddingBottomIcon, paddingIcon, paddingLeftIcon, paddingRightIcon, paddingTopIcon, pageFooterSectionIcon, pageHeaderSectionIcon, paletteIcon, paneFreezeIcon, paperPlaneIcon, paperclipAltIcon, paperclipIcon, paragraphAddIcon, parameterBooleanIcon, parameterDateTimeIcon, parameterFloatIcon, parameterIntegerIcon, parameterStringIcon, parametersByteArrayIcon, parametersIcon, parametersUnknownIcon, passwordIcon, pauseIcon, pauseSmIcon, pencilIcon, percentIcon, photosIcon, pinIcon, pinterestBoxIcon, pinterestIcon, playIcon, playSmIcon, playlistIcon, plusCircleIcon, plusIcon, plusOutlineIcon, plusSmIcon, pointerIcon, positionBottomIcon, positionLeftIcon, positionRightIcon, positionTopIcon, printIcon, puzzlePieceIcon, qrCodeIcon, qrCodeOutlineIcon, qrCodeScannerIcon, questionCircleIcon, radiobuttonCheckedIcon, radiobuttonIcon, redditBoxIcon, redditIcon, redoIcon, regularExpressionIcon, removeHorizontalSpacingIcon, removeVerticalSpacingIcon, reorderIcon, replaceAllIcon, replaceSingleIcon, reportElementIcon, rewindIcon, rightDoubleQuotesIcon, rotateIcon, rotateLeftIcon, rotateRightIcon, roundCornersIcon, rowFreezeIcon, rowsIcon, rssBoxIcon, rssIcon, saveIcon, searchIcon, selectAllIcon, selectBoxIcon, setColumnPositionIcon, shapeLineIcon, shapesIcon, shareIcon, sharpenIcon, signatureIcon, silverlightIcon, sizeToGridIcon, slidersIcon, slnIcon, snapGridIcon, snapToGridlinesIcon, snapToSnaplinesIcon, sortAscIcon, sortAscSmallIcon, sortClearIcon, sortDescIcon, sortDescSmallIcon, sparklesIcon, spellCheckerIcon, starIcon, starOutlineIcon, stickIcon, stopIcon, stopSmIcon, strikethroughIcon, stripAllFormattingIcon, stripCssFormatIcon, stripFontElementsIcon, stripSpanElementsIcon, stripWordFormattingIcon, stumbleUponBoxIcon, stumbleUponIcon, subreportIcon, subscriptIcon, sumIcon, supscriptIcon, symbolIcon, tableAddIcon, tableAlignBottomCenterIcon, tableAlignBottomLeftIcon, tableAlignBottomRightIcon, tableAlignMiddleCenterIcon, tableAlignMiddleLeftIcon, tableAlignMiddleRightIcon, tableAlignRemoveIcon, tableAlignTopCenterIcon, tableAlignTopLeftIcon, tableAlignTopRightIcon, tableBodyIcon, tableCellDeleteIcon, tableCellIcon, tableCellPropertiesIcon, tableColumnDeleteIcon, tableColumnGroupsIcon, tableColumnInsertLeftIcon, tableColumnInsertRightIcon, tableCornerIcon, tableDeleteIcon, tableIcon, tablePositionCenterIcon, tablePositionEndIcon, tablePositionStartIcon, tablePropertiesIcon, tableRowDeleteIcon, tableRowGroupsIcon, tableRowInsertAboveIcon, tableRowInsertBelowIcon, tableUnmergeIcon, tableWizardIcon, tellAFriendBoxIcon, tellAFriendIcon, templateManagerIcon, textClipIcon, textOverflowIcon, textTruncateIcon, textWrapArrowIcon, textWrapIcon, textareaIcon, textboxHiddenIcon, textboxIcon, thumbDownIcon, thumbDownOutlineIcon, thumbUpIcon, thumbUpOutlineIcon, thumbnailsDownIcon, thumbnailsLeftIcon, thumbnailsRightIcon, thumbnailsUpIcon, tocSectionIcon, tocSectionLevelIcon, toggleFullScreenModeIcon, toolbarFloatIcon, trackChangesAcceptAllIcon, trackChangesAcceptIcon, trackChangesEnableIcon, trackChangesIcon, trackChangesRejectAllIcon, trackChangesRejectIcon, transparencyIcon, trashIcon, tumblrBoxIcon, tumblrIcon, twitterBoxIcon, twitterIcon, underlineIcon, undoIcon, ungroupIcon, unlinkIcon, unlinkVerticalIcon, unlockIcon, unpinIcon, unstickIcon, uploadIcon, userIcon, validationDataIcon, validationXhtmlIcon, vbIcon, vbprojIcon, videoExternalIcon, vimeoBoxIcon, vimeoIcon, volumeDownIcon, volumeMuteIcon, volumeUpIcon, warningCircleIcon, warningTriangleIcon, wholeWordIcon, windowIcon, windowMinimizeIcon, windowRestoreIcon, wrenchIcon, xCircleIcon, xIcon, xOutlineIcon, yammerBoxIcon, yammerIcon, youtubeBoxIcon, youtubeIcon, zoomActualSizeIcon, zoomBestFitIcon, zoomInIcon, zoomOutIcon };\n","var _Draggable;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport KendoDraggable from '@telerik/kendo-draggable';\nimport { getDefaultSlots } from './defaultSlots';\n/**\n * Represents the default `Draggable` component.\n */\n\nvar Draggable = (_Draggable = {\n // @ts-ignore\n emits: {\n press: null,\n drag: null,\n release: null\n },\n inheritAttrs: false,\n created: function created() {\n this.element = null;\n this.draggable = new KendoDraggable({\n press: this.press,\n drag: this.drag,\n release: this.release\n });\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n mounted: function mounted() {\n if (this.$el) {\n this.element = this.$el.nodeType === 3 ? this.$el.nextElementSibling : this.$el;\n this.draggable.bindTo(this.element);\n }\n },\n destroyed: !!gh ? undefined : function () {\n this.draggable.destroy();\n },\n // @ts-ignore\n unmounted: function unmounted() {\n this.draggable.destroy();\n },\n methods: {\n press: function press(event) {\n if (this.element) {\n this.$emit('press', event, this.element);\n }\n },\n drag: function drag(event) {\n if (this.element) {\n this.$emit('drag', event, this.element);\n }\n },\n release: function release(event) {\n if (this.element) {\n this.$emit('release', event, this.element);\n }\n }\n }\n}, _defineProperty(_Draggable, \"setup\", !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n}), _defineProperty(_Draggable, \"render\", function render(createElement) {\n // @ts-ignore\n var h = gh || createElement;\n return getDefaultSlots(this);\n}), _Draggable);\nexport { Draggable };","/**\n * @hidden\n */\nvar outerHeight = function (element) {\n if (!element) {\n return 0;\n }\n var wnd = element.ownerDocument.defaultView;\n var computedStyles = wnd.getComputedStyle(element);\n var marginTop = parseFloat(computedStyles.marginTop);\n var marginBottom = parseFloat(computedStyles.marginBottom);\n return element.offsetHeight + marginTop + marginBottom;\n};\n/**\n * @hidden\n */\nvar outerWidth = function (element) {\n if (!element) {\n return 0;\n }\n var wnd = element.ownerDocument.defaultView;\n var computedStyles = wnd.getComputedStyle(element);\n var marginLeft = parseFloat(computedStyles.marginLeft);\n var marginRight = parseFloat(computedStyles.marginRight);\n return element.offsetWidth + marginLeft + marginRight;\n};\n/**\n * @hidden\n */\nvar styles = {\n 'animation-container': 'k-animation-container',\n 'animation-container-relative': 'k-animation-container-relative',\n 'animation-container-fixed': 'k-animation-container-fixed',\n 'push-right-enter': 'k-push-right-enter',\n 'push-right-appear': 'k-push-right-appear',\n 'push-right-enter-active': 'k-push-right-enter-active',\n 'push-right-appear-active': 'k-push-right-appear-active',\n 'push-right-exit': 'k-push-right-exit',\n 'push-right-exit-active': 'k-push-right-exit-active',\n 'push-left-enter': 'k-push-left-enter',\n 'push-left-appear': 'k-push-left-appear',\n 'push-left-enter-active': 'k-push-left-enter-active',\n 'push-left-appear-active': 'k-push-left-appear-active',\n 'push-left-exit': 'k-push-left-exit',\n 'push-left-exit-active': 'k-push-left-exit-active',\n 'push-down-enter': 'k-push-down-enter',\n 'push-down-appear': 'k-push-down-appear',\n 'push-down-enter-active': 'k-push-down-enter-active',\n 'push-down-appear-active': 'k-push-down-appear-active',\n 'push-down-exit': 'k-push-down-exit',\n 'push-down-exit-active': 'k-push-down-exit-active',\n 'push-up-enter': 'k-push-up-enter',\n 'push-up-appear': 'k-push-up-appear',\n 'push-up-enter-active': 'k-push-up-enter-active',\n 'push-up-appear-active': 'k-push-up-appear-active',\n 'push-up-exit': 'k-push-up-exit',\n 'push-up-exit-active': 'k-push-up-exit-active',\n 'expand': 'k-expand',\n 'expand-vertical-enter': 'k-expand-vertical-enter',\n 'expand-vertical-appear': 'k-expand-vertical-appear',\n 'expand-vertical-enter-active': 'k-expand-vertical-enter-active',\n 'expand-vertical-appear-active': 'k-expand-vertical-appear-active',\n 'expand-vertical-exit': 'k-expand-vertical-exit',\n 'expand-vertical-exit-active': 'k-expand-vertical-exit-active',\n 'expand-horizontal-enter': 'k-expand-horizontal-enter',\n 'expand-horizontal-appear': 'k-expand-horizontal-appear',\n 'expand-horizontal-enter-active': 'k-expand-horizontal-enter-active',\n 'expand-horizontal-appear-active': 'k-expand-horizontal-appear-active',\n 'expand-horizontal-exit': 'k-expand-horizontal-exit',\n 'expand-horizontal-exit-active': 'k-expand-horizontal-exit-active',\n 'child-animation-container': 'k-child-animation-container',\n 'fade-enter': 'k-fade-enter',\n 'fade-appear': 'k-fade-appear',\n 'fade-enter-active': 'k-fade-enter-active',\n 'fade-appear-active': 'k-fade-appear-active',\n 'fade-exit': 'k-fade-exit',\n 'fade-exit-active': 'k-fade-exit-active',\n 'zoom-in-enter': 'k-zoom-in-enter',\n 'zoom-in-appear': 'k-zoom-in-appear',\n 'zoom-in-enter-active': 'k-zoom-in-enter-active',\n 'zoom-in-appear-active': 'k-zoom-in-appear-active',\n 'zoom-in-exit': 'k-zoom-in-exit',\n 'zoom-in-exit-active': 'k-zoom-in-exit-active',\n 'zoom-out-enter': 'k-zoom-out-enter',\n 'zoom-out-appear': 'k-zoom-out-appear',\n 'zoom-out-enter-active': 'k-zoom-out-enter-active',\n 'zoom-out-appear-active': 'k-zoom-out-appear-active',\n 'zoom-out-exit': 'k-zoom-out-exit',\n 'zoom-out-exit-active': 'k-zoom-out-exit-active',\n 'slide-in-appear': 'k-slide-in-appear',\n 'centered': 'k-centered',\n 'slide-in-appear-active': 'k-slide-in-appear-active',\n 'slide-down-enter': 'k-slide-down-enter',\n 'slide-down-appear': 'k-slide-down-appear',\n 'slide-down-enter-active': 'k-slide-down-enter-active',\n 'slide-down-appear-active': 'k-slide-down-appear-active',\n 'slide-down-exit': 'k-slide-down-exit',\n 'slide-down-exit-active': 'k-slide-down-exit-active',\n 'slide-up-enter': 'k-slide-up-enter',\n 'slide-up-appear': 'k-slide-up-appear',\n 'slide-up-enter-active': 'k-slide-up-enter-active',\n 'slide-up-appear-active': 'k-slide-up-appear-active',\n 'slide-up-exit': 'k-slide-up-exit',\n 'slide-up-exit-active': 'k-slide-up-exit-active',\n 'slide-right-enter': 'k-slide-right-enter',\n 'slide-right-appear': 'k-slide-right-appear',\n 'slide-right-enter-active': 'k-slide-right-enter-active',\n 'slide-right-appear-active': 'k-slide-right-appear-active',\n 'slide-right-exit': 'k-slide-right-exit',\n 'slide-right-exit-active': 'k-slide-right-exit-active',\n 'slide-left-enter': 'k-slide-left-enter',\n 'slide-left-appear': 'k-slide-left-appear',\n 'slide-left-enter-active': 'k-slide-left-enter-active',\n 'slide-left-appear-active': 'k-slide-left-appear-active',\n 'slide-left-exit': 'k-slide-left-exit',\n 'slide-left-exit-active': 'k-slide-left-exit-active',\n 'reveal-vertical-enter': 'k-reveal-vertical-enter',\n 'reveal-vertical-appear': 'k-reveal-vertical-appear',\n 'reveal-vertical-enter-active': 'k-reveal-vertical-enter-active',\n 'reveal-vertical-appear-active': 'k-reveal-vertical-appear-active',\n 'reveal-vertical-exit': 'k-reveal-vertical-exit',\n 'reveal-vertical-exit-active': 'k-reveal-vertical-exit-active',\n 'reveal-horizontal-enter': 'k-reveal-horizontal-enter',\n 'reveal-horizontal-appear': 'k-reveal-horizontal-appear',\n 'reveal-horizontal-enter-active': 'k-reveal-horizontal-enter-active',\n 'reveal-horizontal-appear-active': 'k-reveal-horizontal-appear-active',\n 'reveal-horizontal-exit': 'k-reveal-horizontal-exit',\n 'reveal-horizontal-exit-active': 'k-reveal-horizontal-exit-active'\n};\n/**\n * @hidden\n */\nexport default {\n outerHeight: outerHeight,\n outerWidth: outerWidth,\n styles: styles\n};\n","/**\n * @hidden\n */\nvar canUseDOM = Boolean(\n// from fbjs\ntypeof window !== 'undefined' &&\n window.document &&\n window.document.createElement);\nexport { canUseDOM };\n","/**\n * @hidden\n */\nexport function getDefaultSlots(component) {\n var defaultSlots = component.$slots.default;\n return (component.v3 && defaultSlots && typeof defaultSlots === 'function') ? defaultSlots() : defaultSlots;\n}\n","import { FIELD_REGEX } from './constants';\nvar getterCache = {};\ngetterCache.undefined = function () { return undefined; };\n/**\n * @hidden\n */\nexport function getter(field) {\n if (getterCache[field]) {\n return getterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n getterCache[field] = function (obj) {\n var result = obj;\n for (var idx = 0; idx < fields.length && result; idx++) {\n result = result[fields[idx]];\n }\n return result;\n };\n return getterCache[field];\n}\n","import { FIELD_REGEX } from './constants';\nvar setterCache = {};\nsetterCache.undefined = function (obj) { return obj; };\n/**\n * @hidden\n */\nexport function setter(field) {\n if (setterCache[field]) {\n return setterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n setterCache[field] = function (obj, value) {\n var root = obj;\n var depth = fields.length - 1;\n for (var idx = 0; idx < depth && root; idx++) {\n root = root[fields[idx]] = root[fields[idx]] || {};\n }\n root[fields[depth]] = value;\n };\n return setterCache[field];\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\n/**\n * @hidden\n */\nexport function templateRendering(template, listeners) {\n if (!template) {\n return undefined;\n }\n var scopedSlot = gh ?\n this.$slots[template] ||\n (template.toLowerCase ? this.$slots[template.toLowerCase()]\n : null) :\n this.$scopedSlots[template] ||\n (template.toLowerCase ? this.$scopedSlots[template.toLowerCase()]\n : null);\n // @ts-ignore\n if (typeof template === 'string' && scopedSlot) {\n // @ts-ignore\n return { type: 'slot', render: scopedSlot, listeners: listeners };\n }\n if (typeof template === 'string' || typeof template === 'object' ||\n (typeof template === 'function' && template.component)) {\n return { type: 'component', render: template, listeners: listeners };\n }\n return { type: 'renderFunction', render: template, listeners: listeners };\n}\n/**\n * @hidden\n */\nexport function getTemplate(_a) {\n var h = _a.h, template = _a.template, defaultRendering = _a.defaultRendering, defaultSlots = _a.defaultSlots, additionalProps = _a.additionalProps, additionalListeners = _a.additionalListeners, swapDefaultSlots = _a.swapDefaultSlots;\n if (!template) {\n return defaultRendering;\n }\n var events;\n var props;\n var componentOptions;\n if (gh) {\n var passedProps = defaultRendering ? defaultRendering.props : {};\n events = __assign(__assign({}, transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, passedProps), additionalProps), events);\n componentOptions = __assign(__assign({}, props), events);\n }\n else {\n var hasComponentOptions = defaultRendering && defaultRendering.componentOptions;\n var defaultListeners = hasComponentOptions ?\n defaultRendering.componentOptions.listeners : {};\n var defaultProps = hasComponentOptions ?\n defaultRendering.componentOptions.propsData : {};\n events = __assign(__assign(__assign(__assign({}, defaultListeners), additionalListeners), transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, defaultProps), additionalProps), events);\n componentOptions = { props: props, on: events };\n }\n if (template.type === 'slot') {\n var slotTemplate = template.render({ props: props, listeners: events, methods: events,\n defaultSlots: defaultSlots });\n return slotTemplate ? slotTemplate[0] : undefined;\n }\n else if (template.type === 'renderFunction') {\n if (swapDefaultSlots) {\n return template.render(h, defaultRendering, defaultSlots, props, events);\n }\n return template.render(h, defaultRendering, props, events, defaultSlots);\n }\n else {\n return h(template.render, componentOptions, gh ? function () { return [defaultSlots]; } : [defaultSlots]);\n }\n}\n/**\n * @hidden\n */\nexport function transformListeners(listeners) {\n if (!listeners) {\n return listeners;\n }\n var newListeners = {};\n var listenersKeys = Object.keys(listeners);\n for (var i = 0; i < listenersKeys.length; i++) {\n var currentKey = listenersKeys[i];\n newListeners['on' + currentKey.charAt(0).toUpperCase() + currentKey.slice(1)] =\n listeners[currentKey];\n }\n return newListeners;\n}\n","import * as licensing from '@progress/kendo-licensing';\n/**\n * @hidden\n */\nexport function validatePackage(packageMetadata) {\n if (typeof licensing !== 'undefined') {\n licensing.validatePackage(packageMetadata);\n }\n else {\n var message = \"License activation failed for \" + packageMetadata.name + \"\\n\";\n message += 'The @progress/kendo-licensing script is not loaded.\\n';\n message += \"See \" + packageMetadata.licensingDocsUrl + \" for more information.\\n\";\n console.warn(message);\n }\n}\n","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nvar Transition = allVue.Transition;\nimport util from './util';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\nvar styles = util.styles;\n/**\n * Represents the default `Animation` component.\n */\n\nvar AnimationChild = {\n props: {\n in: Boolean,\n transitionName: {\n type: String,\n required: true\n },\n transitionStyle: Object,\n componentChildClassName: [Array],\n className: String,\n appear: {\n type: Boolean,\n default: true\n },\n enter: {\n type: Boolean,\n default: true\n },\n exit: {\n type: Boolean,\n default: true\n },\n transitionEnterDuration: Number,\n transitionExitDuration: Number,\n mountOnEnter: Boolean,\n unmountOnExit: Boolean,\n animationEnteringStyle: Object,\n animationEnteredStyle: Object,\n animationExitingStyle: Object,\n animationExitedStyle: Object\n },\n created: function created() {\n this.animationStep = '';\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var elementRef = ref(null);\n return {\n v3: v3,\n elementRef: elementRef\n };\n },\n mounted: function mounted() {\n this._element = this.v3 ? this.elementRef || null : this.$refs.element || null;\n },\n computed: {\n element: {\n get: function get() {\n return this._element;\n }\n }\n },\n methods: {\n onBeforeEnter: function onBeforeEnter(e) {\n this.$emit('beforeenter', {\n animatedElement: e,\n target: this\n });\n },\n onEnter: function onEnter(e) {\n this.animationStep = 'entering';\n this.$emit('entering', {\n animatedElement: e,\n target: this\n });\n },\n onAfterEnter: function onAfterEnter(e) {\n this.animationStep = 'entered';\n this.$emit('entered', {\n animatedElement: e,\n target: this\n });\n },\n onBeforeLeave: function onBeforeLeave(e) {\n this.$emit('exit', {\n animatedElement: e,\n target: this\n });\n },\n onLeave: function onLeave(e) {\n this.animationStep = 'exiting';\n this.$emit('exiting', {\n animatedElement: e,\n target: this\n });\n },\n onAfterLeave: function onAfterLeave(e) {\n this.animationStep = 'exited';\n this.$emit('exited', {\n animatedElement: e,\n target: this\n });\n }\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n\n var _a = this.$props,\n appear = _a.appear,\n enter = _a.enter,\n exit = _a.exit,\n transitionName = _a.transitionName,\n transitionEnterDuration = _a.transitionEnterDuration,\n transitionExitDuration = _a.transitionExitDuration,\n className = _a.className,\n componentChildClassName = _a.componentChildClassName,\n mountOnEnter = _a.mountOnEnter,\n unmountOnExit = _a.unmountOnExit,\n animationEnteringStyle = _a.animationEnteringStyle,\n animationEnteredStyle = _a.animationEnteredStyle,\n animationExitingStyle = _a.animationExitingStyle,\n animationExitedStyle = _a.animationExitedStyle,\n other = __rest(_a, [\"appear\", \"enter\", \"exit\", \"transitionName\", \"transitionEnterDuration\", \"transitionExitDuration\", \"className\", \"componentChildClassName\", \"mountOnEnter\", \"unmountOnExit\", \"animationEnteringStyle\", \"animationEnteredStyle\", \"animationExitingStyle\", \"animationExitedStyle\"]);\n\n var defaultSlot = getDefaultSlots(this);\n var hasChildren = this.v3 ? appear : !!defaultSlot;\n var transitionTag = this.v3 ? Transition : 'transition';\n var childAnimationContainerClassNames = [componentChildClassName, styles['child-animation-container']];\n var enterDuration = enter ? transitionEnterDuration : 0;\n var exitDuration = exit ? transitionExitDuration : 0;\n\n var defaultStyle = __assign({\n transitionDelay: '0ms',\n transitionDuration: hasChildren ? enterDuration + \"ms\" : exitDuration + \"ms\"\n }, this.$props.transitionStyle);\n\n var animationStyle = {\n entering: __assign({\n transitionDuration: enterDuration + \"ms\"\n }, animationEnteringStyle),\n entered: __assign({}, animationEnteredStyle),\n exiting: __assign({\n transitionDuration: exitDuration + \"ms\"\n }, animationExitingStyle),\n exited: __assign({}, animationExitedStyle)\n };\n var childElementStyles = [defaultStyle, animationStyle[this.animationStep]];\n var duration = {\n enter: enterDuration,\n leave: exitDuration\n };\n var rendererChildren = [hasChildren ? h('div', {\n style: childElementStyles,\n 'class': childAnimationContainerClassNames,\n ref: this.v3 ? function (el) {\n _this.elementRef = el;\n } : 'element'\n }, [defaultSlot]) : null];\n return h(transitionTag, {\n duration: duration,\n attrs: this.v3 ? null : {\n duration: duration,\n name: transitionName,\n appear: appear,\n appearClass: styles[transitionName + \"-appear\"] || transitionName + \"-appear\",\n appearToClass: styles[transitionName + \"-appear-active\"] || transitionName + \"-appear-active\",\n enterClass: styles[transitionName + \"-enter\"] || transitionName + \"-enter\",\n enterToClass: styles[transitionName + \"-enter-active\"] || transitionName + \"-enter-active\",\n leaveClass: styles[transitionName + \"-exit\"] || transitionName + \"-exit\",\n leaveToClass: styles[transitionName + \"-exit-active\"] || transitionName + \"-exit-active\"\n },\n name: transitionName,\n appear: appear,\n appearFromClass: styles[transitionName + \"-appear\"] || transitionName + \"-appear\",\n enterFromClass: styles[transitionName + \"-enter\"] || transitionName + \"-enter\",\n leaveFromClass: styles[transitionName + \"-exit\"] || transitionName + \"-exit\",\n appearToClass: styles[transitionName + \"-appear-active\"] || transitionName + \"-appear-active\",\n enterToClass: styles[transitionName + \"-enter-active\"] || transitionName + \"-enter-active\",\n leaveToClass: styles[transitionName + \"-exit-active\"] || transitionName + \"-exit-active\",\n onBeforeEnter: this.onBeforeEnter,\n on: this.v3 ? null : {\n 'beforeEnter': this.onBeforeEnter,\n 'enter': this.onEnter,\n 'afterEnter': this.onAfterEnter,\n 'beforeLeave': this.onBeforeLeave,\n 'leave': this.onLeave,\n 'afterLeave': this.onAfterLeave\n },\n onEnter: this.onEnter,\n onAfterEnter: this.onAfterEnter,\n onBeforeLeave: this.onBeforeLeave,\n onLeave: this.onLeave,\n onAfterLeave: this.onAfterLeave\n }, this.v3 ? function () {\n return rendererChildren;\n } : rendererChildren);\n }\n};\nvar AnimationChildVue3 = AnimationChild;\nexport { AnimationChild, AnimationChildVue3 };","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-vue-animation',\n productName: 'Kendo UI for Vue',\n productCodes: ['KENDOUIVUE', 'KENDOUICOMPLETE'],\n publishDate: 1641560986,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning'\n};\n","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { AnimationChild } from './AnimationChild';\nimport { getDefaultSlots, validatePackage } from '@progress/kendo-vue-common';\nimport { packageMetadata } from './package-metadata';\nimport util from './util';\nvar styles = util.styles;\n/**\n * Represents the default `Animation` component.\n */\n\nvar Animation = {\n props: {\n childFactory: Object,\n className: String,\n tag: String,\n id: String,\n animationEnteringStyle: Object,\n animationExitingStyle: Object,\n componentChildClassName: [Array],\n transitionName: {\n type: String,\n required: true\n },\n appear: {\n type: Boolean,\n default: true\n },\n enter: {\n type: Boolean,\n default: true\n },\n exit: {\n type: Boolean,\n default: true\n },\n transitionEnterDuration: {\n type: Number\n },\n transitionExitDuration: {\n type: Number\n }\n },\n methods: {\n onEntering: function onEntering(e) {\n this.$emit('entering', e);\n },\n onEnter: function onEnter(e) {\n this.$emit('enter', e);\n },\n onEntered: function onEntered(e) {\n this.$emit('entered', e);\n },\n onExit: function onExit(e) {\n this.$emit('exit', e);\n },\n onExiting: function onExiting(e) {\n this.$emit('exiting', e);\n },\n onExited: function onExited(e) {\n this.$emit('exited', e);\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n created: function created() {\n validatePackage(packageMetadata);\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n\n var _a = this.$props,\n id = _a.id,\n tag = _a.tag,\n className = _a.className,\n childFactory = _a.childFactory,\n stackChildren = _a.stackChildren,\n componentChildStyle = _a.componentChildStyle,\n componentChildClassName = _a.componentChildClassName,\n other = __rest(_a, [\"id\", \"tag\", \"className\", \"childFactory\", \"stackChildren\", \"componentChildStyle\", \"componentChildClassName\"]);\n\n var parentDivClass = [styles['animation-container'], styles['animation-container-relative'], className];\n return h(\"div\", {\n id: this.$props.id,\n attrs: this.v3 ? undefined : {\n id: this.$props.id\n },\n \"class\": parentDivClass\n }, [// @ts-ignore function children\n h(AnimationChild, {\n key: 'some',\n appear: this.$props.appear,\n attrs: this.v3 ? undefined : {\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionName: this.$props.transitionName,\n componentChildClassName: this.$props.componentChildClassName,\n animationEnteringStyle: this.$props.animationEnteringStyle,\n animationExitingStyle: this.$props.animationExitingStyle,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration\n },\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionName: this.$props.transitionName,\n componentChildClassName: this.$props.componentChildClassName,\n onBeforeenter: this.onEnter,\n on: this.v3 ? undefined : {\n \"beforeenter\": this.onEnter,\n \"entering\": this.onEntering,\n \"entered\": this.onEntered,\n \"exit\": this.onExit,\n \"exiting\": this.onExiting,\n \"exited\": this.onExited\n },\n onEntering: this.onEntering,\n onEntered: this.onEntered,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited,\n animationEnteringStyle: this.$props.animationEnteringStyle,\n animationExitingStyle: this.$props.animationExitingStyle,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration\n }, this.v3 ? function () {\n return [defaultSlot];\n } : [defaultSlot])]);\n }\n};\nvar AnimationVue3 = Animation;\nexport { Animation, AnimationVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { Animation } from './Animation';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * Represents the default `Fade` component.\n */\n\nvar Fade = {\n props: {\n appear: {\n type: Boolean,\n default: false\n },\n enter: {\n type: Boolean,\n default: true\n },\n exit: {\n type: Boolean,\n default: false\n },\n transitionEnterDuration: {\n type: Number,\n default: 500\n },\n transitionExitDuration: {\n type: Number,\n default: 500\n },\n childFactory: Object,\n className: String,\n tag: String,\n id: String\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n return (// @ts-ignore function children\n h(Animation, {\n transitionName: \"fade\",\n attrs: this.v3 ? undefined : {\n transitionName: \"fade\",\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration\n },\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration\n }, this.v3 ? function () {\n return [defaultSlot];\n } : [defaultSlot])\n );\n }\n};\nvar FadeVue3 = Fade;\nexport { Fade, FadeVue3 };","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { Animation } from './Animation';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * Represents the default `Expand` component.\n */\n\nvar Expand = {\n props: {\n appear: {\n type: Boolean,\n default: false\n },\n enter: {\n type: Boolean,\n default: true\n },\n exit: {\n type: Boolean,\n default: true\n },\n transitionEnterDuration: {\n type: Number,\n default: 300\n },\n transitionExitDuration: {\n type: Number,\n default: 300\n },\n childFactory: Object,\n className: String,\n direction: {\n type: String,\n default: 'vertical'\n },\n tag: String,\n id: String\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n\n var _a = this.$props,\n direction = _a.direction,\n other = __rest(_a, [\"direction\"]);\n\n var transitionName = \"expand-\" + this.$props.direction;\n return (// @ts-ignore function children\n h(Animation, {\n transitionName: transitionName,\n attrs: this.v3 ? undefined : {\n transitionName: transitionName,\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration\n },\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration\n }, this.v3 ? function () {\n return [defaultSlot];\n } : [defaultSlot])\n );\n }\n};\nvar ExpandVue3 = Expand;\nexport { Expand, ExpandVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { Animation } from './Animation';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\nvar EXITING_ANIMATION_STYLE = {\n position: 'absolute',\n top: '0',\n left: '0'\n};\n/**\n * Represents the default `Push` component.\n */\n\nvar Push = {\n props: {\n appear: {\n type: Boolean,\n default: false\n },\n enter: {\n type: Boolean,\n default: true\n },\n exit: {\n type: Boolean,\n default: true\n },\n transitionEnterDuration: {\n type: Number,\n default: 300\n },\n transitionExitDuration: {\n type: Number,\n default: 300\n },\n childFactory: Object,\n className: String,\n direction: {\n type: String,\n default: 'right'\n },\n tag: String,\n id: String\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n var transitionName = \"push-\" + this.$props.direction;\n return (// @ts-ignore function children\n h(Animation, {\n transitionName: transitionName,\n attrs: this.v3 ? undefined : {\n transitionName: transitionName,\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration,\n animationExitingStyle: this.$props.stackChildren ? EXITING_ANIMATION_STYLE : undefined\n },\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration,\n animationExitingStyle: this.$props.stackChildren ? EXITING_ANIMATION_STYLE : undefined\n }, this.v3 ? function () {\n return [defaultSlot];\n } : [defaultSlot])\n );\n }\n};\nvar PushVue3 = Push;\nexport { Push, PushVue3 };","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { Animation } from './Animation';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * Represents the default `Slide` component.\n */\n\nvar Slide = {\n props: {\n appear: {\n type: Boolean,\n default: false\n },\n enter: {\n type: Boolean,\n default: true\n },\n exit: {\n type: Boolean,\n default: true\n },\n transitionEnterDuration: {\n type: Number,\n default: 300\n },\n transitionExitDuration: {\n type: Number,\n default: 300\n },\n componentChildClassName: [Array],\n childFactory: Object,\n className: String,\n direction: {\n type: String,\n default: 'down'\n },\n tag: String,\n id: String\n },\n methods: {\n onEntering: function onEntering(e) {\n this.$emit('entering', e);\n },\n onEnter: function onEnter(e) {\n this.$emit('enter', e);\n },\n onEntered: function onEntered(e) {\n this.$emit('entered', e);\n },\n onExit: function onExit(e) {\n this.$emit('exit', e);\n },\n onExiting: function onExiting(e) {\n this.$emit('exiting', e);\n },\n onExited: function onExited(e) {\n this.$emit('exited', e);\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n\n var _a = this.$props,\n direction = _a.direction,\n id = _a.id,\n other = __rest(_a, [\"direction\", \"id\"]);\n\n var transitionName = \"slide-\" + this.$props.direction;\n return (// @ts-ignore function children\n h(Animation, {\n id: id,\n attrs: this.v3 ? undefined : {\n id: id,\n transitionName: transitionName,\n componentChildClassName: this.$props.componentChildClassName,\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration\n },\n transitionName: transitionName,\n componentChildClassName: this.$props.componentChildClassName,\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n onEnter: this.onEnter,\n on: this.v3 ? undefined : {\n \"enter\": this.onEnter,\n \"entering\": this.onEntering,\n \"entered\": this.onEntered,\n \"exit\": this.onExit,\n \"exiting\": this.onExiting,\n \"exited\": this.onExited\n },\n onEntering: this.onEntering,\n onEntered: this.onEntered,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration\n }, this.v3 ? function () {\n return [defaultSlot];\n } : [defaultSlot])\n );\n }\n};\nvar SlideVue3 = Slide;\nexport { Slide, SlideVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { Animation } from './Animation';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\nvar EXITING_ANIMATION_STYLE = {\n position: 'absolute',\n top: '0',\n left: '0'\n};\n/**\n * Represents the default `Zoom` component.\n */\n\nvar Zoom = {\n props: {\n appear: {\n type: Boolean,\n default: false\n },\n enter: {\n type: Boolean,\n default: true\n },\n exit: {\n type: Boolean,\n default: true\n },\n stackChildren: {\n type: Boolean,\n default: false\n },\n transitionEnterDuration: {\n type: Number,\n default: 300\n },\n transitionExitDuration: {\n type: Number,\n default: 300\n },\n childFactory: Object,\n className: String,\n direction: {\n type: String,\n default: 'out'\n },\n tag: String,\n id: String\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n var transitionName = \"zoom-\" + this.$props.direction;\n return (// @ts-ignore function children\n h(Animation, {\n transitionName: transitionName,\n attrs: this.v3 ? undefined : {\n transitionName: transitionName,\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration,\n animationExitingStyle: this.$props.stackChildren ? EXITING_ANIMATION_STYLE : undefined\n },\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration,\n animationExitingStyle: this.$props.stackChildren ? EXITING_ANIMATION_STYLE : undefined\n }, this.v3 ? function () {\n return [defaultSlot];\n } : [defaultSlot])\n );\n }\n};\nvar ZoomVue3 = Zoom;\nexport { Zoom, ZoomVue3 };","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { Animation } from './Animation';\nimport util from './util';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * @hidden\n */\n\nvar noop = function noop() {};\n/**\n * Represents the default `Reveal` component.\n */\n\n\nvar Reveal = {\n props: {\n appear: {\n type: Boolean,\n default: false\n },\n enter: {\n type: Boolean,\n default: true\n },\n exit: {\n type: Boolean,\n default: true\n },\n transitionEnterDuration: {\n type: Number,\n default: 300\n },\n transitionExitDuration: {\n type: Number,\n default: 300\n },\n childFactory: Object,\n className: String,\n direction: {\n type: String,\n default: 'vertical'\n },\n tag: String,\n id: String\n },\n data: function data() {\n return {\n maxHeight: '',\n maxWidth: ''\n };\n },\n methods: {\n componentWillEnter: function componentWillEnter(event) {\n var onEnter = this.$props.onEnter;\n this.updateContainerDimensions(event.animatedElement, function () {\n if (onEnter) {\n onEnter.call(undefined, event);\n }\n });\n },\n componentIsEntering: function componentIsEntering(event) {\n var onEntering = this.$props.onEntering;\n this.updateContainerDimensions(event.animatedElement, function () {\n if (onEntering) {\n onEntering.call(undefined, event);\n }\n });\n },\n componentWillExit: function componentWillExit(event) {\n var onExit = this.$props.onExit;\n this.updateContainerDimensions(event.animatedElement, function () {\n if (onExit) {\n onExit.call(undefined, event);\n }\n });\n },\n updateContainerDimensions: function updateContainerDimensions(node, done) {\n if (done === void 0) {\n done = noop;\n }\n\n var content = node ? node.firstElementChild : null;\n\n if (content) {\n var newHeight = util.outerHeight(content);\n var newWidth = util.outerWidth(content);\n this.$data.maxHeight = newHeight;\n this.$data.maxWidth = newWidth;\n done();\n }\n }\n },\n computed: {\n animationEnteringStyle: {\n get: function get() {\n var maxOffset;\n\n if (this.$props.direction === 'vertical') {\n maxOffset = {\n maxHeight: this.maxHeight ? this.maxHeight + \"px\" : null\n };\n } else {\n maxOffset = {\n maxWidth: this.maxWidth ? this.maxWidth + \"px\" : null\n };\n }\n\n return {\n maxHeight: maxOffset.maxHeight,\n maxWidth: maxOffset.maxWidth\n };\n }\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n\n var _a = this.$props,\n direction = _a.direction,\n childFactory = _a.childFactory,\n other = __rest(_a, [\"direction\", \"childFactory\"]);\n\n var transitionName = \"reveal-\" + this.$props.direction;\n return (// @ts-ignore function children\n h(Animation, {\n appear: this.$props.appear,\n attrs: this.v3 ? undefined : {\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration,\n animationEnteringStyle: this.animationEnteringStyle,\n transitionName: transitionName\n },\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration,\n onEnter: this.componentWillEnter,\n on: this.v3 ? undefined : {\n \"enter\": this.componentWillEnter,\n \"entering\": this.componentIsEntering,\n \"exit\": this.componentWillExit\n },\n onEntering: this.componentIsEntering,\n onExit: this.componentWillExit,\n animationEnteringStyle: this.animationEnteringStyle,\n transitionName: transitionName\n }, this.v3 ? function () {\n return [defaultSlot];\n } : [defaultSlot])\n );\n }\n};\nvar RevealVue3 = Reveal;\nexport { Reveal, RevealVue3 };","export var animate = function animate(transition, offset, animationFrame) {\n if (offset === void 0) {\n offset = 0;\n }\n\n if (animationFrame === void 0) {\n animationFrame = 0;\n }\n\n var duration = transition.duration;\n var start;\n var progress;\n var skip = offset && 1 - offset;\n\n if (transition.onStart) {\n transition.onStart();\n }\n\n var frame = function frame(timestamp) {\n if (!start) {\n start = timestamp;\n }\n\n progress = timestamp - start + 1;\n var rate = progress / duration + skip;\n\n if (rate <= 1) {\n if (transition.onUpdate) {\n transition.onUpdate(rate);\n }\n\n animationFrame = window.requestAnimationFrame(frame);\n offset = rate;\n } else {\n if (transition.onEnd) {\n transition.onEnd(1);\n }\n\n offset = 0;\n }\n };\n\n animationFrame = window.requestAnimationFrame(frame);\n return animationFrame;\n};\nexport var cancelAnimation = function cancelAnimation(animationFrame) {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n};","var _Draggable;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport KendoDraggable from '@telerik/kendo-draggable';\nimport { getDefaultSlots } from './defaultSlots';\n/**\n * Represents the default `Draggable` component.\n */\n\nvar Draggable = (_Draggable = {\n // @ts-ignore\n emits: {\n press: null,\n drag: null,\n release: null\n },\n inheritAttrs: false,\n created: function created() {\n this.element = null;\n this.draggable = new KendoDraggable({\n press: this.press,\n drag: this.drag,\n release: this.release\n });\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n mounted: function mounted() {\n if (this.$el) {\n this.element = this.$el.nodeType === 3 ? this.$el.nextElementSibling : this.$el;\n this.draggable.bindTo(this.element);\n }\n },\n destroyed: !!gh ? undefined : function () {\n this.draggable.destroy();\n },\n // @ts-ignore\n unmounted: function unmounted() {\n this.draggable.destroy();\n },\n methods: {\n press: function press(event) {\n if (this.element) {\n this.$emit('press', event, this.element);\n }\n },\n drag: function drag(event) {\n if (this.element) {\n this.$emit('drag', event, this.element);\n }\n },\n release: function release(event) {\n if (this.element) {\n this.$emit('release', event, this.element);\n }\n }\n }\n}, _defineProperty(_Draggable, \"setup\", !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n}), _defineProperty(_Draggable, \"render\", function render(createElement) {\n // @ts-ignore\n var h = gh || createElement;\n return getDefaultSlots(this);\n}), _Draggable);\nexport { Draggable };","/**\n * @hidden\n */\nexport var classNames = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return args\n .filter(function (arg) { return arg !== true && !!arg; })\n .map(function (arg) {\n return Array.isArray(arg)\n ? classNames.apply(void 0, arg) : typeof arg === 'object'\n ? Object\n .keys(arg)\n .map(function (key, idx) { return arg[idx] || (arg[key] && key) || null; })\n .filter(function (el) { return el !== null; })\n .join(' ')\n : arg;\n })\n .filter(function (arg) { return !!arg; })\n .join(' ');\n};\n","/* tslint:disable:no-bitwise */\n/**\n * @hidden\n */\nvar guid = function () {\n var id = '';\n var i;\n var random;\n for (i = 0; i < 32; i++) {\n random = Math.random() * 16 | 0;\n if (i === 8 || i === 12 || i === 16 || i === 20) {\n id += '-';\n }\n id += (i === 12 ? 4 : (i === 16 ? (random & 3 | 8) : random)).toString(16);\n }\n return id;\n};\nexport { guid };\n","/**\n * @hidden\n */\nvar Keys = {\n backspace: 8,\n tab: 9,\n enter: 13,\n shift: 16,\n esc: 27,\n space: 32,\n pageUp: 33,\n pageDown: 34,\n end: 35,\n home: 36,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n delete: 46\n};\nexport { Keys };\n","/**\n * @hidden\n */\nvar canUseDOM = Boolean(\n// from fbjs\ntypeof window !== 'undefined' &&\n window.document &&\n window.document.createElement);\nexport { canUseDOM };\n","/**\n * @hidden\n */\nexport function getDefaultSlots(component) {\n var defaultSlots = component.$slots.default;\n return (component.v3 && defaultSlots && typeof defaultSlots === 'function') ? defaultSlots() : defaultSlots;\n}\n","/**\n * @hidden\n */\nvar noop = function () { };\nexport { noop };\n","import { FIELD_REGEX } from './constants';\nvar getterCache = {};\ngetterCache.undefined = function () { return undefined; };\n/**\n * @hidden\n */\nexport function getter(field) {\n if (getterCache[field]) {\n return getterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n getterCache[field] = function (obj) {\n var result = obj;\n for (var idx = 0; idx < fields.length && result; idx++) {\n result = result[fields[idx]];\n }\n return result;\n };\n return getterCache[field];\n}\n","import { FIELD_REGEX } from './constants';\nvar setterCache = {};\nsetterCache.undefined = function (obj) { return obj; };\n/**\n * @hidden\n */\nexport function setter(field) {\n if (setterCache[field]) {\n return setterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n setterCache[field] = function (obj, value) {\n var root = obj;\n var depth = fields.length - 1;\n for (var idx = 0; idx < depth && root; idx++) {\n root = root[fields[idx]] = root[fields[idx]] || {};\n }\n root[fields[depth]] = value;\n };\n return setterCache[field];\n}\n","/**\n * @hidden\n */\nexport function hasListener(eventName) {\n if (this.v3) {\n return Object.keys(this.$attrs).map(function (name) { return name.toLowerCase(); })\n .some(function (event) { return event.endsWith(eventName.toLowerCase()); });\n }\n else {\n return this.$listeners[eventName];\n }\n}\n/**\n * @hidden\n */\nexport function getListeners() {\n if (this.v3) {\n var listeners = {};\n for (var key in (this.$attrs)) {\n if (key.startsWith('on')) {\n listeners[key] = this.$attrs[key];\n }\n }\n return listeners;\n }\n else {\n return this.$listeners;\n }\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\n/**\n * @hidden\n */\nexport function templateRendering(template, listeners) {\n if (!template) {\n return undefined;\n }\n var scopedSlot = gh ?\n this.$slots[template] ||\n (template.toLowerCase ? this.$slots[template.toLowerCase()]\n : null) :\n this.$scopedSlots[template] ||\n (template.toLowerCase ? this.$scopedSlots[template.toLowerCase()]\n : null);\n // @ts-ignore\n if (typeof template === 'string' && scopedSlot) {\n // @ts-ignore\n return { type: 'slot', render: scopedSlot, listeners: listeners };\n }\n if (typeof template === 'string' || typeof template === 'object' ||\n (typeof template === 'function' && template.component)) {\n return { type: 'component', render: template, listeners: listeners };\n }\n return { type: 'renderFunction', render: template, listeners: listeners };\n}\n/**\n * @hidden\n */\nexport function getTemplate(_a) {\n var h = _a.h, template = _a.template, defaultRendering = _a.defaultRendering, defaultSlots = _a.defaultSlots, additionalProps = _a.additionalProps, additionalListeners = _a.additionalListeners, swapDefaultSlots = _a.swapDefaultSlots;\n if (!template) {\n return defaultRendering;\n }\n var events;\n var props;\n var componentOptions;\n if (gh) {\n var passedProps = defaultRendering ? defaultRendering.props : {};\n events = __assign(__assign({}, transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, passedProps), additionalProps), events);\n componentOptions = __assign(__assign({}, props), events);\n }\n else {\n var hasComponentOptions = defaultRendering && defaultRendering.componentOptions;\n var defaultListeners = hasComponentOptions ?\n defaultRendering.componentOptions.listeners : {};\n var defaultProps = hasComponentOptions ?\n defaultRendering.componentOptions.propsData : {};\n events = __assign(__assign(__assign(__assign({}, defaultListeners), additionalListeners), transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, defaultProps), additionalProps), events);\n componentOptions = { props: props, on: events };\n }\n if (template.type === 'slot') {\n var slotTemplate = template.render({ props: props, listeners: events, methods: events,\n defaultSlots: defaultSlots });\n return slotTemplate ? slotTemplate[0] : undefined;\n }\n else if (template.type === 'renderFunction') {\n if (swapDefaultSlots) {\n return template.render(h, defaultRendering, defaultSlots, props, events);\n }\n return template.render(h, defaultRendering, props, events, defaultSlots);\n }\n else {\n return h(template.render, componentOptions, gh ? function () { return [defaultSlots]; } : [defaultSlots]);\n }\n}\n/**\n * @hidden\n */\nexport function transformListeners(listeners) {\n if (!listeners) {\n return listeners;\n }\n var newListeners = {};\n var listenersKeys = Object.keys(listeners);\n for (var i = 0; i < listenersKeys.length; i++) {\n var currentKey = listenersKeys[i];\n newListeners['on' + currentKey.charAt(0).toUpperCase() + currentKey.slice(1)] =\n listeners[currentKey];\n }\n return newListeners;\n}\n","/**\n * @hidden\n */\nvar DISABLED_TABINDEX = -1;\n/**\n * @hidden\n */\nvar DEFAULT_TABINDEX = 0;\n/**\n * @hidden\n */\nexport var getTabIndex = function (tabIndex, disabled, useDefaultTabIndexWhenDisabled) {\n var parsedTabIndex = typeof tabIndex === 'string' ? parseInt(tabIndex, undefined) : tabIndex;\n if (parsedTabIndex === NaN) {\n return undefined;\n }\n return parsedTabIndex !== undefined\n ? parsedTabIndex\n : disabled ?\n (useDefaultTabIndexWhenDisabled ? undefined : DISABLED_TABINDEX)\n : DEFAULT_TABINDEX;\n};\n","import * as licensing from '@progress/kendo-licensing';\n/**\n * @hidden\n */\nexport function validatePackage(packageMetadata) {\n if (typeof licensing !== 'undefined') {\n licensing.validatePackage(packageMetadata);\n }\n else {\n var message = \"License activation failed for \" + packageMetadata.name + \"\\n\";\n message += 'The @progress/kendo-licensing script is not loaded.\\n';\n message += \"See \" + packageMetadata.licensingDocsUrl + \" for more information.\\n\";\n console.warn(message);\n }\n}\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-vue-buttons',\n productName: 'Kendo UI for Vue',\n productCodes: ['KENDOUIVUE', 'KENDOUICOMPLETE'],\n publishDate: 1641561106,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning'\n};\n","/**\n * @hidden\n */\nexport var FOCUS_ACTION;\n\n(function (FOCUS_ACTION) {\n FOCUS_ACTION[\"next\"] = \"next\";\n FOCUS_ACTION[\"prev\"] = \"prev\";\n FOCUS_ACTION[\"current\"] = \"current\";\n FOCUS_ACTION[\"reset\"] = \"reset\";\n})(FOCUS_ACTION || (FOCUS_ACTION = {}));\n/**\n * @hidden\n */\n\n\nexport var focusReducer = function focusReducer(state, action) {\n var currentIndex = action.items.findIndex(function (i) {\n return i === state;\n });\n\n switch (action.type) {\n case FOCUS_ACTION.next:\n return currentIndex === action.items.length - 1 ? state : action.items[currentIndex + 1];\n\n case FOCUS_ACTION.prev:\n return currentIndex === 0 ? state : action.items[currentIndex - 1];\n\n case FOCUS_ACTION.current:\n return action.payload;\n\n case FOCUS_ACTION.reset:\n return null;\n\n default:\n return state;\n }\n};","/**\n * @hidden\n */\nvar styles = {\n button: 'k-button',\n 'flat': 'k-flat',\n 'outline': 'k-outline',\n 'clear': 'k-button-clear',\n 'primary': 'k-primary',\n 'state-selected': 'k-state-selected',\n 'button-icon': 'k-button-icon',\n 'button-icontext': 'k-button-icontext',\n 'state-disabled': 'k-state-disabled',\n 'group-start': 'k-group-start',\n 'group-end': 'k-group-end',\n 'button-group': 'k-button-group',\n 'button-group-stretched': 'k-button-group-stretched',\n 'ltr': 'k-ltr',\n 'rtl': 'k-rtl'\n};\nvar notDisabled = ':not(.k-state-disabled):not([disabled]):not([disabled=\"true\"])';\n/**\n * @hidden\n */\nexport var toolbarButtons = [\n 'button' + notDisabled,\n '.k-button-group > button' + notDisabled,\n '.k-dropdown > .k-dropdown-wrap' + notDisabled,\n '.k-colorpicker > .k-picker-wrap' + notDisabled\n];\n/**\n * @hidden\n */\nexport default {\n styles: styles\n};\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { classNames, getDefaultSlots, validatePackage } from '@progress/kendo-vue-common';\nimport { packageMetadata } from './package-metadata';\nimport util from './util';\nvar styles = util.styles; // tslint:enable:max-line-length\n\nvar Button = {\n name: 'KendoButton',\n // @ts-ignore\n emits: {\n click: null,\n mousedown: null,\n mouseup: null,\n pointerdown: null,\n pointerup: null,\n focus: null,\n blur: null,\n keypress: null\n },\n props: {\n look: {\n type: String,\n default: function _default() {\n return 'default';\n }\n },\n primary: {\n type: Boolean,\n default: false\n },\n selected: {\n type: Boolean,\n default: undefined\n },\n togglable: {\n type: Boolean,\n default: false\n },\n icon: {\n type: String,\n default: function _default() {\n return undefined;\n }\n },\n iconClass: {\n type: String,\n default: function _default() {\n return undefined;\n }\n },\n imageUrl: {\n type: String,\n default: function _default() {\n return undefined;\n }\n },\n imageAlt: String,\n disabled: {\n type: Boolean,\n default: undefined\n }\n },\n created: function created() {\n validatePackage(packageMetadata);\n this.currentActive = this.$props.togglable === true && this.$props.selected === true;\n this._activeTemp = undefined;\n },\n data: function data() {\n return {\n currentActive: null\n };\n },\n computed: {\n computedSelected: function computedSelected() {\n return this._activeTemp !== undefined ? this._activeTemp : this.$props.selected !== undefined ? this.$props.selected : this.currentActive;\n }\n },\n updated: function updated() {\n if (this.$props.togglable && this.$props.selected !== undefined && this.$props.selected !== this.currentActive) {\n this.currentActive = this.$props.selected;\n }\n },\n methods: {\n focus: function focus(e) {\n this.$el.focus(e);\n },\n toggleIfApplicable: function toggleIfApplicable() {\n if (!this.disabled && this.$props.togglable && this.$props.selected === undefined) {\n var active = !this.currentActive;\n this._activeTemp = active;\n this.currentActive = active;\n this._activeTemp = undefined;\n }\n },\n handleClick: function handleClick(event) {\n this.toggleIfApplicable();\n\n if (!this.disabled) {\n this.$emit('click', event);\n }\n },\n handleMouseDown: function handleMouseDown(event) {\n if (!this.disabled) {\n this.$emit('mousedown', event);\n }\n },\n handlePointerDown: function handlePointerDown(event) {\n if (!this.disabled) {\n this.$emit('pointerdown', event);\n }\n },\n handleMouseUp: function handleMouseUp(event) {\n if (!this.disabled) {\n this.$emit('mouseup', event);\n }\n },\n handlePointerUp: function handlePointerUp(event) {\n if (!this.disabled) {\n this.$emit('pointerup', event);\n }\n },\n handleFocus: function handleFocus(event) {\n if (!this.disabled) {\n this.$emit('focus', event);\n }\n },\n handleBlur: function handleBlur(event) {\n if (!this.disabled) {\n this.$emit('blur', event);\n }\n },\n handleKeypress: function handleKeypress(event) {\n if (!this.disabled) {\n this.$emit('keypress', event);\n }\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _a;\n\n var h = gh || createElement;\n var _b = this.$props,\n look = _b.look,\n primary = _b.primary,\n togglable = _b.togglable,\n icon = _b.icon,\n iconClass = _b.iconClass,\n imageUrl = _b.imageUrl,\n imageAlt = _b.imageAlt;\n var hasIcon = icon !== undefined || iconClass !== undefined || imageUrl !== undefined;\n var defaultSlot = getDefaultSlots(this);\n var hasChildren = defaultSlot;\n var buttonClasses = classNames([styles.button], (_a = {}, _a[styles[\"\" + look]] = look !== 'default', _a[styles.primary] = primary, _a[styles['state-disabled']] = this.$props.disabled, _a[styles['state-selected']] = this.computedSelected, _a[styles['button-icon']] = !hasChildren && hasIcon, _a[styles['button-icontext']] = hasChildren && hasIcon, _a), [styles[\"\" + this.$props.dir]]);\n\n var iconElement = function iconElement() {\n if (imageUrl) {\n return h(\"img\", {\n role: \"presentation\",\n attrs: this.v3 ? undefined : {\n role: \"presentation\",\n alt: imageAlt,\n src: imageUrl\n },\n \"class\": 'k-image',\n alt: imageAlt,\n src: imageUrl\n });\n } else if (icon) {\n var iconClasses = classNames('k-icon', 'k-i-' + icon);\n return h(\"span\", {\n role: \"presentation\",\n attrs: this.v3 ? undefined : {\n role: \"presentation\"\n },\n \"class\": iconClasses\n });\n } else if (iconClass) {\n return h(\"span\", {\n role: \"presentation\",\n attrs: this.v3 ? undefined : {\n role: \"presentation\"\n },\n \"class\": iconClass\n });\n }\n\n return null;\n };\n\n return h(\"button\", {\n \"class\": buttonClasses,\n onClick: this.handleClick,\n on: this.v3 ? undefined : {\n \"click\": this.handleClick,\n \"mousedown\": this.handleMouseDown,\n \"mouseup\": this.handleMouseUp,\n \"pointerdown\": this.handlePointerDown,\n \"pointerup\": this.handlePointerUp,\n \"focus\": this.handleFocus,\n \"blur\": this.handleBlur,\n \"keypress\": this.handleKeypress\n },\n onMousedown: this.handleMouseDown,\n onMouseup: this.handleMouseUp,\n onPointerdown: this.handlePointerDown,\n onPointerup: this.handlePointerUp,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onKeypress: this.handleKeypress // Accessibility properties\n ,\n role: togglable ? 'checkbox' : undefined,\n attrs: this.v3 ? undefined : {\n role: togglable ? 'checkbox' : undefined,\n \"aria-disabled\": this.$props.disabled || undefined,\n \"aria-checked\": togglable ? this.currentActive : undefined\n },\n \"aria-disabled\": this.$props.disabled || undefined,\n \"aria-checked\": togglable ? this.currentActive : undefined\n }, [iconElement.call(this), defaultSlot]);\n }\n};\nvar ButtonVue3 = Button;\nexport { Button, ButtonVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getDefaultSlots } from '@progress/kendo-vue-common'; // tslint:enable:max-line-length\n\nvar ButtonWrap = {\n name: 'KendoButtonWrap',\n props: {},\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n return defaultSlot[0];\n }\n};\nvar ButtonWrapVue3 = ButtonWrap;\nexport { ButtonWrap, ButtonWrapVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { classNames, getDefaultSlots, validatePackage } from '@progress/kendo-vue-common';\nimport { ButtonWrap } from './ButtonWrap';\nimport { packageMetadata } from './package-metadata';\nimport util from './util';\nvar styles = util.styles; // tslint:enable:max-line-length\n\nvar ButtonGroup = {\n name: 'KendoButtonGroup',\n props: {\n disabled: {\n type: Boolean,\n default: undefined\n },\n width: String,\n dir: {\n type: String,\n default: function _default() {\n return undefined;\n }\n }\n },\n created: function created() {\n validatePackage(packageMetadata);\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _a;\n\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n\n var renderButton = function renderButton(child, index, isLast, isRtl) {\n var _a;\n\n var className = classNames((_a = {}, _a[styles['state-disabled']] = this.$props.disabled, _a[styles['group-start']] = isRtl ? isLast : index === 0, _a[styles['group-end']] = isRtl ? index === 0 : isLast, _a));\n return h(ButtonWrap, {\n class: className,\n attrs: this.v3 ? undefined : {\n 'aria-disabled': this.$props.disabled\n },\n 'aria-disabled': this.$props.disabled\n }, this.v3 ? function () {\n return [child];\n } : [child]);\n };\n\n var mapButtons = function mapButtons(children) {\n var _this = this;\n\n var count = children.length;\n var rtl = this.$props.dir !== undefined ? this.$props.dir === 'rtl' : this.$el && getComputedStyle(this.$el).direction === 'rtl' || false;\n return children.map(function (child, index) {\n if (_this.isValidButton(child)) {\n return renderButton.call(_this, child, index, index === count - 1, rtl);\n }\n\n return child;\n });\n };\n\n var groupClasses = classNames([styles['button-group']], (_a = {}, _a[styles['state-disabled']] = this.$props.disabled, _a[styles['button-group-stretched']] = !!this.$props.width, _a));\n return h(\"div\", {\n style: {\n width: this.width\n },\n width: this.$props.width,\n attrs: this.v3 ? undefined : {\n width: this.$props.width,\n dir: this.$props.dir // Accessibility properties\n ,\n role: 'group',\n \"aria-disabled\": this.$props.disabled,\n \"aria-multiselectable\": true\n },\n dir: this.$props.dir,\n role: 'group',\n \"aria-disabled\": this.$props.disabled,\n \"aria-multiselectable\": true,\n \"class\": groupClasses\n }, [mapButtons.call(this, defaultSlot)]);\n },\n methods: {\n isValidButton: function isValidButton(child) {\n return child && child.tag && child.tag.toLowerCase().indexOf('button') !== -1 || child.componentOptions && child.componentOptions.tag && child.componentOptions.tag.toLowerCase().indexOf('button') !== -1 || child.type && child.type.name && child.type.name.toLowerCase().indexOf('kendobutton') !== -1;\n }\n }\n};\nvar ButtonGroupVue3 = ButtonGroup;\nexport { ButtonGroup, ButtonGroupVue3 };","/**\n * @hidden\n */\nexport var DATA_ACTION;\n\n(function (DATA_ACTION) {\n DATA_ACTION[\"remove\"] = \"remove\";\n DATA_ACTION[\"add\"] = \"add\";\n DATA_ACTION[\"reorder\"] = \"reorder\";\n})(DATA_ACTION || (DATA_ACTION = {}));\n/**\n * @hidden\n */\n\n\nexport var dataReducer = function dataReducer(state, action) {\n switch (action.type) {\n case DATA_ACTION.add:\n // TODO v2\n break;\n\n case DATA_ACTION.remove:\n return state.filter(function (i) {\n return i[action.valueField] !== action.payload;\n });\n\n case DATA_ACTION.reorder:\n // TODO v2\n break;\n\n default:\n return state;\n }\n};","var __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n};\n/**\n * @hidden\n */\n\n\nexport var SELECTION_TYPE;\n\n(function (SELECTION_TYPE) {\n SELECTION_TYPE[\"single\"] = \"single\";\n SELECTION_TYPE[\"multiple\"] = \"multiple\";\n SELECTION_TYPE[\"none\"] = \"none\";\n})(SELECTION_TYPE || (SELECTION_TYPE = {}));\n/**\n * @hidden\n */\n\n\nexport var SELECTION_ACTION;\n\n(function (SELECTION_ACTION) {\n SELECTION_ACTION[\"toggle\"] = \"toggle\";\n SELECTION_ACTION[\"remove\"] = \"remove\";\n})(SELECTION_ACTION || (SELECTION_ACTION = {}));\n/**\n * @hidden\n */\n\n\nexport var selectionReducer = function selectionReducer(state, action) {\n switch (action.selection) {\n case SELECTION_TYPE.single:\n switch (action.type) {\n case SELECTION_ACTION.toggle:\n {\n if (!Array.isArray(state) || state === null) {\n return action.payload === state ? null : action.payload;\n }\n\n throw new Error('State cannot be an array in single selection');\n }\n\n case SELECTION_ACTION.remove:\n {\n return action.payload === state ? null : state;\n }\n\n default:\n return state;\n }\n\n case SELECTION_TYPE.multiple:\n switch (action.type) {\n case SELECTION_ACTION.toggle:\n {\n if (Array.isArray(state)) {\n return state.some(function (i) {\n return i === action.payload;\n }) ? state.filter(function (i) {\n return i !== action.payload;\n }) : __spreadArrays(state, [action.payload]);\n }\n\n if (state === null) {\n return [action.payload];\n }\n\n throw new Error('State cannot be non-array in multiple selection');\n }\n\n case SELECTION_ACTION.remove:\n {\n if (Array.isArray(state)) {\n return state.some(function (i) {\n return i === action.payload;\n }) ? state.filter(function (i) {\n return i !== action.payload;\n }) : __spreadArrays(state, [action.payload]);\n }\n\n return state;\n }\n\n default:\n return state;\n }\n\n case SELECTION_TYPE.none:\n return null;\n\n default:\n return state;\n }\n};","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref; // import { ChipListSelectionContext, ChipListFocusContext, ChipListDataContext } from './ChipList';\n\nimport { classNames, getTabIndex, Keys, noop, validatePackage } from '@progress/kendo-vue-common';\nimport { FOCUS_ACTION } from './focus-reducer';\nimport { DATA_ACTION } from './data-reducer';\nimport { SELECTION_ACTION } from './selection-reducer';\nimport { packageMetadata } from '../package-metadata';\n/**\n * @hidden\n */\n\n/**\n * Represents the default `Chip` component.\n */\n\nvar Chip = {\n name: 'KendoVueChip',\n props: {\n id: String,\n text: String,\n value: [String, Object],\n type: String,\n dir: {\n type: String,\n default: function _default() {\n return 'ltr';\n }\n },\n removable: {\n type: Boolean,\n default: false\n },\n removeIcon: {\n type: String,\n default: function _default() {\n return 'k-i-close-circle';\n }\n },\n disabled: {\n type: Boolean,\n default: false\n },\n icon: String,\n selectedIcon: {\n type: String,\n default: function _default() {\n return 'k-i-check';\n }\n },\n look: {\n type: String,\n default: function _default() {\n return 'solid';\n }\n },\n dataItem: Object,\n selected: Boolean,\n ariaDescribedBy: String\n },\n // @ts-ignore\n emits: {\n 'click': null,\n 'keydown': null,\n 'blur': null,\n 'focus': null,\n 'remove': null\n },\n inject: {\n kendoSelection: {\n default: {\n value: null\n }\n },\n kendoFocused: {\n default: {\n value: null\n }\n },\n kendoDataItems: {\n default: null\n },\n handleDispatchDataItems: {\n default: noop\n },\n handleDispatchSelection: {\n default: noop\n },\n handleDispatchFocus: {\n default: noop\n }\n },\n created: function created() {\n this.currentDir = undefined;\n validatePackage(packageMetadata);\n },\n mounted: function mounted() {\n this.chip = this.v3 ? this.chipRef : this.$refs.chip;\n this.currentDir = this.$props.dir !== undefined ? this.$props.dir === 'rtl' : this.$el && getComputedStyle(this.$el).direction === 'rtl' || false;\n },\n updated: function updated() {\n if (this.kendoFocused.value === this.$props.value && this.$el) {\n this.$el.focus();\n }\n },\n computed: {\n currentSelected: function currentSelected() {\n var _this = this;\n\n return this.$props.selected || (Array.isArray(this.kendoSelection.value) ? this.kendoSelection.value.some(function (i) {\n return i === _this.$props.value;\n }) : this.kendoSelection.value === this.$props.value);\n }\n },\n methods: {\n computedFocused: function computedFocused() {\n return this.kendoFocused.value === this.$props.value;\n },\n handleClick: function handleClick(event) {\n if (this.handleDispatchSelection) {\n this.handleDispatchSelection({\n type: SELECTION_ACTION.toggle,\n payload: this.$props.value,\n event: event\n });\n }\n\n this.$emit('click', {\n target: this.target,\n event: event\n });\n },\n handleRemove: function handleRemove(event) {\n event.stopPropagation();\n\n if (!this.$props.removable) {\n return;\n }\n\n if (this.handleDispatchFocus) {\n this.handleDispatchDataItems({\n type: DATA_ACTION.remove,\n payload: this.$props.value,\n event: event\n });\n this.handleDispatchFocus({\n type: FOCUS_ACTION.reset,\n payload: this.$props.value,\n event: event\n });\n this.handleDispatchSelection({\n type: SELECTION_ACTION.remove,\n payload: this.$props.value,\n event: event\n });\n }\n\n this.$emit('remove', {\n target: this.target,\n event: event\n });\n },\n handleKeyDown: function handleKeyDown(event) {\n switch (event.keyCode) {\n case Keys.left:\n if (this.handleDispatchFocus) {\n this.handleDispatchFocus({\n type: FOCUS_ACTION.prev,\n payload: this.$props.value,\n event: event\n });\n }\n\n break;\n\n case Keys.right:\n if (this.handleDispatchFocus) {\n this.handleDispatchFocus({\n type: FOCUS_ACTION.next,\n payload: this.$props.value,\n event: event\n });\n }\n\n break;\n\n case Keys.enter:\n if (this.handleDispatchFocus) {\n this.handleDispatchSelection({\n type: SELECTION_ACTION.toggle,\n payload: this.$props.value,\n event: event\n });\n }\n\n break;\n\n case Keys.delete:\n this.handleRemove(event);\n break;\n\n default:\n break;\n }\n\n this.$emit('keydown', {\n target: this.target,\n event: event\n });\n },\n handleFocus: function handleFocus(event) {\n if (this.handleDispatchFocus) {\n this.handleDispatchFocus({\n payload: this.$props.value,\n type: FOCUS_ACTION.current,\n event: event\n });\n }\n\n this.$emit('focus', {\n target: this.target,\n event: event\n });\n },\n handleBlur: function handleBlur(event) {\n this.$emit('blur', {\n target: this.target,\n event: event\n });\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var chipRef = ref(null);\n return {\n v3: v3,\n chipRef: chipRef\n };\n },\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n return h(\"div\", {\n role: this.$props.role,\n attrs: this.v3 ? undefined : {\n role: this.$props.role,\n id: this.$props.value,\n dir: this.currentDir,\n tabIndex: getTabIndex(this.$props.tabIndex, this.$props.disabled, undefined),\n \"aria-checked\": this.currentSelected,\n \"aria-disabled\": this.$props.disabled,\n \"aria-describedby\": this.$props.ariaDescribedBy\n },\n id: this.$props.value,\n ref: this.v3 ? function (el) {\n _this.chipRef = el;\n } : 'chip',\n dir: this.currentDir,\n tabIndex: getTabIndex(this.$props.tabIndex, this.$props.disabled, undefined),\n \"class\": classNames('k-chip', {\n 'k-rtl': this.currentDir === 'rtl',\n 'k-state-disabled': this.$props.disabled,\n 'k-state-selected': this.currentSelected,\n 'k-state-focus': this.computedFocused(),\n 'k-chip-success': this.$props.type === 'success',\n 'k-chip-warning': this.$props.type === 'warning',\n 'k-chip-error': this.$props.type === 'error',\n 'k-chip-info': this.$props.type === 'info',\n 'k-chip-has-icon': this.$props.icon,\n 'k-chip-outline': this.$props.look === 'outline' || this.$props.look === 'outlined',\n 'k-chip-solid': this.$props.look === 'solid' || this.$props.look === 'filled'\n }, this.$props.className),\n \"aria-checked\": this.currentSelected,\n \"aria-disabled\": this.$props.disabled,\n \"aria-describedby\": this.$props.ariaDescribedBy,\n onFocus: this.handleFocus,\n on: this.v3 ? undefined : {\n \"focus\": this.handleFocus,\n \"blur\": this.handleBlur,\n \"click\": this.handleClick,\n \"keydown\": this.handleKeyDown\n },\n onBlur: this.handleBlur,\n onClick: this.handleClick,\n onKeydown: this.handleKeyDown\n }, [this.currentSelected && h(\"span\", {\n \"class\": 'k-selected-icon-wrapper'\n }, [h(\"span\", {\n \"class\": \"k-selected-icon k-icon \" + this.$props.selectedIcon\n })]), this.$props.icon && h(\"span\", {\n \"class\": \"k-icon k-chip-icon \" + this.$props.icon\n }), h(\"span\", {\n \"class\": 'k-chip-content'\n }, [this.$props.text && h(\"span\", {\n \"aria-label\": this.$props.text,\n attrs: this.v3 ? undefined : {\n \"aria-label\": this.$props.text\n },\n \"class\": 'k-chip-label'\n }, [this.$props.text])]), this.$props.removable && h(\"span\", {\n \"class\": 'k-remove-icon',\n onClick: this.handleRemove,\n on: this.v3 ? undefined : {\n \"click\": this.handleRemove\n }\n }, [h(\"span\", {\n \"class\": \"k-icon \" + this.$props.removeIcon\n })])]);\n }\n};\nvar ChipVue3 = Chip;\nexport { Chip, ChipVue3 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nimport { getTabIndex, classNames, getListeners, templateRendering, getTemplate, validatePackage } from '@progress/kendo-vue-common';\nimport { selectionReducer } from './selection-reducer';\nimport { focusReducer } from './focus-reducer';\nimport { dataReducer } from './data-reducer';\nimport { Chip } from './Chip';\nimport { packageMetadata } from '../package-metadata';\n/**\n * @hidden\n */\n\n/**\n * Represents the default `ChipList` component.\n */\n\nvar ChipList = {\n name: 'KendoVueChipList',\n props: {\n id: String,\n tabIndex: Number,\n dataItems: Array,\n defaultDataItems: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n value: [Object, Array, String, Number],\n defaultValue: {\n type: [Object, Array, String, Number],\n default: function _default() {\n return null;\n }\n },\n selection: {\n type: String,\n default: function _default() {\n return 'none';\n }\n },\n textField: {\n type: String,\n default: function _default() {\n return 'text';\n }\n },\n valueField: {\n type: String,\n default: function _default() {\n return 'value';\n }\n },\n disabled: {\n type: Boolean,\n default: false\n },\n dir: {\n type: String,\n default: function _default() {\n return 'ltr';\n }\n },\n chip: [String, Function, Object],\n ariaLabelledBy: String,\n ariaDescribedBy: String\n },\n provide: function provide() {\n return {\n kendoSelection: this.currentValue,\n kendoFocused: this.currentFocused,\n kendoDataItems: this.computedDataItems,\n handleDispatchDataItems: this.handleDispatchDataItems,\n handleDispatchSelection: this.handleDispatchSelection,\n handleDispatchFocus: this.handleDispatchFocus\n };\n },\n created: function created() {\n validatePackage(packageMetadata);\n this.currentDataItems = this.$props.dataItems || this.$props.defaultDataItems;\n this.currentValue.value = this.$props.value || this.$props.defaultValue;\n },\n data: function data() {\n return {\n currentDataItems: [],\n currentDir: 'ltr',\n isRtl: false,\n currentFocused: {\n value: false\n },\n currentValue: {\n value: null\n }\n };\n },\n mounted: function mounted() {\n this.chipList = this.v3 ? this.chipListRef : this.$refs.chipList;\n this.currentDir = this.$props.dir !== undefined ? this.$props.dir : this.$el && getComputedStyle(this.$el).direction === 'rtl' || false;\n this.isRtl = this.currentDir === 'rtl';\n },\n computed: {\n computedDataItems: function computedDataItems() {\n return this.$props.dataItems || this.currentDataItems;\n },\n computedValue: function computedValue() {\n return this.$props.value || this.currentValue.value;\n },\n items: function items() {\n return this.computedDataItems.reduce(this.itemsReducer, []);\n }\n },\n methods: {\n handleDispatchSelection: function handleDispatchSelection(action) {\n var newState = selectionReducer(this.computedValue, __assign(__assign({}, action), {\n selection: this.$props.selection,\n state: this.computedValue\n }));\n this.handleChange(newState, action.event);\n this.currentValue.value = newState;\n },\n handleDispatchFocus: function handleDispatchFocus(action) {\n var newState = focusReducer(action.payload, __assign(__assign({}, action), {\n items: this.items\n }));\n this.currentFocused.value = newState;\n },\n handleDispatchDataItems: function handleDispatchDataItems(action) {\n var newState = dataReducer(this.computedDataItems, __assign(__assign({}, action), {\n state: this.computedDataItems,\n valueField: this.$props.valueField\n }));\n this.handleDataChange(newState, action.event);\n this.currentDataItems = newState;\n },\n handleChange: function handleChange(newValue, event) {\n if (this.$el) {\n this.$emit('change', {\n value: newValue,\n target: this.$el,\n event: event\n });\n }\n },\n handleDataChange: function handleDataChange(newData, event) {\n if (this.$el) {\n this.$emit('datachange', {\n value: newData,\n target: this.$el,\n event: event\n });\n }\n },\n itemsReducer: function itemsReducer(acc, current) {\n acc.push(current[this.$props.valueField || this.$props.valueField]);\n return acc;\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var chipListRef = ref(null);\n return {\n v3: v3,\n chipListRef: chipListRef\n };\n },\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n return h(\"div\", {\n ref: this.v3 ? function (el) {\n _this.chipListRef = el;\n } : 'chipList',\n role: 'listbox',\n attrs: this.v3 ? undefined : {\n role: 'listbox',\n id: this.$props.id,\n dir: this.currentDir,\n tabIndex: getTabIndex(this.$props.tabIndex, this.$props.disabled, undefined),\n \"aria-labelledby\": this.$props.ariaLabelledBy,\n \"aria-describedby\": this.$props.ariaDescribedBy\n },\n id: this.$props.id,\n dir: this.currentDir,\n style: this.$props.style,\n tabIndex: getTabIndex(this.$props.tabIndex, this.$props.disabled, undefined),\n \"class\": classNames('k-chip-list', {\n 'k-rtl': this.currentDir === 'rtl',\n 'k-selection-single': this.$props.selection === 'single',\n 'k-selection-multiple': this.$props.selection === 'multiple',\n 'k-state-disabled': this.$props.disabled\n }, this.$props.className),\n \"aria-labelledby\": this.$props.ariaLabelledBy,\n \"aria-describedby\": this.$props.ariaDescribedBy\n }, [this.computedDataItems.map(function (item) {\n var chipTemplate = templateRendering.call(this, this.$props.chip, getListeners.call(this));\n var chipDefaultRendering = // @ts-ignore function children\n h(Chip, {\n role: 'option',\n attrs: this.v3 ? undefined : {\n role: 'option',\n dataItem: item,\n text: item[this.$props.textField],\n value: item[this.$props.valueField]\n },\n dataItem: item,\n key: item[this.$props.valueField],\n text: item[this.$props.textField],\n value: item[this.$props.valueField]\n });\n return getTemplate.call(this, {\n h: h,\n template: chipTemplate,\n defaultRendering: chipDefaultRendering\n });\n }, this)]);\n }\n};\nvar ChipListVue3 = ChipList;\nexport { ChipList, ChipListVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nimport { classNames, getTabIndex, getTemplate } from '@progress/kendo-vue-common';\n/**\n * Represents the [Kendo UI for Vue FloatingActionButtonItem component]({% slug overview_floatingactionbutton %}).\n *\n */\n\nvar FloatingActionButtonItem = {\n name: 'KendoVueFloatingActionButtonItem',\n props: {\n disabled: Boolean,\n focused: Boolean,\n index: Number,\n icon: String,\n item: [String, Function, Object],\n dataItem: Object,\n text: String,\n tabIndex: Number,\n customProp: [String, Function, Object]\n },\n // @ts-ignore\n emits: {\n 'click': null,\n 'down': null\n },\n mounted: function mounted() {\n this.element = this.v3 ? this.elementRef : this.$refs.element;\n },\n computed: {\n itemClassNames: function itemClassNames() {\n return classNames('k-fab-item', {\n 'k-state-focus': this.focused,\n 'k-state-disabled': this.disabled\n });\n }\n },\n methods: {\n handleClick: function handleClick(event) {\n if (this.$props.index !== undefined && !this.$props.disabled) {\n this.$emit('click', event, this.$props.index);\n }\n },\n focusElement: function focusElement() {\n if (this.$el) {\n this.$el.focus();\n }\n },\n onDown: function onDown(event) {\n this.$emit('down', event);\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var elementRef = ref(null);\n return {\n v3: v3,\n elementRef: elementRef\n };\n },\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var _a = this.$props,\n disabled = _a.disabled,\n id = _a.id,\n tabIndex = _a.tabIndex,\n dataItem = _a.dataItem,\n customProp = _a.customProp;\n var text = dataItem.text,\n icon = dataItem.icon;\n var item;\n var itemDefaultRendering = h(\"li\", {\n ref: this.v3 ? function (el) {\n _this.elementRef = el;\n } : 'element',\n id: id,\n attrs: this.v3 ? undefined : {\n id: id,\n role: 'menuitem',\n tabIndex: getTabIndex(tabIndex, disabled),\n \"aria-disabled\": disabled,\n \"aria-label\": (text || '') + \" floatingactionbutton item\",\n customProp: customProp\n },\n \"class\": this.itemClassNames,\n role: 'menuitem',\n tabIndex: getTabIndex(tabIndex, disabled),\n \"aria-disabled\": disabled,\n \"aria-label\": (text || '') + \" floatingactionbutton item\",\n onClick: this.handleClick,\n on: this.v3 ? undefined : {\n \"click\": this.handleClick,\n \"mousedown\": this.onDown,\n \"pointerdown\": this.onDown\n },\n onMousedown: this.onDown,\n onPointerdown: this.onDown,\n customProp: customProp\n }, [text && h(\"span\", {\n \"class\": \"k-fab-item-text\"\n }, [text]), icon && h(\"span\", {\n \"class\": classNames(\"k-fab-item-icon k-icon k-i-\" + icon)\n })]);\n item = getTemplate.call(this, {\n h: h,\n template: this.$props.item,\n defaultRendering: itemDefaultRendering,\n additionalProps: this.$props,\n additionalListeners: {\n click: this.handleClick\n }\n });\n return item;\n }\n};\nvar FloatingActionButtonItemVue3 = FloatingActionButtonItem;\nexport { FloatingActionButtonItem, FloatingActionButtonItemVue3 };","/**\n * @hidden\n */\nexport var DEFAULT_OFFSET = '16px';\n/**\n * @hidden\n */\nexport var toStringValues = function (val) {\n if (typeof val === 'number') {\n return val + 'px';\n }\n return val;\n};\n/**\n * @hidden\n */\nexport var getAnchorAlign = function (fabAlign, rtl) {\n var align = { horizontal: (rtl ? 'right' : 'left'), vertical: 'bottom' };\n if (fabAlign.horizontal === 'end') {\n align.horizontal = rtl ? 'left' : 'right';\n }\n return align;\n};\n/**\n * @hidden\n */\nexport var getPopupAlign = function (fabAlign, rtl) {\n var align = { horizontal: (rtl ? 'right' : 'left'), vertical: 'top' };\n if (fabAlign.horizontal === 'end') {\n align.horizontal = rtl ? 'left' : 'right';\n }\n return align;\n};\n/**\n * @hidden\n */\nexport var getTextDirectionClass = function (rtl, hAlign) {\n var al = hAlign === 'end' ? 'end' : 'start';\n var directions = {\n rtl: { end: 'k-text-left', start: 'k-text-right' },\n ltr: { start: 'k-text-left', end: 'k-text-right' }\n };\n return directions[rtl][al];\n};\n/**\n * @hidden\n */\nexport var position = function (ref, align, alignOffset, isRtl) {\n var horizontal = align.horizontal;\n var vertical = align.vertical;\n if (ref) {\n var xFab = alignOffset && alignOffset.x !== undefined ?\n toStringValues(alignOffset.x) :\n DEFAULT_OFFSET;\n var xCenterFab = alignOffset && alignOffset.x !== undefined ?\n \"calc(50% + \" + toStringValues(alignOffset.x) + \")\" :\n '50%';\n var yFab = alignOffset && alignOffset.y !== undefined ?\n toStringValues(alignOffset.y) :\n DEFAULT_OFFSET;\n var yCenterFab = alignOffset && alignOffset.y !== undefined ?\n \"calc(50% + \" + toStringValues(alignOffset.y) + \")\" :\n '50%';\n ref.style.setProperty(horizontalPosition(align, isRtl), horizontal === 'center' ? xCenterFab : xFab);\n ref.style.setProperty(verticalPosition(align), vertical === 'middle' ? yCenterFab : yFab);\n if (isRtl) {\n if ((vertical === 'top' || vertical === 'bottom') && horizontal === 'start') {\n ref.style.setProperty('left', 'unset');\n }\n if (vertical === 'middle' && horizontal === 'end') {\n ref.style.setProperty('right', 'unset');\n }\n if (vertical === 'middle' && horizontal === 'start') {\n ref.style.setProperty('left', 'unset');\n }\n }\n }\n};\nvar horizontalPosition = function (align, isRtl) {\n var horizontal = align.horizontal;\n return {\n end: isRtl ? 'left' : 'right',\n center: 'left',\n start: isRtl ? 'right' : 'left'\n }[horizontal || 'end'];\n};\nvar verticalPosition = function (align) {\n return {\n top: 'top',\n middle: 'top',\n bottom: 'bottom'\n }[align.vertical || 'bottom'];\n};\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nimport { classNames, guid, Keys, getTabIndex, templateRendering, getListeners, validatePackage, canUseDOM } from '@progress/kendo-vue-common';\nimport { FloatingActionButtonItem } from './FloatingActionButtonItem';\nimport { packageMetadata } from '../package-metadata';\nimport { position, getAnchorAlign, getPopupAlign, getTextDirectionClass } from './utils';\nimport { Popup } from '@progress/kendo-vue-popup';\n/**\n * @hidden\n */\n\n/**\n * Represents the default `FloatingActionButton` component.\n */\n\nvar FloatingActionButton = {\n name: 'KendoVueFloatingActionButton',\n props: {\n id: String,\n dir: String,\n tabIndex: Number,\n accessKey: String,\n disabled: Boolean,\n icon: String,\n iconClass: String,\n items: [Object, Array],\n item: [String, Function, Object],\n text: String,\n alignOffset: Object,\n opened: {\n type: Boolean,\n default: undefined\n },\n align: {\n type: Object,\n default: function _default() {\n return {\n vertical: 'bottom',\n horizontal: 'end'\n };\n }\n },\n positionMode: {\n type: String,\n default: function _default() {\n return 'fixed';\n }\n },\n popupSettings: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n shape: {\n type: String,\n default: function _default() {\n return 'pill';\n }\n },\n size: {\n type: String,\n default: function _default() {\n return 'medium';\n }\n },\n themeColor: {\n type: String,\n default: function _default() {\n return 'primary';\n }\n }\n },\n // @ts-ignore\n emits: {\n 'click': null,\n 'mousedown': null,\n 'mouseup': null,\n 'open': null,\n 'close': null,\n 'itemclick': null,\n 'focus': null,\n 'blur': null,\n 'keydown': null\n },\n data: function data() {\n return {\n currentOpened: false,\n currentFocused: false,\n focusedIndex: -1,\n currentDir: 'ltr',\n isRtl: false\n };\n },\n created: function created() {\n validatePackage(packageMetadata);\n this.element = undefined;\n this._anchor = guid();\n this.listId = guid();\n this.buttonId = guid();\n },\n mounted: function mounted() {\n this.element = this.v3 ? this.kendoAnchorRef : this.$refs[this._anchor];\n this.list = this.v3 ? this.listRef : this.$refs.list;\n this.popup = this.v3 ? this.popupRef : this.$refs.popup;\n this.currentDir = this.$props.dir !== undefined ? this.$props.dir : this.$el && getComputedStyle(this.$el).direction === 'rtl' || false;\n this.isRtl = this.currentDir === 'rtl';\n\n if (this.opened !== undefined) {\n position(this.$el, this.$props.align, this.$props.alignOffset, this.isRtl);\n }\n },\n updated: function updated() {\n position(this.$el, this.$props.align, this.$props.alignOffset, this.isRtl);\n\n if (this.currentFocused && this.element) {\n this.element.focus();\n }\n },\n computed: {\n buttonClassNames: function buttonClassNames() {\n return classNames('k-fab', \"k-fab-\" + this.$props.themeColor, \"k-fab-\" + this.$props.shape, {\n 'k-fab-sm': this.$props.size === 'small',\n 'k-fab-md': this.$props.size === 'medium',\n 'k-fab-lg': this.$props.size === 'large',\n 'k-state-disabled': this.$props.disabled,\n 'k-state-focus': this.currentFocused\n }, \"k-\" + this.$props.align.vertical + \"-\" + this.$props.align.horizontal);\n },\n computedOpened: function computedOpened() {\n return this.$props.opened === undefined ? this.currentOpened : this.$props.opened;\n },\n rootClassNames: function rootClassNames() {\n return classNames({\n 'k-pos-absolute': this.$props.positionMode === 'absolute',\n 'k-pos-fixed': this.$props.positionMode === 'fixed'\n });\n }\n },\n methods: {\n dispatchPopupEvent: function dispatchPopupEvent(dispatchedEvent, isOpen) {\n if (!this.$props.items) {\n return;\n }\n\n this.$emit(isOpen ? 'open' : 'close', {\n event: dispatchedEvent,\n isOpened: !isOpen\n });\n },\n handleClick: function handleClick(event) {\n if (!event.target || this.$props.disabled) {\n return;\n }\n\n if (!this.$props.items) {\n this.$emit('click', event, undefined);\n } else {\n var currentOpenToggled = !this.computedOpened;\n this.currentOpened = currentOpenToggled;\n this.currentFocused = true;\n this.focusedIndex = currentOpenToggled ? 0 : -1;\n this.dispatchPopupEvent(event, !this.computedOpened);\n }\n },\n handleFocus: function handleFocus(event) {\n this.currentFocused = true;\n this.focusedIndex = this.computedOpened ? 0 : -1;\n this.$emit('focus', event, undefined);\n },\n handleBlur: function handleBlur(event) {\n this.currentFocused = false;\n this.currentOpened = false;\n this.focusedIndex = -1;\n this.$emit('blur', event, undefined);\n var fireCloseEvent = this.computedOpened;\n\n if (fireCloseEvent) {\n this.dispatchPopupEvent(event, false);\n }\n },\n handleMouseDown: function handleMouseDown(event) {\n event.preventDefault();\n this.$emit('mousedown', event);\n },\n handleMouseUp: function handleMouseUp(event) {\n this.$emit('mouseup', event);\n },\n dispatchItemClickEvent: function dispatchItemClickEvent(dispatchedEvent, index) {\n if (!this.$props.items) {\n return;\n }\n\n if (!this.$props.items[index].disabled) {\n this.$emit('itemclick', dispatchedEvent, {\n itemProps: this.$props.items[index],\n itemIndex: index\n });\n }\n },\n handleItemClick: function handleItemClick(event, clickedItemIndex) {\n if (!event.target || !this.$props.items) {\n return;\n }\n\n this.focusedIndex = clickedItemIndex;\n this.currentOpened = false;\n this.dispatchItemClickEvent(event, clickedItemIndex);\n this.dispatchPopupEvent(event, false);\n },\n handleItemDown: function handleItemDown(event) {\n if (canUseDOM && document.activeElement === this.element) {\n event.preventDefault();\n }\n },\n handleKeyDown: function handleKeyDown(event) {\n var currIndex = this.focusedIndex;\n var maxNavIndex = this.$props.items ? this.$props.items.length - 1 : -1;\n var isAtBottom = this.$props.align.vertical === 'bottom';\n\n switch (event.keyCode) {\n case Keys.enter:\n case Keys.space:\n if (currIndex >= 0) {\n this.dispatchItemClickEvent(event, currIndex);\n }\n\n event.preventDefault();\n this.currentOpened = !this.currentOpened;\n this.focusedIndex = !this.currentOpened ? 0 : -1;\n break;\n\n case Keys.esc:\n event.preventDefault();\n this.currentOpened = false;\n this.focusedIndex = -1;\n break;\n\n case Keys.home:\n event.preventDefault();\n this.focusedIndex = 0;\n break;\n\n case Keys.end:\n event.preventDefault();\n this.focusedIndex = maxNavIndex;\n break;\n\n case Keys.down:\n case Keys.right:\n event.preventDefault();\n\n if (currIndex < maxNavIndex && !isAtBottom) {\n this.focusedIndex = currIndex + 1;\n }\n\n if (currIndex > 0 && isAtBottom) {\n this.focusedIndex = currIndex - 1;\n }\n\n break;\n\n case Keys.up:\n case Keys.left:\n event.preventDefault();\n\n if (currIndex > 0 && !isAtBottom) {\n this.focusedIndex = currIndex - 1;\n }\n\n if (currIndex < maxNavIndex && isAtBottom) {\n this.focusedIndex = currIndex + 1;\n }\n\n break;\n\n default:\n break;\n }\n\n this.$emit('keydown', event, undefined);\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var chipRef = ref(null);\n var kendoAnchorRef = ref(null);\n return {\n v3: v3,\n chipRef: chipRef,\n kendoAnchorRef: kendoAnchorRef\n };\n },\n render: function render(createElement) {\n var _this2 = this;\n\n var _this = this;\n\n var h = gh || createElement;\n var _a = this.$props,\n align = _a.align,\n disabled = _a.disabled,\n icon = _a.icon,\n iconClass = _a.iconClass,\n id = _a.id,\n items = _a.items,\n text = _a.text,\n tabIndex = _a.tabIndex,\n accessKey = _a.accessKey,\n popupSettings = _a.popupSettings;\n var item = templateRendering.call(this, this.$props.item, getListeners.call(this));\n\n var fabItems = function fabItems() {\n return items && items.map(function (element, index) {\n return (// @ts-ignore function children\n h(FloatingActionButtonItem, {\n key: index,\n index: index,\n attrs: this.v3 ? undefined : {\n index: index,\n id: this.listId + \"-\" + index,\n disabled: disabled || element.disabled,\n focused: this.focusedIndex === index,\n dataItem: element,\n item: item\n },\n id: this.listId + \"-\" + index,\n disabled: disabled || element.disabled,\n focused: this.focusedIndex === index,\n dataItem: element,\n item: item,\n \"class\": classNames(element.className, getTextDirectionClass(this.currentDir || 'ltr', align.horizontal)),\n onClick: this.handleItemClick,\n on: this.v3 ? undefined : {\n \"click\": this.handleItemClick,\n \"down\": this.handleItemDown\n },\n onDown: this.handleItemDown\n })\n );\n }, this);\n };\n\n var isIconFab = icon && !text;\n var fabWidth = this.element ? this.element.offsetWidth : 0;\n var iconWidth = 32;\n var spacing = fabWidth / 2 - iconWidth / 2;\n return h(\"div\", {\n \"class\": this.rootClassNames\n }, [h(\"button\", {\n ref: this.v3 ? function (el) {\n _this.kendoAnchorRef = el;\n } : this._anchor,\n id: id || this.buttonId,\n attrs: this.v3 ? undefined : {\n id: id || this.buttonId,\n role: items ? 'menubutton' : 'button',\n type: 'button',\n \"aria-disabled\": disabled,\n \"aria-expanded\": items ? this.computedOpened : undefined,\n \"aria-haspopup\": items ? true : false,\n \"aria-label\": (text || '') + \" floatingactionbutton\",\n \"aria-owns\": items ? this.listId : undefined,\n \"aria-activedescendant\": this.focusedIndex >= 0 && items ? this.listId + \"-\" + this.focusedIndex : undefined,\n tabIndex: getTabIndex(tabIndex, disabled),\n accessKey: accessKey,\n dir: this.currentDir,\n disabled: disabled\n },\n role: items ? 'menubutton' : 'button',\n type: 'button',\n \"aria-disabled\": disabled,\n \"aria-expanded\": items ? this.computedOpened : undefined,\n \"aria-haspopup\": items ? true : false,\n \"aria-label\": (text || '') + \" floatingactionbutton\",\n \"aria-owns\": items ? this.listId : undefined,\n \"aria-activedescendant\": this.focusedIndex >= 0 && items ? this.listId + \"-\" + this.focusedIndex : undefined,\n tabIndex: getTabIndex(tabIndex, disabled),\n accessKey: accessKey,\n dir: this.currentDir,\n disabled: disabled,\n \"class\": this.buttonClassNames,\n onClick: this.handleClick,\n on: this.v3 ? undefined : {\n \"click\": this.handleClick,\n \"mousedown\": this.handleMouseDown,\n \"mouseup\": this.handleMouseUp,\n \"focusin\": this.handleFocus,\n \"blur\": this.handleBlur,\n \"keydown\": this.handleKeyDown\n },\n onMousedown: this.handleMouseDown,\n onMouseup: this.handleMouseUp,\n onFocusin: this.handleFocus,\n onBlur: this.handleBlur,\n onKeydown: this.handleKeyDown\n }, [icon ? h(\"span\", {\n role: \"presentation\",\n attrs: this.v3 ? undefined : {\n role: \"presentation\"\n },\n \"class\": classNames(\"k-fab-icon k-icon k-i-\" + icon)\n }) : iconClass ? h(\"span\", {\n role: \"presentation\",\n attrs: this.v3 ? undefined : {\n role: \"presentation\"\n },\n \"class\": iconClass\n }) : null, text && h(\"span\", {\n \"class\": \"k-fab-text\"\n }, [text])]), // @ts-ignore function children\n h(Popup, {\n ref: this.v3 ? function (el) {\n _this.popupRef = el;\n } : 'popup',\n show: this.computedOpened,\n attrs: this.v3 ? undefined : {\n show: this.computedOpened,\n anchor: this._anchor,\n animate: popupSettings.animate,\n popupClass: classNames('k-popup-transparent k-fab-popup', popupSettings.popupClass),\n anchorAlign: popupSettings.anchorAlign || getAnchorAlign(align, this.isRtl),\n popupAlign: popupSettings.popupAlign || getPopupAlign(align, this.isRtl)\n },\n anchor: this._anchor,\n animate: popupSettings.animate,\n popupClass: classNames('k-popup-transparent k-fab-popup', popupSettings.popupClass),\n anchorAlign: popupSettings.anchorAlign || getAnchorAlign(align, this.isRtl),\n popupAlign: popupSettings.popupAlign || getPopupAlign(align, this.isRtl),\n style: {\n boxShadow: 'none'\n }\n }, this.v3 ? function () {\n return [h(\"ul\", {\n ref: _this2.v3 ? function (el) {\n _this.listRef = el;\n } : 'list',\n role: 'menu',\n attrs: _this2.v3 ? undefined : {\n role: 'menu',\n \"aria-labelledby\": id,\n id: _this2.listId\n },\n \"aria-labelledby\": id,\n id: _this2.listId,\n \"class\": classNames('k-fab-items', {\n 'k-fab-items-bottom': align.vertical !== 'bottom',\n 'k-fab-items-top': align.vertical === 'bottom'\n }),\n style: {\n paddingLeft: isIconFab ? spacing + 'px' : undefined,\n paddingRight: isIconFab ? spacing + 'px' : undefined\n }\n }, [fabItems.call(_this2)])];\n } : [h(\"ul\", {\n ref: _this2.v3 ? function (el) {\n _this.listRef = el;\n } : 'list',\n role: 'menu',\n attrs: _this2.v3 ? undefined : {\n role: 'menu',\n \"aria-labelledby\": id,\n id: _this2.listId\n },\n \"aria-labelledby\": id,\n id: _this2.listId,\n \"class\": classNames('k-fab-items', {\n 'k-fab-items-bottom': align.vertical !== 'bottom',\n 'k-fab-items-top': align.vertical === 'bottom'\n }),\n style: {\n paddingLeft: isIconFab ? spacing + 'px' : undefined,\n paddingRight: isIconFab ? spacing + 'px' : undefined\n }\n }, [fabItems.call(_this2)])])]);\n }\n};\nvar FloatingActionButtonVue3 = FloatingActionButton;\nexport { FloatingActionButton, FloatingActionButtonVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getTemplate } from '@progress/kendo-vue-common'; // tslint:enable:max-line-length\n\nvar ButtonItem = {\n name: 'KendoButtonItem',\n // @ts-ignore\n emits: {\n click: null,\n down: null\n },\n props: {\n focused: Boolean,\n index: Number,\n item: Object,\n render: [String, Object, Function],\n dataItem: [String, Object],\n id: String,\n textField: String\n },\n computed: {\n wrapperClass: function wrapperClass() {\n var _a = this.$props,\n dataItem = _a.dataItem,\n focused = _a.focused;\n return {\n 'k-item': true,\n 'k-state-focused': focused,\n 'k-state-selected': dataItem.selected,\n 'k-state-disabled': dataItem.disabled\n };\n }\n },\n methods: {\n onClick: function onClick(event) {\n this.$emit('click', event, this.$props.index);\n },\n onDown: function onDown(event) {\n this.$emit('down', event, this.$props.index);\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n dataItem = _a.dataItem,\n id = _a.id,\n render = _a.render;\n\n var renderContent = function renderContent() {\n var _a = this.$props,\n textField = _a.textField,\n index = _a.index;\n var text = dataItem.text !== undefined ? dataItem.text : textField ? dataItem[textField] : dataItem;\n var iconClass = dataItem.icon ? \"k-icon k-i-\" + dataItem.icon : dataItem.iconClass;\n var itemContent = [iconClass && h(\"span\", {\n \"class\": iconClass,\n role: \"presentation\",\n attrs: this.v3 ? undefined : {\n role: \"presentation\"\n },\n key: \"icon\"\n }), dataItem.imageUrl && h(\"img\", {\n \"class\": \"k-image\",\n alt: \"\",\n attrs: this.v3 ? undefined : {\n alt: \"\",\n src: dataItem.imageUrl,\n role: \"presentation\"\n },\n src: dataItem.imageUrl,\n role: \"presentation\",\n key: \"image\"\n }), text];\n return getTemplate.call(this, {\n h: h,\n template: this.$props.dataItem.render || render,\n defaultRendering: itemContent,\n additionalProps: {\n item: dataItem,\n itemIndex: index\n }\n });\n };\n\n var item = h(\"li\", {\n id: id,\n attrs: this.v3 ? undefined : {\n id: id,\n role: \"menuItem\",\n \"aria-disabled\": dataItem.disabled || undefined\n },\n \"class\": this.wrapperClass,\n onClick: this.onClick,\n on: this.v3 ? undefined : {\n \"click\": this.onClick,\n \"mousedown\": this.onDown,\n \"pointerdown\": this.onDown\n },\n onMousedown: this.onDown,\n onPointerdown: this.onDown,\n role: \"menuItem\",\n \"aria-disabled\": dataItem.disabled || undefined\n }, [renderContent.call(this)]);\n return item;\n }\n};\nvar ButtonItemVue3 = ButtonItem;\nexport { ButtonItem, ButtonItemVue3 };","import { Keys } from '@progress/kendo-vue-common';\n/**\n * @hidden\n */\nvar navigate = function (focusedIndex, keyCode, altKey, total) {\n if (altKey) {\n return focusedIndex;\n }\n switch (keyCode) {\n case Keys.enter:\n case Keys.space:\n case Keys.esc:\n return -1;\n case Keys.up:\n case Keys.left:\n return Math.max(0, focusedIndex - 1);\n case Keys.down:\n case Keys.right:\n return Math.min(total - 1, focusedIndex + 1);\n default:\n return focusedIndex;\n }\n};\nexport default navigate;\n","/**\n * @hidden\n */\nexport function getAnchorAlign(isDirectionRightToLeft) {\n var align = { horizontal: 'left', vertical: 'bottom' };\n if (isDirectionRightToLeft) {\n align.horizontal = 'right';\n }\n return align;\n}\n/**\n * @hidden\n */\nexport function getPopupAlign(isDirectionRightToLeft) {\n var align = { horizontal: 'left', vertical: 'top' };\n if (isDirectionRightToLeft) {\n align.horizontal = 'right';\n }\n return align;\n}\n","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nimport { Button as KendoButton } from '../Button';\nimport { classNames, guid, Keys } from '@progress/kendo-vue-common';\nimport { ButtonItem } from './ButtonItem';\nimport navigation from './utils/navigation';\nimport { Popup } from '@progress/kendo-vue-popup';\nimport { getAnchorAlign, getPopupAlign } from './utils/popup';\nimport { validatePackage, templateRendering, getListeners, canUseDOM } from '@progress/kendo-vue-common';\nimport { packageMetadata } from '../package-metadata';\nimport util from '../util';\nvar styles = util.styles; // tslint:enable:max-line-length\n\nvar SplitButton = {\n name: 'KendoSplitButton',\n // @ts-ignore\n emits: {\n focus: null,\n blur: null,\n buttonclick: null,\n itemclick: null,\n open: null,\n close: null\n },\n props: {\n accessKey: String,\n text: String,\n items: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n textField: String,\n tabIndex: Number,\n disabled: Boolean,\n icon: String,\n opened: {\n type: Boolean,\n default: undefined\n },\n iconClass: String,\n imageUrl: String,\n popupSettings: Object,\n itemRender: [String, Function, Object],\n item: [String, Function, Object],\n look: String,\n className: String,\n buttonClass: String,\n dir: String\n },\n data: function data() {\n return {\n focused: false,\n focusedIndex: -1,\n currentOpened: false\n };\n },\n created: function created() {\n this._blurTimeout = null;\n this._anchor = guid();\n this.mainButton = null;\n this.guid = guid();\n this.buttonsData = [];\n validatePackage(packageMetadata);\n },\n mounted: function mounted() {\n this.mainButton = this.$refs[this._anchor]; // If this.$props.opened is true during the initial render, the popup is not aligned.\n\n if (this.$props.dir === undefined && this.isRtl() || this.computedOpened) {\n this.$forceUpdate();\n }\n },\n updated: function updated() {\n if (this.focused && this.element()) {\n this.mainButton = this.$refs[this._anchor];\n this.mainButton.focus();\n }\n },\n computed: {\n computedOpened: function computedOpened() {\n return this.$props.opened === undefined ? this.currentOpened : this.$props.opened;\n },\n wrapperClass: function wrapperClass() {\n var _a;\n\n return _a = {\n 'k-widget': true,\n 'k-split-button': true,\n 'k-button-group': true\n }, _a[styles[\"\" + this.$props.look]] = true, _a['k-state-focused'] = this.focused, _a;\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoAnchorRef = ref(null);\n return {\n v3: v3,\n kendoAnchorRef: kendoAnchorRef\n };\n },\n render: function render(createElement) {\n var _this3 = this;\n\n var _this = this;\n\n var h = gh || createElement;\n this.buttonsData = this.$props.items;\n var rtl = this.isRtl();\n var dir = rtl ? 'rtl' : undefined;\n var _a = this.$props,\n tabIndex = _a.tabIndex,\n disabled = _a.disabled;\n\n var renderChildItems = function renderChildItems() {\n var _a = this.$props,\n item = _a.item,\n itemRender = _a.itemRender,\n textField = _a.textField;\n return this.buttonsData.length > 0 ? this.buttonsData.map(function (dataItem, index) {\n var currentDataItem = typeof dataItem !== 'string' ? __assign(__assign({}, dataItem), {\n render: templateRendering.call(this, dataItem.render, getListeners.call(this))\n }) : dataItem;\n return (// @ts-ignore\n h(ButtonItem, {\n dataItem: currentDataItem,\n attrs: this.v3 ? undefined : {\n dataItem: currentDataItem,\n textField: textField,\n focused: this.focusedIndex === index,\n render: templateRendering.call(this, itemRender, getListeners.call(this)),\n item: item,\n index: index,\n id: this.guid + \"-\" + index\n },\n textField: textField,\n focused: this.focusedIndex === index,\n onClick: this.onItemClick,\n on: this.v3 ? undefined : {\n \"click\": this.onItemClick,\n \"down\": this.onItemDown\n },\n onDown: this.onItemDown,\n render: templateRendering.call(this, itemRender, getListeners.call(this)),\n item: item,\n key: index,\n index: index,\n id: this.guid + \"-\" + index\n })\n );\n }, this) : null;\n };\n\n var renderPopup = function renderPopup() {\n var _this2 = this;\n\n var _a = this.$props.popupSettings,\n popupSettings = _a === void 0 ? {} : _a;\n return (// @ts-ignore function children\n h(Popup, {\n anchor: this._anchor,\n attrs: this.v3 ? undefined : {\n anchor: this._anchor,\n show: this.computedOpened,\n animate: popupSettings.animate,\n popupClass: classNames('k-list-container k-reset k-group', popupSettings.popupClass),\n anchorAlign: popupSettings.anchorAlign || getAnchorAlign(rtl),\n popupAlign: popupSettings.popupAlign || getPopupAlign(rtl)\n },\n show: this.computedOpened,\n animate: popupSettings.animate,\n popupClass: classNames('k-list-container k-reset k-group', popupSettings.popupClass),\n anchorAlign: popupSettings.anchorAlign || getAnchorAlign(rtl),\n popupAlign: popupSettings.popupAlign || getPopupAlign(rtl),\n style: rtl ? {\n direction: 'rtl'\n } : undefined\n }, this.v3 ? function () {\n return [h(\"ul\", {\n \"class\": \"k-list k-reset\",\n role: \"menu\",\n attrs: _this2.v3 ? undefined : {\n role: \"menu\",\n id: _this2.guid\n },\n id: _this2.guid\n }, [renderChildItems.call(_this2)])];\n } : [h(\"ul\", {\n \"class\": \"k-list k-reset\",\n role: \"menu\",\n attrs: _this2.v3 ? undefined : {\n role: \"menu\",\n id: _this2.guid\n },\n id: _this2.guid\n }, [renderChildItems.call(_this2)])])\n );\n };\n\n return h(\"div\", {\n \"class\": this.wrapperClass,\n onKeydown: this.onKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.onKeyDown,\n \"focusin\": this.onFocus,\n \"focusout\": this.onBlur\n },\n onFocusin: this.onFocus,\n onFocusout: this.onBlur,\n dir: dir,\n attrs: this.v3 ? undefined : {\n dir: dir\n }\n }, [// @ts-ignore function children\n h(KendoButton, {\n onClick: function onClick(event) {\n return _this.onItemClick(event, -1);\n },\n on: this.v3 ? undefined : {\n \"click\": function onClick(event) {\n return _this.onItemClick(event, -1);\n }\n },\n disabled: disabled || undefined,\n attrs: this.v3 ? undefined : {\n disabled: disabled || undefined,\n tabIndex: tabIndex,\n accessKey: this.$props.accessKey,\n icon: this.$props.icon,\n iconClass: this.$props.iconClass,\n imageUrl: this.$props.imageUrl,\n look: this.$props.look,\n dir: dir,\n type: \"button\",\n \"aria-disabled\": disabled,\n \"aria-haspopup\": true,\n \"aria-expanded\": this.computedOpened,\n \"aria-label\": this.$props.text + \" splitbutton\",\n \"aria-owns\": this.guid,\n \"aria-activedescendant\": this.focusedIndex !== undefined && this.focusedIndex >= 0 ? this.guid + \"-\" + this.focusedIndex : undefined\n },\n tabIndex: tabIndex,\n accessKey: this.$props.accessKey,\n \"class\": this.$props.buttonClass,\n icon: this.$props.icon,\n iconClass: this.$props.iconClass,\n imageUrl: this.$props.imageUrl,\n look: this.$props.look,\n dir: dir,\n ref: this._anchor,\n type: \"button\",\n \"aria-disabled\": disabled,\n \"aria-haspopup\": true,\n \"aria-expanded\": this.computedOpened,\n \"aria-label\": this.$props.text + \" splitbutton\",\n \"aria-owns\": this.guid,\n \"aria-activedescendant\": this.focusedIndex !== undefined && this.focusedIndex >= 0 ? this.guid + \"-\" + this.focusedIndex : undefined\n }, this.v3 ? function () {\n return [_this3.$props.text];\n } : [_this3.$props.text]), // @ts-ignore\n h(KendoButton, {\n icon: \"arrow-s\",\n attrs: this.v3 ? undefined : {\n icon: \"arrow-s\",\n disabled: disabled || undefined,\n tabIndex: -1,\n look: this.$props.look,\n dir: dir,\n \"aria-label\": \"menu toggling button\"\n },\n disabled: disabled || undefined,\n tabIndex: -1,\n look: this.$props.look,\n onClick: this.onSplitPartClick,\n on: this.v3 ? undefined : {\n \"click\": this.onSplitPartClick,\n \"mousedown\": this.onDownSplitPart,\n \"pointerdown\": this.onDownSplitPart\n },\n onMousedown: this.onDownSplitPart,\n onPointerdown: this.onDownSplitPart,\n dir: dir,\n \"aria-label\": \"menu toggling button\"\n }), renderPopup.call(this)]);\n },\n methods: {\n element: function element() {\n return this.mainButton;\n },\n onKeyDown: function onKeyDown(event) {\n if (event.altKey) {\n if (!this.computedOpened && event.keyCode === Keys.down) {\n this.dispatchPopupEvent(event, true);\n this.focusedIndex = 0;\n this.currentOpened = true;\n } else if (this.computedOpened && event.keyCode === Keys.up) {\n this.dispatchPopupEvent(event, false);\n this.focusedIndex = -1;\n this.currentOpened = false;\n }\n\n return;\n }\n\n var newState = undefined;\n\n if (event.keyCode === Keys.enter || event.keyCode === Keys.space) {\n // Prevent default because otherwise when an item is selected\n // click on the default button gets emitted which opens the popup again.\n event.preventDefault();\n this.dispatchClickEvent(event, this.focusedIndex);\n\n if (this.focusedIndex !== undefined && this.focusedIndex >= 0) {\n newState = {\n focusedIndex: this.computedOpened ? -1 : 0,\n currentOpened: !this.computedOpened\n };\n this.dispatchPopupEvent(event, newState.currentOpened);\n }\n } else if (this.computedOpened && event.keyCode === Keys.esc) {\n newState = {\n focusedIndex: -1,\n currentOpened: false\n };\n this.dispatchPopupEvent(event, newState.currentOpened);\n }\n\n if (this.computedOpened) {\n var newFocused = navigation(this.focusedIndex, event.keyCode, event.altKey, this.buttonsData.length);\n\n if (newFocused !== this.focusedIndex) {\n newState = newState || {}; // @ts-ignore\n\n newState.focusedIndex = newFocused;\n }\n\n var arrowKey = event.keyCode === Keys.up || event.keyCode === Keys.down || event.keyCode === Keys.left || event.keyCode === Keys.right;\n\n if (!event.altKey && arrowKey) {\n // Needed to notify the parent listeners that event is handled.\n event.preventDefault();\n }\n }\n\n if (newState) {\n this.focusedIndex = newState.focusedIndex;\n this.focused = newState.focused;\n\n if (newState.currentOpened !== undefined) {\n this.currentOpened = newState.currentOpened;\n }\n }\n },\n onFocus: function onFocus(event) {\n if (!this.focused) {\n this.$emit('focus', event, this, undefined);\n this.focused = true;\n }\n\n this.focusedIndex = -1;\n clearTimeout(this._blurTimeout);\n },\n onItemClick: function onItemClick(event, clickedItemIndex) {\n var opened = this.computedOpened;\n\n if (opened) {\n this.focusedIndex = 0;\n this.currentOpened = false;\n }\n\n this.dispatchClickEvent(event, clickedItemIndex);\n\n if (opened) {\n this.dispatchPopupEvent(event, false);\n }\n },\n onBlur: function onBlur(event) {\n clearTimeout(this._blurTimeout);\n this.createBlurTimeout(event);\n },\n createBlurTimeout: function createBlurTimeout(event) {\n var _this = this;\n\n var that = this;\n this._blurTimeout = setTimeout(function () {\n if (canUseDOM && document.activeElement !== that.mainButton) {\n that.focused = false;\n that.focusedIndex = -1;\n that.$emit('blur', event, _this, undefined);\n var fireCloseEvent = that.computedOpened;\n\n if (fireCloseEvent) {\n that.currentOpened = false;\n that.dispatchPopupEvent(event, false);\n }\n }\n }, 200);\n },\n dispatchClickEvent: function dispatchClickEvent(dispatchedEvent, clickedItemIndex) {\n if (!this.isItemDisabled(clickedItemIndex)) {\n if (clickedItemIndex === -1) {\n this.$emit('buttonclick', dispatchedEvent, this, undefined);\n } else {\n this.$emit('itemclick', {\n event: dispatchedEvent,\n component: this,\n item: this.buttonsData[clickedItemIndex],\n itemIndex: clickedItemIndex\n });\n }\n }\n },\n onSplitPartClick: function onSplitPartClick(event) {\n if (this.buttonsData.length) {\n var toOpen = !this.computedOpened;\n this.dispatchPopupEvent(event, toOpen);\n this.focusedIndex = toOpen ? 0 : -1;\n this.currentOpened = toOpen;\n this.focused = true;\n }\n },\n onDownSplitPart: function onDownSplitPart(event) {\n event.preventDefault();\n\n if (this.element() && document.activeElement !== this.element()) {\n // @ts-ignore\n this.element().focus();\n }\n },\n onItemDown: function onItemDown(event) {\n if (document.activeElement === this.element()) {\n event.preventDefault();\n }\n },\n dispatchPopupEvent: function dispatchPopupEvent(dispatchedEvent, open) {\n this.$emit(open ? 'open' : 'close', dispatchedEvent, this, undefined);\n },\n isItemDisabled: function isItemDisabled(index) {\n return this.buttonsData[index] ? this.buttonsData[index].disabled : this.$props.disabled;\n },\n isRtl: function isRtl() {\n return this.$props.dir !== undefined ? this.$props.dir === 'rtl' : !!this.$el && getComputedStyle(this.$el).direction === 'rtl';\n }\n }\n};\nvar SplitButtonVue3 = SplitButton;\nexport { SplitButton, SplitButtonVue3 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nimport { Button as KendoButton } from '../Button';\nimport { classNames, guid, Keys } from '@progress/kendo-vue-common';\nimport navigation from './utils/navigation';\nimport { ButtonItem } from './ButtonItem';\nimport { Popup } from '@progress/kendo-vue-popup';\nimport { getAnchorAlign, getPopupAlign } from './utils/popup';\nimport { validatePackage, templateRendering, getListeners, canUseDOM } from '@progress/kendo-vue-common';\nimport { packageMetadata } from '../package-metadata'; // tslint:enable:max-line-length\n\nvar DropDownButton = {\n name: 'KendoDropDownButton',\n // @ts-ignore\n emits: {\n focus: null,\n blur: null,\n itemclick: null,\n open: null,\n close: null\n },\n props: {\n accessKey: String,\n primary: Boolean,\n items: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n text: String,\n textField: String,\n tabIndex: Number,\n disabled: Boolean,\n icon: String,\n iconClass: String,\n imageUrl: String,\n popupSettings: Object,\n itemRender: [String, Object, Function],\n item: Function,\n opened: {\n type: Boolean,\n default: undefined\n },\n look: {\n type: String,\n validator: function validator(value) {\n return ['default', 'flat', 'outline'].includes(value);\n }\n },\n buttonClass: String,\n dir: String\n },\n created: function created() {\n this._blurTimeout = null;\n this._anchor = guid();\n this.wrapper = null;\n this.mainButton = null;\n this.guid = guid();\n this.buttonsData = [];\n validatePackage(packageMetadata);\n },\n mounted: function mounted() {\n this.mainButton = this.$refs[this._anchor]; // If this.$props.opened is true during the initial render, the popup is not aligned.\n\n if (this.$props.dir === undefined && this.isRtl() || this.computedOpened) {\n this.$forceUpdate();\n }\n },\n updated: function updated() {\n if (this.focused && this.element()) {\n this.mainButton = this.$refs[this._anchor];\n this.mainButton.focus();\n }\n },\n data: function data() {\n return {\n currentOpened: false,\n focused: false,\n focusedIndex: -1\n };\n },\n computed: {\n computedOpened: function computedOpened() {\n return this.$props.opened === undefined ? this.currentOpened : this.$props.opened;\n },\n wrapperClass: function wrapperClass() {\n return {\n 'k-widget': true,\n 'k-dropdown-button': true,\n 'k-state-focused': this.focused\n };\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoAnchorRef = ref(null);\n return {\n v3: v3,\n kendoAnchorRef: kendoAnchorRef\n };\n },\n render: function render(createElement) {\n var _this2 = this;\n\n var h = gh || createElement;\n var rtl = this.isRtl();\n var dir = rtl ? 'rtl' : undefined;\n var _a = this.$props,\n tabIndex = _a.tabIndex,\n disabled = _a.disabled;\n this.buttonsData = this.$props.items;\n\n var renderChildItems = function renderChildItems() {\n var _a = this.$props,\n item = _a.item,\n itemRender = _a.itemRender,\n textField = _a.textField;\n return this.buttonsData.length > 0 ? this.buttonsData.map(function (dataItem, index) {\n var currentDataItem = typeof dataItem !== 'string' ? __assign(__assign({}, dataItem), {\n render: templateRendering.call(this, dataItem.render, getListeners.call(this))\n }) : dataItem;\n return (// @ts-ignore\n h(ButtonItem, {\n dataItem: currentDataItem,\n attrs: this.v3 ? undefined : {\n dataItem: currentDataItem,\n textField: textField,\n focused: this.focusedIndex === index,\n render: templateRendering.call(this, itemRender, getListeners.call(this)),\n item: item,\n index: index,\n id: this.guid + \"-\" + index\n },\n textField: textField,\n focused: this.focusedIndex === index,\n onClick: this.onItemClick,\n on: this.v3 ? undefined : {\n \"click\": this.onItemClick,\n \"down\": this.onItemDown\n },\n onDown: this.onItemDown,\n render: templateRendering.call(this, itemRender, getListeners.call(this)),\n item: item,\n index: index,\n key: index,\n id: this.guid + \"-\" + index\n })\n );\n }, this) : null;\n };\n\n var renderPopup = function renderPopup() {\n var _this = this;\n\n var _a = this.$props.popupSettings,\n popupSettings = _a === void 0 ? {} : _a;\n return (// @ts-ignore function children\n h(Popup, {\n anchor: this._anchor,\n attrs: this.v3 ? undefined : {\n anchor: this._anchor,\n show: this.computedOpened,\n animate: popupSettings.animate,\n popupClass: classNames('k-list-container k-reset k-group', popupSettings.popupClass),\n anchorAlign: popupSettings.anchorAlign || getAnchorAlign(rtl),\n popupAlign: popupSettings.popupAlign || getPopupAlign(rtl)\n },\n show: this.computedOpened,\n animate: popupSettings.animate,\n popupClass: classNames('k-list-container k-reset k-group', popupSettings.popupClass),\n anchorAlign: popupSettings.anchorAlign || getAnchorAlign(rtl),\n popupAlign: popupSettings.popupAlign || getPopupAlign(rtl),\n style: rtl ? {\n direction: 'rtl'\n } : undefined\n }, this.v3 ? function () {\n return [h(\"ul\", {\n \"class\": \"k-list k-reset\",\n role: \"menu\",\n attrs: _this.v3 ? undefined : {\n role: \"menu\",\n id: _this.guid\n },\n id: _this.guid\n }, [renderChildItems.call(_this)])];\n } : [h(\"ul\", {\n \"class\": \"k-list k-reset\",\n role: \"menu\",\n attrs: _this.v3 ? undefined : {\n role: \"menu\",\n id: _this.guid\n },\n id: _this.guid\n }, [renderChildItems.call(_this)])])\n );\n };\n\n return h(\"div\", {\n \"class\": this.wrapperClass,\n onKeydown: this.onKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.onKeyDown,\n \"focusin\": this.onFocus,\n \"focusout\": this.onBlur\n },\n onFocusin: this.onFocus,\n onFocusout: this.onBlur,\n dir: dir,\n attrs: this.v3 ? undefined : {\n dir: dir\n }\n }, [// @ts-ignore function children\n h(KendoButton, {\n onClick: this.onClickMainButton,\n on: this.v3 ? undefined : {\n \"click\": this.onClickMainButton,\n \"mousedown\": this.mouseDown\n },\n onMousedown: this.mouseDown,\n disabled: disabled || undefined,\n attrs: this.v3 ? undefined : {\n disabled: disabled || undefined,\n tabIndex: tabIndex,\n accessKey: this.$props.accessKey,\n icon: this.$props.icon,\n iconClass: this.$props.iconClass,\n imageUrl: this.$props.imageUrl,\n look: this.$props.look,\n primary: this.$props.primary,\n dir: dir,\n type: \"button\",\n \"aria-disabled\": disabled,\n \"aria-haspopup\": true,\n \"aria-expanded\": this.computedOpened,\n \"aria-label\": this.$props.text + \" dropdownbutton\",\n \"aria-owns\": this.guid,\n \"aria-activedescendant\": this.focusedIndex !== undefined && this.focusedIndex >= 0 ? this.guid + \"-\" + this.focusedIndex : undefined\n },\n tabIndex: tabIndex,\n accessKey: this.$props.accessKey,\n icon: this.$props.icon,\n iconClass: this.$props.iconClass,\n \"class\": this.$props.buttonClass,\n imageUrl: this.$props.imageUrl,\n look: this.$props.look,\n primary: this.$props.primary,\n dir: dir,\n ref: this._anchor,\n type: \"button\",\n \"aria-disabled\": disabled,\n \"aria-haspopup\": true,\n \"aria-expanded\": this.computedOpened,\n \"aria-label\": this.$props.text + \" dropdownbutton\",\n \"aria-owns\": this.guid,\n \"aria-activedescendant\": this.focusedIndex !== undefined && this.focusedIndex >= 0 ? this.guid + \"-\" + this.focusedIndex : undefined\n }, this.v3 ? function () {\n return [_this2.$props.text];\n } : [_this2.$props.text]), renderPopup.call(this)]);\n },\n methods: {\n element: function element() {\n return this.mainButton;\n },\n onKeyDown: function onKeyDown(event) {\n if (event.altKey) {\n if (!this.computedOpened && event.keyCode === Keys.down) {\n this.dispatchPopupEvent(event, true);\n this.focusedIndex = 0;\n this.currentOpened = true;\n } else if (this.computedOpened && event.keyCode === Keys.up) {\n this.dispatchPopupEvent(event, false);\n this.focusedIndex = -1;\n this.currentOpened = false;\n }\n\n return;\n }\n\n if (event.keyCode === Keys.enter || event.keyCode === Keys.space) {\n if (this.focusedIndex !== undefined && this.focusedIndex >= 0) {\n this.dispatchClickEvent(event, this.focusedIndex);\n } // Prevent default because otherwise when an item is selected\n // click on the default button gets emitted which opens the popup again.\n\n\n event.preventDefault();\n this.focusedIndex = this.computedOpened ? -1 : 0, this.currentOpened = !this.computedOpened;\n this.dispatchPopupEvent(event, this.currentOpened);\n } else if (this.computedOpened && event.keyCode === Keys.esc) {\n this.focusedIndex = -1;\n this.currentOpened = false;\n this.dispatchPopupEvent(event, this.currentOpened);\n }\n\n if (this.computedOpened) {\n var newFocused = navigation(this.focusedIndex, event.keyCode, event.altKey, this.buttonsData.length);\n this.focusedIndex = newFocused;\n var arrowKey = event.keyCode === Keys.up || event.keyCode === Keys.down || event.keyCode === Keys.left || event.keyCode === Keys.right;\n\n if (!event.altKey && arrowKey) {\n // Needed to notify the parent listeners that event is handled.\n event.preventDefault();\n }\n }\n },\n onFocus: function onFocus(event) {\n if (!this.focused) {\n this.focused = true;\n this.$emit('focus', event, this, undefined);\n }\n\n this.focusedIndex = this.computedOpened ? 0 : -1;\n clearTimeout(this._blurTimeout);\n },\n onBlur: function onBlur(event) {\n clearTimeout(this._blurTimeout);\n this.createBlurTimeout(event);\n },\n createBlurTimeout: function createBlurTimeout(event) {\n var that = this;\n this._blurTimeout = setTimeout(function () {\n if (canUseDOM && document.activeElement !== that.$el) {\n that.focused = false;\n that.focusedIndex = -1;\n that.$emit('blur', event, that, undefined);\n var fireCloseEvent = that.computedOpened;\n\n if (fireCloseEvent) {\n that.currentOpened = false;\n that.dispatchPopupEvent(event, false);\n }\n }\n }, 200);\n },\n onItemClick: function onItemClick(event, clickedItemIndex) {\n this.focusedIndex = -1;\n this.currentOpened = false;\n this.dispatchClickEvent(event, clickedItemIndex);\n this.dispatchPopupEvent(event, false);\n },\n onItemDown: function onItemDown(event) {\n if (document.activeElement === this.element()) {\n event.preventDefault();\n }\n },\n mouseDown: function mouseDown(event) {\n event.preventDefault();\n },\n dispatchClickEvent: function dispatchClickEvent(dispatchedEvent, index) {\n if (!this.isItemDisabled(index)) {\n this.$emit('itemclick', {\n event: dispatchedEvent,\n item: this.buttonsData[index],\n itemIndex: index\n });\n }\n },\n onClickMainButton: function onClickMainButton(event) {\n if (!this.buttonsData.length) {\n return;\n }\n\n var toOpen = !this.computedOpened;\n this.currentOpened = toOpen;\n this.focused = true;\n this.focusedIndex = toOpen ? 0 : -1;\n this.dispatchPopupEvent(event, toOpen);\n },\n dispatchPopupEvent: function dispatchPopupEvent(dispatchedEvent, open) {\n this.$emit(open ? 'open' : 'close', dispatchedEvent, this, undefined);\n },\n isItemDisabled: function isItemDisabled(index) {\n return this.buttonsData[index] ? this.buttonsData[index].disabled : this.$props.disabled;\n },\n isRtl: function isRtl() {\n return this.$props.dir !== undefined ? this.$props.dir === 'rtl' : !!this.$el && getComputedStyle(this.$el).direction === 'rtl';\n }\n }\n};\nvar DropDownButtonVue3 = DropDownButton;\nexport { DropDownButton, DropDownButtonVue3 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { Keys, validatePackage, getDefaultSlots } from '@progress/kendo-vue-common';\nimport { toolbarButtons } from './../util';\nimport { packageMetadata } from '../package-metadata'; // tslint:enable:max-line-length\n\nvar Toolbar = {\n name: 'KendoToolbar',\n props: {\n tabIndex: {\n type: Number,\n default: 0\n },\n dir: String,\n keyboardNavigation: Boolean,\n buttons: Array\n },\n created: function created() {\n this.element = null;\n this.offsetHeight = 0;\n this.offsetWidth = 0;\n this.currentButtons = [];\n this.focusedSelector = this.selectors.map(function (s) {\n return s + ':focus';\n }).join(',');\n validatePackage(packageMetadata);\n },\n computed: {\n selectors: function selectors() {\n return this.$props.buttons || toolbarButtons;\n }\n },\n mounted: function mounted() {\n window.addEventListener('resize', this.onWindowResize);\n var element = this.element;\n\n if (element) {\n this.offsetWidth = element.offsetWidth;\n this.offsetHeight = element.offsetHeight;\n\n if (this.$props.keyboardNavigation !== false) {\n this.currentButtons = this.getCurrentButtons();\n this.setTabIndex(0);\n }\n }\n },\n updated: function updated() {\n var element = this.element;\n\n if (!element || this.$props.keyboardNavigation === false) {\n return;\n }\n\n this.currentButtons = this.getCurrentButtons();\n this.setTabIndex(this.focusedIndex());\n },\n destroyed: !!gh ? undefined : function () {\n window.removeEventListener('resize', this.onWindowResize);\n this.currentButtons.length = 0;\n },\n // @ts-ignore\n unmounted: function unmounted() {\n window.removeEventListener('resize', this.onWindowResize);\n this.currentButtons.length = 0;\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n return h(\"div\", {\n \"class\": 'k-widget k-toolbar',\n role: \"toolbar\",\n attrs: this.v3 ? undefined : {\n role: \"toolbar\",\n dir: this.$props.dir\n },\n dir: this.$props.dir,\n onKeydown: this.onKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.onKeyDown\n }\n }, [defaultSlot]);\n },\n methods: {\n getCurrentButtons: function getCurrentButtons() {\n return this.$el ? Array.from(this.$el.querySelectorAll(this.selectors.join(','))) : [];\n },\n focusedIndex: function focusedIndex() {\n var focused = this.element && this.element.querySelector(this.focusedSelector);\n return Math.max(0, this.currentButtons.findIndex(function (e) {\n return e === focused;\n }));\n },\n setTabIndex: function setTabIndex(focusedIndex) {\n var tabIndex = this.$props.tabIndex;\n this.currentButtons.forEach(function (button, index) {\n button.tabIndex = index === focusedIndex ? tabIndex : -1;\n });\n },\n onKeyDown: function onKeyDown(event) {\n if (this.$props.keyboardNavigation === false) {\n return;\n }\n\n var target = event.target;\n var arrowKey = event.keyCode === Keys.left || event.keyCode === Keys.right;\n\n if (!arrowKey || event.defaultPrevented || this.currentButtons.findIndex(function (b) {\n return b === target;\n }) === -1) {\n return;\n }\n\n var focusedIndex = this.focusedIndex();\n\n if (event.keyCode === Keys.left) {\n this.focusButton(focusedIndex, focusedIndex - 1);\n } else {\n this.focusButton(focusedIndex, focusedIndex + 1);\n }\n },\n focusButton: function focusButton(prevIndex, index) {\n var tabIndex = this.$props.tabIndex;\n var button = this.currentButtons[index];\n\n if (button) {\n button.tabIndex = tabIndex;\n button.focus();\n var prevButton = this.currentButtons[prevIndex];\n\n if (prevButton) {\n prevButton.tabIndex = -1;\n }\n }\n },\n onWindowResize: function onWindowResize(event) {\n var element = this.$el;\n\n if (!element) {\n return;\n }\n\n var offsetWidth = element.offsetWidth;\n var offsetHeight = element.offsetHeight;\n\n if (this.offsetWidth !== offsetWidth || this.offsetHeight !== offsetHeight) {\n this.offsetWidth = offsetWidth;\n this.offsetHeight = offsetHeight;\n var newSizes = {\n offsetWidth: this.offsetWidth,\n offsetHeight: this.offsetHeight\n };\n this.$emit('resize', __assign(__assign({\n target: this\n }, newSizes), {\n nativeEvent: event\n }));\n }\n }\n }\n};\nvar ToolbarVue3 = Toolbar;\nexport { Toolbar, ToolbarVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getDefaultSlots } from '@progress/kendo-vue-common'; // tslint:enable:max-line-length\n\nvar ToolbarItem = {\n name: 'KendoToolbarItem',\n methods: {\n element: function element() {\n return this.$el;\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n return h(\"span\", [defaultSlot]);\n }\n};\nvar ToolbarItemVue3 = ToolbarItem;\nexport { ToolbarItem, ToolbarItemVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { ToolbarItem } from './ToolbarItem';\n/**\n * Represents the Kendo UI for Vue Toolbar Separator component.\n */\n\nvar ToolbarSeparator = {\n name: 'KendoToolbarItem',\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n return (// @ts-ignore\n h(ToolbarItem, {\n \"class\": \"k-separator\"\n })\n );\n }\n};\nvar ToolbarSeparatorVue3 = ToolbarSeparator;\nexport { ToolbarSeparator, ToolbarSeparatorVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\n/**\n * Represents the Kendo UI for Vue Toolbar Separator component.\n */\n\nvar ToolbarSpacer = {\n name: 'KendoToolbarItem',\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n return h(\"span\", {\n \"class\": \"k-spacer\"\n });\n }\n};\nvar ToolbarSpacerVue3 = ToolbarSpacer;\nexport { ToolbarSpacer, ToolbarSpacerVue3 };","/**\n * @hidden\n */\nexport var isObject = function (value) {\n return typeof value === 'object';\n};\n","import { isObject } from './isObject';\n/**\n * @hidden\n */\nexport var classNames = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return args\n .filter(function (arg) { return arg !== true && !!arg; })\n .map(function (arg) {\n return Array.isArray(arg)\n ? classNames.apply(void 0, arg) : isObject(arg)\n ? Object\n .keys(arg)\n .map(function (key, idx) { return arg[idx] || (arg[key] && key) || null; })\n .filter(function (el) { return el !== null; })\n .join(' ')\n : arg;\n })\n .filter(function (arg) { return !!arg; })\n .join(' ');\n};\n","/* tslint:disable:no-bitwise */\n/**\n * @hidden\n */\nvar guid = function () {\n var id = '';\n var i;\n var random;\n for (i = 0; i < 32; i++) {\n random = Math.random() * 16 | 0;\n if (i === 8 || i === 12 || i === 16 || i === 20) {\n id += '-';\n }\n id += (i === 12 ? 4 : (i === 16 ? (random & 3 | 8) : random)).toString(16);\n }\n return id;\n};\nexport { guid };\n","/**\n * @hidden\n */\nvar Keys = {\n backspace: 8,\n tab: 9,\n enter: 13,\n shift: 16,\n esc: 27,\n space: 32,\n pageUp: 33,\n pageDown: 34,\n end: 35,\n home: 36,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n delete: 46\n};\nexport { Keys };\n","/**\n * @hidden\n */\nvar canUseDOM = Boolean(\n// from fbjs\ntypeof window !== 'undefined' &&\n window.document &&\n window.document.createElement);\nexport { canUseDOM };\n","/**\n * @hidden\n */\nexport function getRef(comp, refName, customRef) {\n return comp.v3 ? comp[\"\".concat(refName, \"Ref\")] : comp.$refs[\"\".concat(customRef || refName)];\n}\n/**\n * @hidden\n */\nexport function setRef(comp, refName, customRef) {\n return (comp.v3 ? function (el) {\n comp[\"\".concat(refName, \"Ref\")] = el;\n } : customRef || refName);\n}\n","import { Keys } from './keys';\nvar FOCUSABLE_SELECTOR = 'input, [tabindex]:not([tabindex=\"-1\"])';\n/**\n * @hidden\n */\nexport var firstFocusableChild = function (element) {\n if (element) {\n // should focus wrapper if it's focusable in future versions\n var elements = element.querySelectorAll(FOCUSABLE_SELECTOR);\n if (elements.length && elements[0].focus) {\n return elements[0];\n }\n }\n return undefined;\n};\n/**\n * @hidden\n */\nexport var lastFocusableChild = function (element) {\n if (element) {\n // should focus wrapper if it's focusable in future versions\n var elements = element.querySelectorAll(FOCUSABLE_SELECTOR);\n if (elements.length && elements[elements.length - 1].focus) {\n return elements[elements.length - 1];\n }\n }\n return undefined;\n};\n/**\n * @hidden\n */\nexport var focusFirstFocusableChild = function (element) {\n if (element) {\n // should focus wrapper if it's focusable in future versions\n var elements = element.querySelectorAll(FOCUSABLE_SELECTOR);\n if (elements.length && elements[0].focus) {\n elements[0].focus();\n }\n }\n};\n/**\n * @hidden\n */\nexport var focusLastFocusableChild = function (element) {\n if (element) {\n // should focus wrapper if it's focusable in future versions\n var elements = element.querySelectorAll(FOCUSABLE_SELECTOR);\n if (elements.length && elements[elements.length - 1].focus) {\n elements[elements.length - 1].focus();\n }\n }\n};\n/**\n * @hidden\n */\nexport var focusContainer = function (e, containerElement) {\n var focusState = true;\n if (e.keyCode !== Keys.enter && e.target === containerElement) {\n return false;\n }\n if (e.keyCode === Keys.enter && e.target === containerElement) {\n focusState = true;\n setTimeout(function () {\n focusFirstFocusableChild(containerElement);\n }, 1);\n }\n else if (e.keyCode === Keys.esc) {\n focusState = false;\n containerElement.focus();\n }\n else if (e.keyCode === Keys.tab) {\n var firstChild = firstFocusableChild(containerElement);\n var lastChild = lastFocusableChild(containerElement);\n if (lastChild && !e.shiftKey && e.target === lastChild) {\n e.preventDefault();\n firstChild.focus();\n }\n if (firstChild && e.shiftKey && e.target === firstChild) {\n e.preventDefault();\n lastChild.focus();\n }\n }\n return focusState;\n};\n","var _DraggableVue;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return (typeof key === \"undefined\" ? \"undefined\" : _typeof(key)) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if ((typeof input === \"undefined\" ? \"undefined\" : _typeof(input)) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if ((typeof res === \"undefined\" ? \"undefined\" : _typeof(res)) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport * as d from '@progress/kendo-draggable';\nimport { getDefaultSlots } from './defaultSlots';\n/**\n * @hidden\n */\nvar DraggableVue2 = (_DraggableVue = {\n // @ts-ignore\n emits: {\n press: null,\n drag: null,\n release: null\n },\n inheritAttrs: false,\n created: function created() {\n this.element = null;\n var draggable = d;\n var dp = typeof draggable !== 'undefined' && draggable.Draggable ? draggable : draggable.default;\n this.draggable = new dp.Draggable({\n press: this.press,\n drag: this.drag,\n release: this.release\n });\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n mounted: function mounted() {\n if (this.$el) {\n this.element = this.$el.nodeType === 3 || this.$el.nodeType === 8 ? this.$el.nextElementSibling : this.$el;\n this.draggable.bindTo(this.element);\n }\n },\n destroyed: !!isV3 ? undefined : function () {\n this.draggable.destroy();\n },\n // @ts-ignore\n unmounted: function unmounted() {\n this.draggable.destroy();\n },\n methods: {\n press: function press(event) {\n if (this.element) {\n this.$emit('press', event, this.element);\n }\n },\n drag: function drag(event) {\n if (this.element) {\n this.$emit('drag', event, this.element);\n }\n },\n release: function release(event) {\n if (this.element) {\n this.$emit('release', event, this.element);\n }\n }\n }\n}, _defineProperty(_DraggableVue, \"setup\", !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n}), _defineProperty(_DraggableVue, \"render\", function render(createElement) {\n // @ts-ignore\n var h = gh || createElement;\n return getDefaultSlots(this);\n}), _DraggableVue);\n/**\n * @hidden\n */\nvar Draggable = DraggableVue2;\nexport { Draggable, DraggableVue2 };","/**\n * @hidden\n */\nexport function getDefaultSlots(component) {\n var defaultSlots = component.$slots.default;\n return (component.v3 && defaultSlots && typeof defaultSlots === 'function') ? defaultSlots() : defaultSlots;\n}\n","/**\n * @hidden\n */\nvar noop = function () { };\nexport { noop };\n","import { FIELD_REGEX } from './constants/main';\nvar getterCache = {};\ngetterCache.undefined = function () { return undefined; };\n/**\n * @hidden\n */\nexport function getter(field) {\n if (getterCache[field]) {\n return getterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n getterCache[field] = function (obj) {\n var result = obj;\n for (var idx = 0; idx < fields.length && result; idx++) {\n result = result[fields[idx]];\n }\n return result;\n };\n return getterCache[field];\n}\n","import { FIELD_REGEX } from './constants/main';\nvar setterCache = {};\nsetterCache.undefined = function (obj) { return obj; };\n/**\n * @hidden\n */\nexport function setter(field) {\n if (setterCache[field]) {\n return setterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n setterCache[field] = function (obj, value) {\n var root = obj;\n var depth = fields.length - 1;\n for (var idx = 0; idx < depth && root; idx++) {\n root = root[fields[idx]] = root[fields[idx]] || {};\n }\n root[fields[depth]] = value;\n };\n return setterCache[field];\n}\n","/**\n * @hidden\n */\nexport function hasListener(eventName) {\n if (this.v3) {\n return Object.keys(this.$attrs).map(function (name) { return name.toLowerCase(); })\n .some(function (event) { return event.endsWith(eventName.toLowerCase()); });\n }\n else {\n return this.$listeners[eventName];\n }\n}\n/**\n * @hidden\n */\nexport function getListeners() {\n if (this.v3) {\n var listeners = {};\n for (var key in (this.$attrs)) {\n if (key.startsWith('on')) {\n listeners[key] = this.$attrs[key];\n }\n }\n return listeners;\n }\n else {\n return this.$listeners;\n }\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nimport { isObject } from './isObject';\nvar allVue = Vue;\nvar isV3 = allVue.version && allVue.version[0] === '3';\n/**\n * @hidden\n */\nexport var templateDefinition = {\n type: [String, Function, Object, Boolean],\n default: function () {\n return undefined;\n }\n};\n/**\n * @hidden\n */\nexport function templateRendering(template, listeners) {\n if (!template && template !== false) {\n return undefined;\n }\n if (template.kt) {\n return template;\n }\n var scopedSlot = isV3 ?\n this.$slots[template] ||\n (template.toLowerCase ? this.$slots[template.toLowerCase()]\n : null) :\n this.$scopedSlots[template] ||\n (template.toLowerCase ? this.$scopedSlots[template.toLowerCase()]\n : null);\n if (typeof template === 'string' && scopedSlot) {\n return { kt: true, type: 'slot', render: scopedSlot, listeners: listeners };\n }\n if (typeof template === 'string' || isObject(template) ||\n (typeof template === 'function' && template.component)) {\n return { kt: true, type: 'component', render: template, listeners: listeners };\n }\n return { kt: true, type: 'renderFunction', render: template, listeners: listeners };\n}\n/**\n * @hidden\n */\nexport function getTemplate(_a) {\n var h = _a.h, template = _a.template, defaultRendering = _a.defaultRendering, defaultSlots = _a.defaultSlots, additionalProps = _a.additionalProps, additionalListeners = _a.additionalListeners, swapDefaultSlots = _a.swapDefaultSlots;\n if (!template || (template && template.render === true)) {\n return defaultRendering;\n }\n var events;\n var props;\n var componentOptions;\n if (isV3) {\n var passedProps = defaultRendering ? defaultRendering.props : {};\n events = __assign(__assign({}, transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, passedProps), additionalProps), events);\n componentOptions = __assign(__assign({}, props), events);\n }\n else {\n var hasComponentOptions = defaultRendering && defaultRendering.componentOptions;\n var defaultListeners = hasComponentOptions ?\n defaultRendering.componentOptions.listeners : {};\n var defaultProps = hasComponentOptions ?\n defaultRendering.componentOptions.propsData : {};\n events = __assign(__assign(__assign(__assign({}, defaultListeners), additionalListeners), transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, defaultProps), additionalProps), events);\n componentOptions = { props: props, on: events };\n }\n if (template.type === 'slot') {\n var slotTemplate = template.render({ props: props, listeners: events, methods: events,\n defaultSlots: defaultSlots });\n return isV3\n ? slotTemplate\n : slotTemplate ? slotTemplate[0] : undefined;\n }\n else if (template.type === 'renderFunction') {\n if (swapDefaultSlots) {\n return template.render ? template.render(h, defaultRendering, defaultSlots, props, events) : undefined;\n }\n return template.render ? template.render(h, defaultRendering, props, events, defaultSlots) : undefined;\n }\n else {\n return h(template.render, componentOptions, isV3 ? function () { return [defaultSlots]; } : [defaultSlots]);\n }\n}\n/**\n * @hidden\n */\nexport function transformListeners(listeners) {\n if (!listeners) {\n return listeners;\n }\n var newListeners = {};\n var listenersKeys = Object.keys(listeners);\n for (var i = 0; i < listenersKeys.length; i++) {\n var currentKey = listenersKeys[i];\n newListeners['on' + currentKey.charAt(0).toUpperCase() + currentKey.slice(1)] =\n listeners[currentKey];\n }\n return newListeners;\n}\n","/**\n * @hidden\n */\nvar DISABLED_TABINDEX = -1;\n/**\n * @hidden\n */\nvar DEFAULT_TABINDEX = 0;\n/**\n * @hidden\n */\nexport var getTabIndex = function (tabIndex, disabled, useDefaultTabIndexWhenDisabled) {\n var parsedTabIndex = typeof tabIndex === 'string' ? parseInt(tabIndex, undefined) : tabIndex;\n if (parsedTabIndex === NaN) {\n return undefined;\n }\n return parsedTabIndex !== undefined\n ? parsedTabIndex\n : disabled ?\n (useDefaultTabIndexWhenDisabled ? undefined : DISABLED_TABINDEX)\n : DEFAULT_TABINDEX;\n};\n","import { canUseDOM } from './canUseDOM';\n/**\n * @hidden\n */\nexport function isRtl(element) {\n return Boolean(canUseDOM && element && getComputedStyle(element).direction === 'rtl');\n}\n/**\n * @hidden\n */\nexport function getDir(element, initialDir) {\n if (!initialDir && canUseDOM && element) {\n // Note: getComputedStyle forces reflow\n var rtlCandidate = window.getComputedStyle(element).direction;\n if (rtlCandidate) {\n // rerender is needed as DOM is read after first render\n return rtlCandidate;\n }\n }\n return initialDir;\n}\n","import * as l from '@progress/kendo-licensing';\nvar allowed = ['telerik.com', 'progress.com', 'stackblitz.io', 'csb.app', 'webcontainer.io'];\nvar licensing = l;\nvar ls = typeof licensing !== 'undefined' && licensing.validatePackage\n ? licensing\n : licensing.default;\n/**\n * @hidden\n */\nexport function validatePackage(packageMetadata) {\n if (ls && ls.validatePackage) {\n ls.validatePackage(packageMetadata);\n }\n else {\n var message = \"License activation failed for \".concat(packageMetadata.name, \"\\n\");\n message += 'The @progress/kendo-licensing script is not loaded.\\n';\n message += \"See \".concat(packageMetadata.licensingDocsUrl, \" for more information.\\n\");\n console.warn(message);\n }\n}\n/**\n * @hidden\n */\nexport function shouldShowValidationUI(packageMetadata) {\n var skip = allowed.some(function (hostname) { var _a; return (_a = globalThis.document) === null || _a === void 0 ? void 0 : _a.location.hostname.endsWith(hostname); });\n return !skip && !(ls && ls.validatePackage && ls.validatePackage(packageMetadata));\n}\n","/** @hidden */\nexport var kendoThemeMaps = {\n sizeMap: {\n small: 'sm',\n medium: 'md',\n large: 'lg'\n },\n roundedMap: {\n small: 'sm',\n medium: 'md',\n large: 'lg'\n }\n};\n","/**\n * @hidden\n */\nvar getDocument = function () { return typeof document !== 'undefined' ? document : {}; };\n/**\n * @hidden\n */\nvar BrowserSupportService = /** @class */ (function () {\n function BrowserSupportService() {\n }\n Object.defineProperty(BrowserSupportService.prototype, \"scrollbarWidth\", {\n get: function () {\n var document = getDocument();\n if (!this.scrollbar && document && document.createElement) {\n var div = document.createElement('div');\n div.style.cssText = 'overflow:scroll;overflow-x:hidden;zoom:1;clear:both;display:block';\n div.innerHTML = ' ';\n document.body.appendChild(div);\n this.scrollbar = div.offsetWidth - div.scrollWidth;\n document.body.removeChild(div);\n }\n return this.scrollbar;\n },\n enumerable: false,\n configurable: true\n });\n return BrowserSupportService;\n}());\nexport { BrowserSupportService };\n","/**\n * @hidden\n */\nexport var SIZE_CLASSES = {\n 'default': '',\n 'xsmall': 'k-icon-xs',\n 'small': 'k-icon-sm',\n 'medium': 'k-icon-md',\n 'large': 'k-icon-lg',\n 'xlarge': 'k-icon-xl',\n 'xxlarge': 'k-icon-xxl',\n 'xxxlarge': 'k-icon-xxxl'\n};\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { SIZE_CLASSES } from './constants';\n/**\n * @hidden\n */\nvar FontIconVue2 = {\n name: 'KendoFontIcon',\n // @ts-ignore\n emits: {\n click: null\n },\n props: {\n name: String,\n themeColor: {\n type: String\n },\n size: {\n type: String\n },\n flip: {\n type: String\n },\n id: String,\n ariaLabel: String,\n title: String,\n tabIndex: Number\n },\n computed: {\n fontClassNames: function fontClassNames() {\n var _a;\n var _b = this.$props,\n name = _b.name,\n flip = _b.flip,\n size = _b.size,\n themeColor = _b.themeColor;\n return _a = {\n 'k-icon': true,\n 'k-font-icon': true\n }, _a['k-i-' + name] = name, _a['k-color-' + themeColor] = themeColor, _a['k-flip-h'] = flip === 'horizontal' || flip === 'both', _a['k-flip-v'] = flip === 'vertical' || flip === 'both', _a[SIZE_CLASSES[size]] = size, _a;\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n id = _a.id,\n title = _a.title,\n tabIndex = _a.tabIndex,\n ariaLabel = _a.ariaLabel;\n return h(\"span\", {\n \"class\": this.fontClassNames,\n id: id,\n attrs: this.v3 ? undefined : {\n id: id,\n title: title,\n \"aria-label\": ariaLabel,\n tabIndex: tabIndex,\n role: \"presentation\"\n },\n title: title,\n \"aria-label\": ariaLabel,\n tabIndex: tabIndex,\n role: \"presentation\",\n onClick: this.handleClick,\n on: this.v3 ? undefined : {\n \"click\": this.handleClick\n }\n });\n },\n methods: {\n handleClick: function handleClick(e) {\n this.$emit('click', e);\n }\n }\n};\n/**\n * @hidden\n */\nvar FontIcon = FontIconVue2;\nexport { FontIcon, FontIconVue2 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { SIZE_CLASSES } from './constants';\nimport { getDefaultSlots } from '../defaultSlots';\n/**\n * @hidden\n */\nvar SvgIconVue2 = {\n name: 'KendoSvgIcon',\n // @ts-ignore\n emits: {\n click: null\n },\n props: {\n name: String,\n icon: Object,\n themeColor: {\n type: String\n },\n size: {\n type: String\n },\n flip: {\n type: String\n },\n id: String,\n ariaLabel: String,\n title: String,\n viewBox: {\n type: String,\n default: '0 0 24 24'\n },\n tabIndex: Number,\n svgClassName: String,\n svgStyle: Object\n },\n computed: {\n wrapperClass: function wrapperClass() {\n var _a;\n var _b = this.$props,\n name = _b.name,\n flip = _b.flip,\n size = _b.size,\n themeColor = _b.themeColor;\n return _a = {\n 'k-icon': true,\n 'k-svg-icon': true\n }, _a['k-color-' + themeColor] = themeColor, _a['k-svg-i-' + name] = name, _a['k-flip-h'] = flip === 'horizontal' || flip === 'both', _a['k-flip-v'] = flip === 'vertical' || flip === 'both', _a[SIZE_CLASSES[size]] = size, _a;\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n var _a = this.$props,\n svgClassName = _a.svgClassName,\n icon = _a.icon,\n id = _a.id,\n tabIndex = _a.tabIndex,\n svgStyle = _a.svgStyle,\n viewBox = _a.viewBox,\n title = _a.title,\n ariaLabel = _a.ariaLabel;\n var innerHTML = icon ? icon.content : undefined;\n var attrs = {\n id: id,\n title: title,\n 'aria-hidden': true,\n tabIndex: tabIndex,\n ariaLabel: ariaLabel,\n focusable: 'false',\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: icon ? icon.viewBox : viewBox\n };\n var svg = h('svg', __assign(__assign({}, attrs), {\n attrs: this.v3 ? undefined : attrs,\n domProps: this.v3 ? undefined : {\n innerHTML: innerHTML\n },\n innerHTML: innerHTML,\n 'class': svgClassName,\n style: svgStyle\n }), icon ? [] : [defaultSlot]);\n return h(\"span\", {\n \"class\": this.wrapperClass,\n onClick: this.handleClick,\n on: this.v3 ? undefined : {\n \"click\": this.handleClick\n },\n \"aria-hidden\": true,\n attrs: this.v3 ? undefined : {\n \"aria-hidden\": true\n }\n }, [svg]);\n },\n methods: {\n handleClick: function handleClick(e) {\n this.$emit('click', e);\n }\n }\n};\n/**\n * @hidden\n */\nvar SvgIcon = SvgIconVue2;\nexport { SvgIcon, SvgIconVue2 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { FontIcon } from './FontIcon';\nimport { SvgIcon } from './SvgIcon';\n/**\n * @hidden\n */\nvar IconVue2 = {\n name: 'KendoIcon',\n // @ts-ignore\n emits: {\n click: null\n },\n inject: {\n kendoIcons: {\n default: {\n type: 'svg',\n icons: {}\n }\n }\n },\n props: {\n name: String,\n icon: Object,\n title: String,\n themeColor: {\n type: String\n },\n size: {\n type: String\n },\n flip: {\n type: String\n },\n id: String,\n ariaLabel: String,\n viewBox: {\n type: String,\n default: '0 0 24 24'\n },\n tabIndex: Number\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n name = _a.name,\n icon = _a.icon,\n themeColor = _a.themeColor,\n size = _a.size,\n flip = _a.flip,\n id = _a.id,\n viewBox = _a.viewBox,\n tabIndex = _a.tabIndex,\n title = _a.title,\n ariaLabel = _a.ariaLabel;\n var svg = name && this.kendoIcons && this.kendoIcons.icons && this.kendoIcons.icons[name] || icon;\n var renderSVG = this.kendoIcons && this.kendoIcons.type === 'svg' && svg !== undefined;\n var newSize = this.kendoIcons && this.kendoIcons.size ? this.kendoIcons.size : size;\n var newFlip = this.kendoIcons && this.kendoIcons.flip ? this.kendoIcons.flip : flip;\n var resolvedName = name || (icon && icon.name ? icon.name : undefined);\n var commonProps = {\n themeColor: themeColor,\n size: newSize,\n flip: newFlip,\n id: id,\n tabIndex: tabIndex,\n title: title,\n ariaLabel: ariaLabel\n };\n var fontIcon = h(FontIcon, __assign(__assign({}, commonProps), {\n name: resolvedName,\n attrs: this.v3 ? undefined : __assign(__assign({}, commonProps), {\n name: resolvedName\n }),\n onClick: this.handleClick,\n on: this.v3 ? undefined : {\n 'click': this.handleClick\n }\n }));\n var svgIcon = h(SvgIcon, __assign(__assign({}, commonProps), {\n icon: svg,\n viewBox: viewBox,\n name: resolvedName,\n attrs: this.v3 ? undefined : __assign(__assign({}, commonProps), {\n icon: svg,\n viewBox: viewBox,\n name: resolvedName\n }),\n onClick: this.handleClick,\n on: this.v3 ? undefined : {\n 'click': this.handleClick\n }\n }));\n return renderSVG ? svgIcon : fontIcon;\n },\n methods: {\n handleClick: function handleClick(e) {\n this.$emit('click', e);\n }\n }\n};\n/**\n * @hidden\n */\nvar Icon = IconVue2;\nexport { Icon, IconVue2 };","var getIconName = function (iconName) {\n return (iconName && iconName.indexOf('k-i-') !== -1)\n ? iconName.split('k-i-')[1]\n : iconName;\n};\nexport { getIconName };\n","import * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\n// @ts-ignore\nvar licenseKeyUrl = 'https://www.telerik.com/kendo-vue-ui/components/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-banner';\nvar banners = new Array();\nvar WatermarkOverlayVue2 = {\n name: 'KendoWatermarkOverlay',\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n mounted: function mounted() {\n this.bannerWrapper = this.$refs.banner;\n banners.push(this.bannerWrapper);\n if (document && document.body) {\n document.body.append(this.bannerWrapper);\n }\n if (banners.length > 1) {\n for (var i = 1; i < banners.length; i++) {\n var bannerElement = banners[i];\n bannerElement.remove();\n }\n }\n },\n beforeDestroy: !!isV3 ? undefined : function () {\n this.bannerWrapper.remove();\n banners = [];\n },\n beforeUnmount: function beforeUnmount() {\n this.bannerWrapper.remove();\n banners = [];\n },\n data: function data() {\n return {\n watermarkStyles: {\n position: 'absolute',\n width: '100%',\n height: '100%',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n opacity: 0.12,\n 'z-index': 101,\n 'pointer-events': 'none',\n 'background-image': 'url(\\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAABVxSURBVHgB7Z3tVRtJE4WL9zgANgLLGRCCnAGOADmCxRGgDFAGYiOADKQMIAGO9J8ji42g37mjqlUjBgOanpn+uM85sjC2sKzbVd1dVV0tQgghhBBCCCGEEEIIKRPn3Gn1GAlJmmN1pP558J6OX9540ejh4WGlX09OTk7+EZIclXYXlY43+vVflY7PH3wd9c+AY/Wvvcb9/b0bjUYOz/hBQpICmh1oOPrEa6l/4rTR337AhIMgTSqtzg+0m8gnof7p0mD8EzmGhkFwJiR6np6e7luLL9Q/RTDTBzF+7wfWg2CxWOCHjYVET6XTdLPZrFuLL9Q/NeCkoVUQ4/d+6Ijev1yof1rAUVMvQgjJHebrSRu+CEmWo/O8hISgCjStKpgiGoDWed4AUP/hwGf++Pi4hQYyFHgDzBP3T7A8b0uo/zD4+sMBy1CwWKR/YjF+fS/Uv2di0t/eEAdBT0QnvlD/PolR/xoOgu4JUd7bFdS/e6I1foODoFuqz3M2mUziFF+of5dEb/xGwyAYCwmCVuPNYv5MqX94Yl75NWKD4PLyEm92KqQoqH9Y8Bnis0zC+A14LbxxVqiVCfUPh678plxNFYQe5pjRgAgpDAv4IOAHJyCEkDJoiPaeCyG5UA1oRIYWHNivSSbV0wLq/zbQXz+bS8kV/AeZJ35NCcYPqH8zvv4VS8kVFou8phTjB9T/NcVt+zgI9rjQDRwTgPrvKcn5v4CDYIfT/vtFiS/UHxRr/AYHwQ4t9DiVwihZ/+KN36ATKJsS9U+utr9r/EGQdQSUNFKa/geZkImQ/2rHlznnQDG7oX9b9Xwl5AUl6G9oLcSSxl8Q/p4P13YJIaQMisvzEkJ2lJjnJyQY3lnoJGfNUvP8oUhZf7c70s2eCG1wL7uhRJ0iQnCveiDIhzf7t/f9IvP8IUhJfx/b9rErUkvgRVPIE1fv6xrvbzweu7OzM3d7e4v3OhfSilT092HMJzCxF4u43eWctfFvt1uHu9nxXvF1CWmtroldfx9W+HVErINAjX+M65ngAPxnOAJ1AiMhrUjBCdD4Oya2QYBlPwx8vV47WwFg+a+XZbrz83NzANz/ByBmJ0Dj74lYBgECfrbnt6U/DB/vC7388L2rqyu8vzshwYjRCdD4e8YfBLidVgYA0X7M9jB8PGazmbu5ualnfiz9dSAsufwPTwz6+5jjp/H3CD5ofPB9343u9v3u6+U+0jyY7eEA8Hx3d4c/QjvvMyGdMZT+TeA9wBHR+DPHUn3T6bRe7uMxn89tn18v/TH7O17gQEheYM9vEX7M9hbsg/FbHED3/IPPSISQgNhyE0au+7x7PPtOQFcB3PMTMjTYf4cyRN3zL2DgMHgs/7XU99acgDIWEgUh9W/4uWMh8QKBvCh8qxSR7fmxt0eEv8kJ6MzP8/2REFL/g59bp/o0xsMAb6xAnBB5Yr+6D3X9KOpBxP/ACWA0jFnoEw+h9D/4mYd5/pGQeAlRLFK95tJy+35578PDQ+0E9LAPi3wixAUsFmKRT6I0DIIPzdJuf6R3i+UeZnsz/nqjPx47/fMpZ/54OVb/g5/BZi4pY4Pgo8s2d3CkF0Z/cXFRL/+Xy2W9BdBUH4/5JsBn9W94PZu5pI77QzMOjepiNp/j71hO//fv31sr7qmtfT73i3xWjnvAZHhH/4nquXrLwB2bueSJ27Vmvodhq4df4BmzvQb3IPxWl/zgRl/DwZA4GrhdYFUHfbHE1y0enXsJ2FLfCnggvjqBejDoTI8o38ocgJAscNq8BY4fv/Uf+J46gjkdQcbA+19fXzs7zQfR8TWcgH+kFw/u+fMDKz/o3OQETk9PLcWLPSBbeeWELd91eb+CcTc5gXr6r9J8PNKbF/7S3z+6DYcvDasBOv6M0GUduNDfv+cEYPhjIVmA+I3Vc4gaOQzfHAECvb4joAPICCzlrIJP93h/dAIYDBQ/L8wBNC37rXUblv5CB5AfGvi5h6F7Ed9GJ2CZP0b780O1vreVnnhOAFsBOoCMscg/HMBbTsCO+grJFkvvHmYCSnYA/5MMcbsiH6TykNgfr9fry58/f0oltFxcXMj379+l+h42gBcnJyfr6iXfq1nhJ56FZIeuAq+fn59Xv379Oq0CgVJNBEIydAAavLv98ePHeSX4bfX1OQSv9noQ/a7y9A8HTuAcTqB63FSPZyE5Mq3GwOW3b99kNpu9+5e/fv2Kp3+FpAW8vB3cwbLOOvZYfl9LfGdW9KOn+mZCskZXhCuL9vtLfjvshd97hWArpn8TxGn5rhZzOL/gB19DYBzzxcEeTQEtGfArB7c7xbmyVu4YExoTuNcYEL6eCkkTxHYOmna4wzQfvq8z/+o949e940hIkjTp5/ZXjm/1+VQfr856UP/EcLtqr9s/OQENDl5+wPhH3nHQZK6mJjucNvNo2w+A+icC0jaY4a2LT5MT+Mye3+l58JSupiY7XIA2XtQ/IZw2f7D9v+X6D53AZ/f8LqGrqckOF7CNF/VPAF3Or6xvv53r951Amx5+DYOAXWEjxXXQxov6R4zTSzusht8OfABE+r3U39y1iPbbIODVX3ED4/Tagk8kENQ/QiyaC1Fg7PX6frm0Mk6/wUOQ8l799+j9I0cDwcF1ov4R4Xbde2vjxi92ogsPzPrY92szD7buJiQn3K6+v17q2yxvlV1u3+TRAn4jIYTkAfbymOWx1AcwfHMEXp5/JISQ9PEDd867ohvGbvt+cwRe6+5ee7ltNpuVf7yYdA8+68fHxy0+exkY6t8RGnSxJX19yAd7fWvhjEs7NOCHb2D9/+AGqO3HQGSeuD/8PD/GggwM9e8IBPCwr7ciHnzA6NrqtW5+4QRkIByLRXrDRXhXH/XvCKRccEuPX8mHD9jr7Vc7AV32D9rJh4Oge2I0foP6d8QHnADO9kdxYw8HQXfEbPwG9e+It5yAlvdG1beNgyA8KRi/Qf07oskJIEYQw8x/SMMgGAs5CmR0UjF+g/oHwh00YzAn0OZgT1/YINBU5VTIUeCzw2eYivEb1L8l7o1mDm7X220a48x/iNtVLE4dC5OOxu2794wlMaj/kbgAzRwIIQmS4p6PEBKIp6enexo/IYWCPdNms1nnbPxat7BwvH/+P7Dt08/kUjKH+hcOxGeeeI8f86lYSuZQ/8JhsciehoBv9rMi9VdcwZcucBCkVeEXmuL1dy0vbciBkgdBycZvFKs/8/x7ShwENP49xelP8V9T0iBgncdritGfxv82/iDIORJ+EAGfCKnJXn8a//to7fgy51y45sCX1P812erPZR8hBVMZ/Ax9+2j8hBSIHumcpXikkxBCBsXtz8QnUyXndvfz8Sx8AFLUnwTEveyKE32KyAK+7IYThqT0V88/o+cPBz7TVPLEJdb2d00y+pv4elHHTEgwUigWYaq3O6LXn56/e2IeBDT+7olWf4rfHzEOAurfH9HpT/H7J6ZBQP37Jxr9Kf5w+IMAt9PKQOB6NurfP4Prjyg/jX9Y8JnDAHE/vQwE/m0MQOrfP4PqX/3jp15Dj4kQQspCK5SK7OZDCCGEEBIfbneH4kgCoT9vLCQJguqPaD8CDdXzlZDogaEuFotgKSLL9uBnYmAJiZqg+vupPlzbJSR6YKSh8sSODVyTI5j+LO9NlxDFIqzzSJfW+jPPnz4Ng+DDGRvqnz5t9GeePxNsEHx2+U798+BY/e3FzPNnwLE6Uv88oI6EEEIIIYQQQgghhBBCCCGEEEIIIYQQQkiRoHyQxz/T51gdqX8evKfjlzdeNHp4eFjp15OTk5N/hCQHjoFWOt7o139VOj5/8HXUPwOO1f+/02ApXEhJmmnTzIP6p49r28wlRFMJMgwhmnlQ/3RB854g/RwaBgF7wkVOyGYe1D9N0L4vWDMXGwTaFHIsJGpgpF5TyIm0hPqnR6XTdLPZrF2oZi7aVIDePxFgqCH1ov6EEEIIITHRtl7jixBCkuToPH8ocGMQrihmiqh/8Jnjau6hrwen/sPQOs8fAgxA5on7xxcfBigDQf2HIUSdR6g3wmKRnolGfKH+QxCT/vaGOAh6Ijrxhfr3SYz613AQdE+04gv174Ng5b1dwUHQHTEbv0H9u6X6PGeTySTu69oaBsFYSCui9/we1L87tBpzFv1naoPg8vISA2AqpBX4DPFZxm78BvUn9awF8R07yrRGPf80pdmU+hNCyJHoYa4ZHSghhWEBXwT84ASEEFIGDdmec8mJ6j+EyNAiu/9YACC+fjaXkinU/21SSPW2BuIzT/waX/yKpWQK9W+mCOMHLBZ5TfbLPg/q/5pijN/gINhTnPhC/X1cwAauScFBUKbxG9R/h9P7F0rTv6bkQVCy8Rt0Aju00OtUSqTEQZBSbX/X0AmQF4Mg5wi4cRAJn0jhlKY/aUBrx5c558ANzYUvafx7StAfqxv0UKyer4QQUg5+zAfXdgkhpAxKqvMghHgUm+cPhdufhU/Oa+qRTp6Jb0HK+oOi8/whcC+74SSTIrJlH7vitCMl/RHcqx4I8uHN/u19v9w8f1swi6aWJ+aeLxyp6F+9r2u8v/F47M7Oztzt7S3e61xIe1IqFmGFX3hi19/tLuesjX+73brFYlG/V3xdQlq7F1JwAjT+7ohVfzX+Ma5ngwPwn+EI1AmMhLQnZidA4++e2PTHsh8Gvl6vna0AsPzXy1Ld+fm5OQDu/0MRoxOg8fdHLPoj4Gd7flv6w/DxvtDLD9+7urrC+7sTEhZ/EOB2WhkYE57G3w8x6I9oP2Z7GD4es9nM3dzc1DM/lv46FpZc/ncEBgEMD7XVMjB4DxiINP7+GEp/t7/voF7uI0WJ2R4OAM93d3f4I7TzPhNCSD5Yqm86ndbLfTzm87nt8+ulP2Z/x+vQCMkL7Pktwo/Z3oJ9MH6LA+ief/AVKSEkILbdgJHr3v4ez74T0FUA9/wxgP1XF0Lozx0LiZqQ+uuefwEDh8Fj+a+lvrfmBJSxkOGBEF4UNliKyFJ9usdjgCdSQupve37s7RHhb3ICOvPzfH8swDhD54kb8vwjIVESSn+/ug91/SjqQcT/wAlgNhiz0CcyQhaLsMgnPULoX73m0nL7fnnvw8ND7QT0sA+LfGKlYRB82ks7NnNIlmP1d/sjvVtsJTDbm/HXG/3x2OmfTznzR44NgmOX7Y7NHJLms/q7gyO9MPqLi4t6+b9cLustgKb6eMw3FdwfmjFggKg3X71l4I7NHJLmHf3PVPs5/o7l9H///r214p7a2udzv8hn5RgDShsN3Czg1SE4lom6xKO4heB2rdnvYdi6QljgGbO9BvfgOLa65Ac3+hpOBinjtHkDhMdv/Qe+p45gTkeQL7bUtwIeaK5OoJ4MdKZHlG9lDkBIPsDzQ/QmJ3B6emopHqwB2corQzDDX19fOzvNh7GAr+EE/CO9eHDPnxH+0t8/ugnBpWE1QOHzwpbvurxfwbibnEA9/VdpPh7pzQjs3yyfK2rkMHxzBAj0+I6ADiAvdFsHLvT37zkBGP5YSB6YA2ha9lvrJiz9hQ4gO7CVswo+jfH80QlgMqD2GaKC35unF88JYCtAB5AnGvi9h6F7GZ9GJ2CZP0b7M8XSO4eZADqAvLHIPxzAW07AjvpKYfxPCkBngevn5+fVr1+/TqtAoFQDQUieuF2RD1J5SOyP1+v15c+fP6Vy9HJxcSHfv3+X6nsIAF2cnJysq5d8r1YAP/EshVGEA6iYVkZ/+e3bN5nNZu/+5a9fv+LpXyHJocG72x8/fpxXDv+2+vocDr+K9cDp31UrvYcDJ3AOJ1A9bqrHs5D80BlhZdF+f8lvhz3we68QZMX0T3pglWcHd6Cjdeyx/L6W+M6s6EdP9c2ElIHbneJaWStnFIRoTOBe94D4eiokSZyW72oxl/MLfvA1jB6642CPpoCXDPhljO79RwffG6kj2OrzqT5e1Xo3vZ7EC2K7B0073GGaD9/XmX/1nvFT/4Rx2syjbT+AIW+gIZ/D7ao9b//kBDQ4ePkB46f+qeICtPFy2g8gpavJSwZpW8zw1sWnyQl8Zs9P/RPFBWzj5RK6mrxkTCfb/1uu/9AJfHbPT/0Tw3XQxqthELArcETocn5lffvtXL/vBNr08KP+CQFxvLbQEwmEDQJe/RQXTi/tsBp+O/AFEOn3Un9z1yLaT/0TQgNBwb20Zg/o/SPBsjkwShh7vb5fLq2M22/wEqS8V/+9sRBChsXtuvfWxo1f7EQnHpj1se/XZh5s3U1ITrhdfX+91LdZ3io73b7JqwX8RkIIyQPs5THLY6kPYPjmCLw8/0hI3iAd8/j4uN1sNisZGLwH/3gpCYcfuHPeFd0wdtv3myPwWnf32suR+veMn+fHBy8DA0fEPHF4NOhmS/r6kA/2+tbCHZd2aMAP38D6/8ENUNtP/XvERXhXn2OxSCcggId9vRXx4LNF12avdfsLJyADQf17IkbjNzgIwoOUK27p8Sv58Nl6vf1qJ6DL/kE7+VD/jonZ+A0OgvB8wAngbH8UN/ZQ/45IwfgNDoLwvOUEtLw3qr6N1D8wiOimYvxGwyAYC2lFkxNAjCCGmf8Q6h8QRHeR7knF+A0bBJqqmgr5NO6gGYc5gTYHe/qC+gfC7bv3jCUx3K5ibepYmPJp3BvNXNyut+M0xpn/EOpPyBG4AM1cCCEJkmLMhxASiKenp3saf4Fg2Vc9FsjpSuZo3hr/115r1lMAe+bNZrPO2fip/wH+nq9iKZkD8ZknLhfq79EQ8MneK7JYpGyov5JShV9oOAjKvnSjeP1LNn6j5EHgWl7akgPF6k/j31PiIGCef09x+jPP+5qSBgGd/2uKcgIHEdCJkBp/EOSaCaHxv00J+tdoDnRJ8V+jtePLHGshaPzvk7P+pGC47SOkYCqDn6FvH42fkAJxuyPdaN01FlIGbnc/37TkFE8o3L4nAmvHCyQ5/S3gw24oYXAvuyKxbLgwktK/xNr+rsFqKpU8sa78Zlz5hSMZ/Znq6Y4UikVMf72oYyYkGNHrT+PvnpgHAVd+3ROt/jT+/ohxEFD//ohOf4rfPzENAurfP1E5AVzPRPH7xx8EuJ1WBoDGPxyH+ruhjlTjbnR9AxMhvYLPHA4YGkjPIMpP4x+WIfUnhYMZx2voMRFCSFlohVqR3XwIIaQc3O5OtrGQJFC9RkKKRCsyRxICi/YuFgvs986ERA3Eh1ahUkT4GQg0Vc9XQqInqP6ODRyTA046VJ7Y1x/XdgmJnmD6M8+bLiGKRVjemy6t9WeeN30aBsGHI/bUP33a6M88bybYIPjs9o3658Gx+tuLmefNgGN1pP55QB0JIYQQQgghhBBCCJGy+T9ftRg+rVNPfAAAAABJRU5ErkJggg==\\')'\n },\n bannerStyles: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n position: 'fixed',\n top: '16px',\n right: '16px',\n padding: '12px',\n 'border-radius': '4px',\n 'box-shadow': '0px 4px 5px 0px rgba(0, 0, 0, 0.04), 0px 2px 4px 0px rgba(0, 0, 0, 0.03)',\n 'font-size': '14px',\n 'font-weight': 400,\n 'line-height': '20px',\n 'background-color': '#FFC000',\n color: '#1E1E1E',\n 'z-index': 999999\n },\n bannerButtonStyles: {\n display: 'inline-flex',\n position: 'relative',\n border: 'none',\n 'border-radius': '4px',\n padding: '5px',\n 'background-color': 'transparent',\n transition: 'color 0.2s ease-in-out',\n outline: 'none',\n cursor: 'pointer'\n },\n showBanner: true\n };\n },\n methods: {\n onCloseBannerClick: function onCloseBannerClick() {\n this.showBanner = false;\n banners = [];\n }\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var bannerElement = this.showBanner && h(\"div\", {\n style: this.bannerStyles,\n ref: 'banner'\n }, [h(\"span\", {\n style: {\n display: 'flex',\n alignSelf: 'center',\n marginRight: '8px'\n }\n }, [h(\"svg\", {\n width: \"16\",\n attrs: this.v3 ? undefined : {\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 16 16\",\n fill: \"none\"\n },\n height: \"16\",\n viewBox: \"0 0 16 16\",\n fill: \"none\"\n }, [h(\"path\", {\n \"fill-rule\": \"evenodd\",\n attrs: this.v3 ? undefined : {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M8 1L0 15H16L8 1ZM7 6V11H9V6H7ZM7 14V12H9V14H7Z\",\n fill: \"#1E1E1E\"\n },\n \"clip-rule\": \"evenodd\",\n d: \"M8 1L0 15H16L8 1ZM7 6V11H9V6H7ZM7 14V12H9V14H7Z\",\n fill: \"#1E1E1E\"\n })])]), h(\"span\", [\"No valid license found for Kendo UI for Vue. Learn how to activate your license.\"]), h(\"div\", {\n style: {\n display: 'flex',\n alignItems: 'center',\n marginLeft: '24px'\n }\n }, [h(\"a\", {\n href: licenseKeyUrl,\n attrs: this.v3 ? undefined : {\n href: licenseKeyUrl\n },\n style: {\n marginRight: '8px',\n display: 'flex'\n }\n }, [h(\"button\", {\n title: \"Learn More\",\n attrs: this.v3 ? undefined : {\n title: \"Learn More\"\n },\n style: this.bannerButtonStyles\n }, [h(\"svg\", {\n width: \"16\",\n attrs: this.v3 ? undefined : {\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 16 16\",\n fill: \"none\"\n },\n height: \"16\",\n viewBox: \"0 0 16 16\",\n fill: \"none\"\n }, [h(\"path\", {\n d: \"M15 8C15 11.8656 11.8656 15 8 15C4.13437 15 1 11.8656 1 8C1 4.13437 4.13437 1 8 1C11.8656 1 15 4.13437 15 8ZM14 8C14 4.6875 11.3125 2 8 2C4.6875 2 2 4.6875 2 8C2 11.3125 4.6875 14 8 14C11.3125 14 14 11.3125 14 8ZM11 6C11 7.4125 10.2687 8.05937 9.73125 8.53125C9.25937 8.94688 9 9.17813 9 10H7C7 8.275 7.84688 7.525 8.40938 7.03125C8.84062 6.65312 9 6.50938 9 6C9 5.45 8.55 5 8 5C7.45 5 7 5.45 7 6H5C5 4.34375 6.34375 3 8 3C9.65625 3 11 4.34375 11 6ZM9 13V11H7V13H9Z\",\n attrs: this.v3 ? undefined : {\n d: \"M15 8C15 11.8656 11.8656 15 8 15C4.13437 15 1 11.8656 1 8C1 4.13437 4.13437 1 8 1C11.8656 1 15 4.13437 15 8ZM14 8C14 4.6875 11.3125 2 8 2C4.6875 2 2 4.6875 2 8C2 11.3125 4.6875 14 8 14C11.3125 14 14 11.3125 14 8ZM11 6C11 7.4125 10.2687 8.05937 9.73125 8.53125C9.25937 8.94688 9 9.17813 9 10H7C7 8.275 7.84688 7.525 8.40938 7.03125C8.84062 6.65312 9 6.50938 9 6C9 5.45 8.55 5 8 5C7.45 5 7 5.45 7 6H5C5 4.34375 6.34375 3 8 3C9.65625 3 11 4.34375 11 6ZM9 13V11H7V13H9Z\",\n fill: \"#1E1E1E\"\n },\n fill: \"#1E1E1E\"\n })])])]), h(\"button\", {\n title: \"Close\",\n attrs: this.v3 ? undefined : {\n title: \"Close\"\n },\n style: this.bannerButtonStyles,\n onClick: this.onCloseBannerClick,\n on: this.v3 ? undefined : {\n \"click\": this.onCloseBannerClick\n }\n }, [h(\"svg\", {\n width: \"16\",\n attrs: this.v3 ? undefined : {\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 16 16\",\n fill: \"none\"\n },\n height: \"16\",\n viewBox: \"0 0 16 16\",\n fill: \"none\"\n }, [h(\"path\", {\n d: \"M13 4.41562L9.41563 8L13 11.5844L11.5844 13L8 9.41563L4.41562 13L3 11.5844L6.58437 8L3 4.41562L4.41562 3L8 6.58437L11.5844 3L13 4.41562Z\",\n attrs: this.v3 ? undefined : {\n d: \"M13 4.41562L9.41563 8L13 11.5844L11.5844 13L8 9.41563L4.41562 13L3 11.5844L6.58437 8L3 4.41562L4.41562 3L8 6.58437L11.5844 3L13 4.41562Z\",\n fill: \"#1E1E1E\"\n },\n fill: \"#1E1E1E\"\n })])])])]);\n return h(\"div\", {\n style: this.watermarkStyles\n }, [bannerElement]);\n }\n};\n/**\n * @hidden\n */\nvar WatermarkOverlay = WatermarkOverlayVue2;\nexport { WatermarkOverlay, WatermarkOverlayVue2 };","/**\n * @hidden\n */\nexport var FOCUSABLE_ELEMENTS = [\n 'input:not([disabled]):not([type=hidden])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'button:not([disabled])',\n 'a[href]',\n 'area[href]',\n 'summary',\n 'iframe',\n 'object',\n 'embed',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]'\n];\n/**\n * @hidden\n */\nvar Navigation = /** @class */ (function () {\n function Navigation(options) {\n var _this = this;\n this.rovingTabIndex = true;\n this.update = function () { };\n this.focusNextIndex = function (target, indexDiff) {\n var all = _this.elements;\n var index = all.indexOf(target) + indexDiff;\n index = index < 0 ? all.length - 1 : index;\n _this.focusElement(all[index % all.length], target);\n };\n this.tabIndex = options.tabIndex || 0;\n this.root = options.root;\n this.selectors = options.selectors;\n this.rovingTabIndex = options.rovingTabIndex !== undefined ? options.rovingTabIndex : true;\n this.mouseEvents = options.mouseEvents || {};\n this.keyboardEvents = options.keyboardEvents || {};\n }\n Object.defineProperty(Navigation.prototype, \"elements\", {\n get: function () {\n return this.root ? Array.from(this.root.querySelectorAll(this.selectors.join(','))) : [];\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Navigation.prototype, \"first\", {\n get: function () {\n return (this.root && this.root.querySelector(this.selectors.join(','))) || null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Navigation.prototype, \"last\", {\n get: function () {\n var all = this.elements;\n return all[all.length - 1] || null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Navigation.prototype, \"current\", {\n get: function () {\n return this.elements.find(function (el) { return el.matches(':focus'); }) || null;\n },\n enumerable: false,\n configurable: true\n });\n Navigation.prototype.focusNext = function (target) {\n this.focusNextIndex(target, 1);\n };\n Navigation.prototype.focusPrevious = function (target) {\n this.focusNextIndex(target, -1);\n };\n Navigation.prototype.triggerKeyboardEvent = function (ev) {\n var target = ev.target instanceof Element && ev.target.closest(this.selectors.join(','));\n var key = ev.key === ' ' ? 'Space' : ev.key;\n var eventType = ev.type;\n if (target && this.keyboardEvents[eventType][key]) {\n this.keyboardEvents[eventType][key].call(undefined, target, this, ev);\n }\n };\n Navigation.prototype.triggerMouseEvent = function (ev) {\n var target = ev.target instanceof Element && ev.target.closest(this.selectors.join(','));\n var eventType = ev.type;\n if (target) {\n this.mouseEvents[eventType].call(undefined, target, this, ev);\n }\n };\n Navigation.prototype.focusElement = function (element, previous) {\n if (element) {\n if (previous) {\n if (this.rovingTabIndex) {\n previous.removeAttribute('tabindex');\n }\n previous.classList.remove('k-focus');\n }\n if (this.rovingTabIndex) {\n element.setAttribute('tabindex', String(this.tabIndex));\n }\n element.focus({ preventScroll: true });\n }\n };\n return Navigation;\n}());\nexport { Navigation };\n","var _a;\n/**\n * @hidden\n */\nexport var pagerInfo = 'pager.info';\n/**\n * @hidden\n */\nexport var pagerFirstPage = 'pager.firstPage';\n/**\n * @hidden\n */\nexport var pagerPreviousPage = 'pager.previousPage';\n/**\n * @hidden\n */\nexport var pagerNextPage = 'pager.nextPage';\n/**\n * @hidden\n */\nexport var pagerLastPage = 'pager.lastPage';\n/**\n * @hidden\n */\nexport var pagerItemPerPage = 'pager.itemsPerPage';\n/**\n * @hidden\n */\nexport var pagerPage = 'pager.page';\n/**\n * @hidden\n */\nexport var pagerOf = 'pager.of';\n/**\n * @hidden\n */\nexport var pagerTotalPages = 'pager.totalPages';\n/**\n * @hidden\n */\nexport var filterEqOperator = 'filter.eqOperator';\n/**\n * @hidden\n */\nexport var filterNotEqOperator = 'filter.notEqOperator';\n/**\n * @hidden\n */\nexport var filterIsNullOperator = 'filter.isNullOperator';\n/**\n * @hidden\n */\nexport var filterIsNotNullOperator = 'filter.isNotNullOperator';\n/**\n * @hidden\n */\nexport var filterIsEmptyOperator = 'filter.isEmptyOperator';\n/**\n * @hidden\n */\nexport var filterIsNotEmptyOperator = 'filter.isNotEmptyOperator';\n/**\n * @hidden\n */\nexport var filterStartsWithOperator = 'filter.startsWithOperator';\n/**\n * @hidden\n */\nexport var filterContainsOperator = 'filter.containsOperator';\n/**\n * @hidden\n */\nexport var filterNotContainsOperator = 'filter.notContainsOperator';\n/**\n * @hidden\n */\nexport var filterEndsWithOperator = 'filter.endsWithOperator';\n/**\n * @hidden\n */\nexport var filterGteOperator = 'filter.gteOperator';\n/**\n * @hidden\n */\nexport var filterGtOperator = 'filter.gtOperator';\n/**\n * @hidden\n */\nexport var filterLteOperator = 'filter.lteOperator';\n/**\n * @hidden\n */\nexport var filterLtOperator = 'filter.ltOperator';\n/**\n * @hidden\n */\nexport var filterIsTrue = 'filter.isTrue';\n/**\n * @hidden\n */\nexport var filterIsFalse = 'filter.isFalse';\n/**\n * @hidden\n */\nexport var filterAfterOrEqualOperator = 'filter.afterOrEqualOperator';\n/**\n * @hidden\n */\nexport var filterAfterOperator = 'filter.afterOperator';\n/**\n * @hidden\n */\nexport var filterBeforeOperator = 'filter.beforeOperator';\n/**\n * @hidden\n */\nexport var filterBeforeOrEqualOperator = 'filter.beforeOrEqualOperator';\n/**\n * @hidden\n */\nexport var filterAndLogic = 'filter.andLogic';\n/**\n * @hidden\n */\nexport var filterOrLogic = 'filter.orLogic';\n/**\n * @hidden\n */\nexport var filterAddExpression = 'filter.addExpression';\n/**\n * @hidden\n */\nexport var filterAddGroup = 'filter.addGroup';\n/**\n * @hidden\n */\nexport var filterClose = 'filter.close';\n/**\n * @hidden\n */\nexport var columnMenuFilterClearButton = 'columnMenu.filterClearButton';\n/**\n * @hidden\n */\nexport var columnMenuFilterSubmitButton = 'columnMenu.filterSubmitButton';\n/**\n * @hidden\n */\nexport var columnMenuFilterTitle = 'columnMenu.filterTitle';\n/**\n * @hidden\n */\nexport var columnMenuSortAscending = 'columnMenu.sortAscending';\n/**\n * @hidden\n */\nexport var columnMenuSortDescending = 'columnMenu.sortDescending';\n/**\n * @hidden\n */\nexport var columnMenuFilterEqOperator = 'columnMenu.filterEqOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterNotEqOperator = 'columnMenu.filterNotEqOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterIsNullOperator = 'columnMenu.filterIsNullOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterIsNotNullOperator = 'columnMenu.filterIsNotNullOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterIsEmptyOperator = 'columnMenu.filterIsEmptyOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterIsNotEmptyOperator = 'columnMenu.filterIsNotEmptyOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterStartsWithOperator = 'columnMenu.filterStartsWithOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterContainsOperator = 'columnMenu.filterContainsOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterNotContainsOperator = 'columnMenu.filterNotContainsOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterEndsWithOperator = 'columnMenu.filterEndsWithOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterGteOperator = 'columnMenu.filterGteOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterGtOperator = 'columnMenu.filterGtOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterLteOperator = 'columnMenu.filterLteOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterLtOperator = 'columnMenu.filterLtOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterIsTrue = 'columnMenu.filterIsTrue';\n/**\n * @hidden\n */\nexport var columnMenuFilterAfterOrEqualOperator = 'columnMenu.filterAfterOrEqualOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterAfterOperator = 'columnMenu.filterAfterOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterBeforeOperator = 'columnMenu.filterBeforeOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterBeforeOrEqualOperator = 'columnMenu.filterBeforeOrEqualOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterAndLogic = 'columnMenu.filterAndLogic';\n/**\n * @hidden\n */\nexport var columnMenuFilterOrLogic = 'columnMenu.filterOrLogic';\n/**\n * @hidden\n */\nexport var sortAriaLabel = 'sort.ariaLabel';\n/**\n * @hidden\n */\nexport var filterAriaLabel = 'filter.ariaLabel';\n/**\n * @hidden\n */\nexport var messages = (_a = {},\n _a[pagerItemPerPage] = 'items per page',\n _a[pagerInfo] = '{0} - {1} of {2} items',\n _a[pagerFirstPage] = 'Go to the first page',\n _a[pagerPreviousPage] = 'Go to the previous page',\n _a[pagerNextPage] = 'Go to the next page',\n _a[pagerLastPage] = 'Go to the last page',\n _a[pagerPage] = 'Page',\n _a[pagerOf] = 'Of',\n _a[pagerTotalPages] = '{0}',\n _a[sortAriaLabel] = 'Sortable',\n _a[filterAriaLabel] = 'Filter',\n _a[filterEqOperator] = 'Is equal to',\n _a[filterNotEqOperator] = 'Is not equal to',\n _a[filterIsNullOperator] = 'Is null',\n _a[filterIsNotNullOperator] = 'Is not null',\n _a[filterIsEmptyOperator] = 'Is empty',\n _a[filterIsNotEmptyOperator] = 'Is not empty',\n _a[filterStartsWithOperator] = 'Starts with',\n _a[filterContainsOperator] = 'Contains',\n _a[filterNotContainsOperator] = 'Does not contain',\n _a[filterEndsWithOperator] = 'Ends with',\n _a[filterGteOperator] = 'Is greater than or equal to',\n _a[filterGtOperator] = 'Is greater than',\n _a[filterLteOperator] = 'Is less than or equal to',\n _a[filterLtOperator] = 'Is less than',\n _a[filterIsTrue] = 'Is true',\n _a[filterIsFalse] = 'Is false',\n _a[filterAfterOrEqualOperator] = 'Is after or equal to',\n _a[filterAfterOperator] = 'Is after',\n _a[filterBeforeOperator] = 'Is before',\n _a[filterBeforeOrEqualOperator] = 'Is before or equal to',\n _a[filterAndLogic] = 'And',\n _a[filterOrLogic] = 'Or',\n _a[filterAddExpression] = 'Add Expression',\n _a[filterAddGroup] = 'Add Group',\n _a[filterClose] = 'Close',\n _a[columnMenuFilterClearButton] = 'Clear',\n _a[columnMenuFilterSubmitButton] = 'Filter',\n _a[columnMenuFilterTitle] = 'Filter',\n _a[columnMenuSortAscending] = 'Sort Ascending',\n _a[columnMenuSortDescending] = 'Sort Descending',\n _a[columnMenuFilterEqOperator] = 'Is equal to',\n _a[columnMenuFilterNotEqOperator] = 'Is not equal to',\n _a[columnMenuFilterIsNullOperator] = 'Is null',\n _a[columnMenuFilterIsNotNullOperator] = 'Is not null',\n _a[columnMenuFilterIsEmptyOperator] = 'Is empty',\n _a[columnMenuFilterIsNotEmptyOperator] = 'Is not empty',\n _a[columnMenuFilterStartsWithOperator] = 'Starts with',\n _a[columnMenuFilterContainsOperator] = 'Contains',\n _a[columnMenuFilterNotContainsOperator] = 'Does not contain',\n _a[columnMenuFilterEndsWithOperator] = 'Ends with',\n _a[columnMenuFilterGteOperator] = 'Is greater than or equal to',\n _a[columnMenuFilterGtOperator] = 'Is greater than',\n _a[columnMenuFilterLteOperator] = 'Is less than or equal to',\n _a[columnMenuFilterLtOperator] = 'Is less than',\n _a[columnMenuFilterIsTrue] = 'Is true',\n _a[columnMenuFilterAfterOrEqualOperator] = 'Is after or equal to',\n _a[columnMenuFilterAfterOperator] = 'Is after',\n _a[columnMenuFilterBeforeOperator] = 'Is before',\n _a[columnMenuFilterBeforeOrEqualOperator] = 'Is before or equal to',\n _a[columnMenuFilterAndLogic] = 'And',\n _a[columnMenuFilterOrLogic] = 'Or',\n _a);\n","var _Draggable;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport KendoDraggable from '@telerik/kendo-draggable';\nimport { getDefaultSlots } from './defaultSlots';\n/**\n * Represents the default `Draggable` component.\n */\n\nvar Draggable = (_Draggable = {\n // @ts-ignore\n emits: {\n press: null,\n drag: null,\n release: null\n },\n inheritAttrs: false,\n created: function created() {\n this.element = null;\n this.draggable = new KendoDraggable({\n press: this.press,\n drag: this.drag,\n release: this.release\n });\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n mounted: function mounted() {\n if (this.$el) {\n this.element = this.$el.nodeType === 3 ? this.$el.nextElementSibling : this.$el;\n this.draggable.bindTo(this.element);\n }\n },\n destroyed: !!gh ? undefined : function () {\n this.draggable.destroy();\n },\n // @ts-ignore\n unmounted: function unmounted() {\n this.draggable.destroy();\n },\n methods: {\n press: function press(event) {\n if (this.element) {\n this.$emit('press', event, this.element);\n }\n },\n drag: function drag(event) {\n if (this.element) {\n this.$emit('drag', event, this.element);\n }\n },\n release: function release(event) {\n if (this.element) {\n this.$emit('release', event, this.element);\n }\n }\n }\n}, _defineProperty(_Draggable, \"setup\", !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n}), _defineProperty(_Draggable, \"render\", function render(createElement) {\n // @ts-ignore\n var h = gh || createElement;\n return getDefaultSlots(this);\n}), _Draggable);\nexport { Draggable };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { Input } from '@progress/kendo-vue-inputs'; // tslint:enable:max-line-length\n\nvar TextFilter = {\n name: 'kendoTextFilter',\n props: {\n filter: {\n type: Object,\n required: true\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n return (// @ts-ignore\n h(Input, {\n value: this.$props.filter.value || '',\n attrs: this.v3 ? undefined : {\n value: this.$props.filter.value || ''\n },\n onInput: this.onChange,\n on: this.v3 ? undefined : {\n \"input\": this.onChange\n }\n })\n );\n },\n methods: {\n onChange: function onChange(event) {\n this.$emit('filterchange', {\n nextFilter: __assign(__assign({}, this.$props.filter), {\n value: event.value\n })\n });\n }\n }\n};\nvar TextFilterVue3 = TextFilter;\nexport { TextFilter, TextFilterVue3 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { NumericTextBox } from '@progress/kendo-vue-inputs'; // tslint:enable:max-line-length\n\nvar NumericFilter = {\n name: 'kendoNumericFilter',\n props: {\n filter: {\n type: Object,\n required: true\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var filter = this.$props.filter;\n return (// @ts-ignore\n h(NumericTextBox, {\n value: typeof filter.value === 'number' ? filter.value : null,\n attrs: this.v3 ? undefined : {\n value: typeof filter.value === 'number' ? filter.value : null\n },\n onChange: this.onChange,\n on: this.v3 ? undefined : {\n \"change\": this.onChange\n }\n })\n );\n },\n methods: {\n onChange: function onChange(event) {\n this.$emit('filterchange', {\n nextFilter: __assign(__assign({}, this.$props.filter), {\n value: event.value\n })\n });\n }\n }\n};\nvar NumericFilterVue3 = NumericFilter;\nexport { NumericFilter, NumericFilterVue3 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { DatePicker } from '@progress/kendo-vue-dateinputs'; // tslint:enable:max-line-length\n\nvar DateFilter = {\n name: 'KendoDateFilter',\n props: {\n filter: {\n type: Object,\n required: true\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var filter = this.$props.filter;\n return (// @ts-ignore\n h(DatePicker, {\n value: filter.value || null,\n attrs: this.v3 ? undefined : {\n value: filter.value || null\n },\n onChange: this.onChange,\n on: this.v3 ? undefined : {\n \"change\": this.onChange\n }\n })\n );\n },\n methods: {\n onChange: function onChange(event) {\n this.$emit('filterchange', {\n nextFilter: __assign(__assign({}, this.$props.filter), {\n value: event.value\n })\n });\n }\n }\n};\nvar DateFilterVue3 = DateFilter;\nexport { DateFilter, DateFilterVue3 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { DropDownList } from '@progress/kendo-vue-dropdowns';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { messages } from './../../messages'; // tslint:enable:max-line-length\n\nvar EnumFilter = {\n name: 'KendoEnumFilter',\n props: {\n filter: {\n type: Object,\n required: true\n },\n dataItems: Array,\n defaultItem: Object\n },\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var locService = provideLocalizationService(this);\n var _a = this.$props,\n filter = _a.filter,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n defaultItem = _a.defaultItem;\n var locData = dataItems.map(function (item) {\n return __assign(__assign({}, item), {\n text: locService.toLanguageString(item.text, messages[item.text] || item.text)\n });\n });\n return (// @ts-ignore\n h(DropDownList, {\n value: locData.find(function (i) {\n return i.value === filter.value;\n }) || null,\n attrs: this.v3 ? undefined : {\n value: locData.find(function (i) {\n return i.value === filter.value;\n }) || null,\n defaultItem: defaultItem,\n dataItems: locData,\n textField: \"text\"\n },\n onChange: this.onChange,\n on: this.v3 ? undefined : {\n \"change\": this.onChange\n },\n defaultItem: defaultItem,\n dataItems: locData,\n textField: \"text\"\n })\n );\n },\n methods: {\n onChange: function onChange(event) {\n this.$emit('filterchange', {\n nextFilter: __assign(__assign({}, this.$props.filter), {\n value: event.value.value\n })\n });\n }\n }\n};\nvar EnumFilterVue3 = EnumFilter;\nexport { EnumFilter, EnumFilterVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { EnumFilter } from './EnumFilter';\nimport { filterIsTrue, filterIsFalse } from '../../messages'; // tslint:enable:max-line-length\n\nvar BooleanFilter = {\n name: 'KendoBooleanFilter',\n props: {\n filter: {\n type: Object,\n required: true\n },\n dataItems: {\n type: Array,\n default: function _default() {\n return undefined;\n }\n },\n defaultItem: Object\n },\n data: function data() {\n return {\n currentData: [{\n text: filterIsTrue,\n value: true\n }, {\n text: filterIsFalse,\n value: false\n }]\n };\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n return (// @ts-ignore\n h(EnumFilter, {\n filter: this.$props.filter,\n attrs: this.v3 ? undefined : {\n filter: this.$props.filter,\n dataItems: this.$props.dataItems || this.currentData,\n defaultItem: this.$props.defaultItem\n },\n onFilterchange: this.handleFilterChange,\n on: this.v3 ? undefined : {\n \"filterchange\": this.handleFilterChange\n },\n dataItems: this.$props.dataItems || this.currentData,\n defaultItem: this.$props.defaultItem\n })\n );\n },\n methods: {\n handleFilterChange: function handleFilterChange(event) {\n this.$emit('filterchange', event);\n }\n }\n};\nvar BooleanFilterVue3 = BooleanFilter;\nexport { BooleanFilter, BooleanFilterVue3 };","/* tslint:disable:no-bitwise */\n/**\n * @hidden\n */\nvar guid = function () {\n var id = '';\n var i;\n var random;\n for (i = 0; i < 32; i++) {\n random = Math.random() * 16 | 0;\n if (i === 8 || i === 12 || i === 16 || i === 20) {\n id += '-';\n }\n id += (i === 12 ? 4 : (i === 16 ? (random & 3 | 8) : random)).toString(16);\n }\n return id;\n};\nexport { guid };\n","/**\n * @hidden\n */\nvar Keys = {\n backspace: 8,\n tab: 9,\n enter: 13,\n shift: 16,\n esc: 27,\n space: 32,\n pageUp: 33,\n pageDown: 34,\n end: 35,\n home: 36,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n delete: 46\n};\nexport { Keys };\n","/**\n * @hidden\n */\nvar canUseDOM = Boolean(\n// from fbjs\ntypeof window !== 'undefined' &&\n window.document &&\n window.document.createElement);\nexport { canUseDOM };\n","/**\n * @hidden\n */\nexport function getDefaultSlots(component) {\n var defaultSlots = component.$slots.default;\n return (component.v3 && defaultSlots && typeof defaultSlots === 'function') ? defaultSlots() : defaultSlots;\n}\n","/**\n * @hidden\n */\nvar noop = function () { };\nexport { noop };\n","import { FIELD_REGEX } from './constants';\nvar getterCache = {};\ngetterCache.undefined = function () { return undefined; };\n/**\n * @hidden\n */\nexport function getter(field) {\n if (getterCache[field]) {\n return getterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n getterCache[field] = function (obj) {\n var result = obj;\n for (var idx = 0; idx < fields.length && result; idx++) {\n result = result[fields[idx]];\n }\n return result;\n };\n return getterCache[field];\n}\n","import { FIELD_REGEX } from './constants';\nvar setterCache = {};\nsetterCache.undefined = function (obj) { return obj; };\n/**\n * @hidden\n */\nexport function setter(field) {\n if (setterCache[field]) {\n return setterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n setterCache[field] = function (obj, value) {\n var root = obj;\n var depth = fields.length - 1;\n for (var idx = 0; idx < depth && root; idx++) {\n root = root[fields[idx]] = root[fields[idx]] || {};\n }\n root[fields[depth]] = value;\n };\n return setterCache[field];\n}\n","/**\n * @hidden\n */\nexport function hasListener(eventName) {\n if (this.v3) {\n return Object.keys(this.$attrs).map(function (name) { return name.toLowerCase(); })\n .some(function (event) { return event.endsWith(eventName.toLowerCase()); });\n }\n else {\n return this.$listeners[eventName];\n }\n}\n/**\n * @hidden\n */\nexport function getListeners() {\n if (this.v3) {\n var listeners = {};\n for (var key in (this.$attrs)) {\n if (key.startsWith('on')) {\n listeners[key] = this.$attrs[key];\n }\n }\n return listeners;\n }\n else {\n return this.$listeners;\n }\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\n/**\n * @hidden\n */\nexport function templateRendering(template, listeners) {\n if (!template) {\n return undefined;\n }\n var scopedSlot = gh ?\n this.$slots[template] ||\n (template.toLowerCase ? this.$slots[template.toLowerCase()]\n : null) :\n this.$scopedSlots[template] ||\n (template.toLowerCase ? this.$scopedSlots[template.toLowerCase()]\n : null);\n // @ts-ignore\n if (typeof template === 'string' && scopedSlot) {\n // @ts-ignore\n return { type: 'slot', render: scopedSlot, listeners: listeners };\n }\n if (typeof template === 'string' || typeof template === 'object' ||\n (typeof template === 'function' && template.component)) {\n return { type: 'component', render: template, listeners: listeners };\n }\n return { type: 'renderFunction', render: template, listeners: listeners };\n}\n/**\n * @hidden\n */\nexport function getTemplate(_a) {\n var h = _a.h, template = _a.template, defaultRendering = _a.defaultRendering, defaultSlots = _a.defaultSlots, additionalProps = _a.additionalProps, additionalListeners = _a.additionalListeners, swapDefaultSlots = _a.swapDefaultSlots;\n if (!template) {\n return defaultRendering;\n }\n var events;\n var props;\n var componentOptions;\n if (gh) {\n var passedProps = defaultRendering ? defaultRendering.props : {};\n events = __assign(__assign({}, transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, passedProps), additionalProps), events);\n componentOptions = __assign(__assign({}, props), events);\n }\n else {\n var hasComponentOptions = defaultRendering && defaultRendering.componentOptions;\n var defaultListeners = hasComponentOptions ?\n defaultRendering.componentOptions.listeners : {};\n var defaultProps = hasComponentOptions ?\n defaultRendering.componentOptions.propsData : {};\n events = __assign(__assign(__assign(__assign({}, defaultListeners), additionalListeners), transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, defaultProps), additionalProps), events);\n componentOptions = { props: props, on: events };\n }\n if (template.type === 'slot') {\n var slotTemplate = template.render({ props: props, listeners: events, methods: events,\n defaultSlots: defaultSlots });\n return slotTemplate ? slotTemplate[0] : undefined;\n }\n else if (template.type === 'renderFunction') {\n if (swapDefaultSlots) {\n return template.render(h, defaultRendering, defaultSlots, props, events);\n }\n return template.render(h, defaultRendering, props, events, defaultSlots);\n }\n else {\n return h(template.render, componentOptions, gh ? function () { return [defaultSlots]; } : [defaultSlots]);\n }\n}\n/**\n * @hidden\n */\nexport function transformListeners(listeners) {\n if (!listeners) {\n return listeners;\n }\n var newListeners = {};\n var listenersKeys = Object.keys(listeners);\n for (var i = 0; i < listenersKeys.length; i++) {\n var currentKey = listenersKeys[i];\n newListeners['on' + currentKey.charAt(0).toUpperCase() + currentKey.slice(1)] =\n listeners[currentKey];\n }\n return newListeners;\n}\n","var __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n};\n\nvar _a, _b, _c;\n/**\n * @hidden\n */\n\n\nexport var KEYBOARD_NAV_DATA_LEVEL = 'data-keyboardnavlevel';\n/**\n * @hidden\n */\n\nexport var KEYBOARD_NAV_DATA_SCOPE = 'data-keyboardnavscope';\n/**\n * @hidden\n */\n\nexport var KEYBOARD_NAV_DATA_HEADER = 'data-keyboardnavheader';\n/**\n * @hidden\n */\n\nexport var KEYBOARD_NAV_DATA_BODY = 'data-keyboardnavbody';\n/**\n * @hidden\n */\n\nexport var KEYBOARD_NAV_DATA_ID = 'data-keyboardnavid';\n/**\n * @hidden\n */\n\nexport var KEYBOARD_NAV_DATA_ZONE = 'data-keyboardnavzone';\n/**\n * @hidden\n */\n\nexport var KEYBOARD_NAV_FILTER_COL_SUFFIX = '_filter';\nvar FOCUSABLE_ELEMENTS_BASE = ['input:not([disabled]):not([type=hidden])', 'select:not([disabled])', 'textarea:not([disabled])', 'button:not([disabled])', 'a[href]', 'area[href]', 'summary', 'iframe', 'object', 'embed', 'audio[controls]', 'video[controls]', '[contenteditable]'];\n/**\n * @hidden\n */\n\nexport var FOCUSABLE_ELEMENTS = __spreadArrays(FOCUSABLE_ELEMENTS_BASE, ['[tabindex]']);\n/**\n * @hidden\n */\n\nexport var TABBABLE_ELEMENTS = __spreadArrays(FOCUSABLE_ELEMENTS_BASE, ['[tabindex]']).map(function (selector) {\n return selector + ':not([tabindex=\"-1\"])';\n});\n/**\n * @hidden\n */\n\nexport var tableKeyboardNavigationScopeAttributes = (_a = {}, _a[KEYBOARD_NAV_DATA_SCOPE] = true, _a);\n/**\n * @hidden\n */\n\nexport var tableKeyboardNavigationHeaderAttributes = (_b = {}, _b[KEYBOARD_NAV_DATA_HEADER] = true, _b);\n/**\n * @hidden\n */\n\nexport var tableKeyboardNavigationBodyAttributes = (_c = {}, _c[KEYBOARD_NAV_DATA_BODY] = true, _c);","var __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { filterEqOperator, filterNotEqOperator, filterIsNullOperator, filterIsNotNullOperator, filterIsEmptyOperator, filterIsNotEmptyOperator, filterStartsWithOperator, filterContainsOperator, filterNotContainsOperator, filterEndsWithOperator, filterGteOperator, filterGtOperator, filterLteOperator, filterLtOperator, filterAfterOrEqualOperator, filterAfterOperator, filterBeforeOperator, filterBeforeOrEqualOperator } from './../messages';\nvar textOperators = [\n { text: filterContainsOperator, operator: 'contains' },\n { text: filterNotContainsOperator, operator: 'doesnotcontain' },\n { text: filterEqOperator, operator: 'eq' },\n { text: filterNotEqOperator, operator: 'neq' },\n { text: filterStartsWithOperator, operator: 'startswith' },\n { text: filterEndsWithOperator, operator: 'endswith' },\n { text: filterIsNullOperator, operator: 'isnull' },\n { text: filterIsNotNullOperator, operator: 'isnotnull' },\n { text: filterIsEmptyOperator, operator: 'isempty' },\n { text: filterIsNotEmptyOperator, operator: 'isnotempty' }\n];\nvar numericOperators = [\n { text: filterEqOperator, operator: 'eq' },\n { text: filterNotEqOperator, operator: 'neq' },\n { text: filterGteOperator, operator: 'gte' },\n { text: filterGtOperator, operator: 'gt' },\n { text: filterLteOperator, operator: 'lte' },\n { text: filterLtOperator, operator: 'lt' },\n { text: filterIsNullOperator, operator: 'isnull' },\n { text: filterIsNotNullOperator, operator: 'isnotnull' }\n];\nvar dateOperators = [\n { text: filterEqOperator, operator: 'eq' },\n { text: filterNotEqOperator, operator: 'neq' },\n { text: filterAfterOrEqualOperator, operator: 'gte' },\n { text: filterAfterOperator, operator: 'gt' },\n { text: filterBeforeOperator, operator: 'lt' },\n { text: filterBeforeOrEqualOperator, operator: 'lte' },\n { text: filterIsNullOperator, operator: 'isnull' },\n { text: filterIsNotNullOperator, operator: 'isnotnull' }\n];\nvar booleanOperators = [\n { text: filterEqOperator, operator: 'eq' },\n { text: filterNotEqOperator, operator: 'neq' }\n];\n/**\n * Represents the operators for the TextFilter, NumericFilter, DateFilter and BooleanFilter components.\n *\n * The text field of each operator object will be resolved according to the\n * [localization messages]({% slug globalization_datatools %}#toc-messages).\n */\nvar Operators = /** @class */ (function () {\n function Operators() {\n }\n Object.defineProperty(Operators, \"text\", {\n /**\n * An array containing the operators for the TextFilter component.\n *\n * The operators are:\n *\n * - { text: 'filter.containsOperator', operator: 'contains' }\n * - { text: 'filter.notContainsOperator', operator: 'doesnotcontain' }\n * - { text: 'filter.eqOperator', operator: 'eq' }\n * - { text: 'filter.notEqOperator', operator: 'neq' }\n * - { text: 'filter.startsWithOperator', operator: 'startswith' }\n * - { text: 'filter.endsWithOperator', operator: 'endswith' }\n * - { text: 'filter.isNullOperator', operator: 'isnull' }\n * - { text: 'filter.isNotNullOperator', operator: 'isnotnull' }\n * - { text: 'filter.isEmptyOperator', operator: 'isempty' }\n * - { text: 'filter.isNotEmptyOperator', operator: 'isnotempty' }\n */\n get: function () {\n return __spreadArrays(textOperators);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Operators, \"numeric\", {\n /**\n * An array containing the operators for the NumericFilter component.\n *\n * The operators are:\n *\n * - { text: 'filter.eqOperator', operator: 'eq' }\n * - { text: 'filter.notEqOperator', operator: 'neq' }\n * - { text: 'filter.gteOperator', operator: 'gte' }\n * - { text: 'filter.gtOperator', operator: 'gt' }\n * - { text: 'filter.lteOperator', operator: 'lte' }\n * - { text: 'filter.ltOperator', operator: 'lt' }\n * - { text: 'filter.isNullOperator', operator: 'isnull' }\n * - { text: 'filter.isNotNullOperator', operator: 'isnotnull' }\n */\n get: function () {\n return __spreadArrays(numericOperators);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Operators, \"date\", {\n /**\n * An array containing the operators for the DateFilter component.\n *\n * The operators are:\n *\n * - { text: 'filter.eqOperator', operator: 'eq' }\n * - { text: 'filter.notEqOperator', operator: 'neq' }\n * - { text: 'filter.afterOrEqualOperator', operator: 'gte' }\n * - { text: 'filter.afterOperator', operator: 'gt' }\n * - { text: 'filter.beforeOperator', operator: 'lt' }\n * - { text: 'filter.beforeOrEqualOperator', operator: 'lte' }\n * - { text: 'filter.isNullOperator', operator: 'isnull' }\n * - { text: 'filter.isNotNullOperator', operator: 'isnotnull' }\n */\n get: function () {\n return __spreadArrays(dateOperators);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Operators, \"boolean\", {\n /**\n * An array containing the operators for the BooleanFilter component.\n *\n * The operators are:\n *\n * - { text: 'filter.eqOperator', operator: 'eq' }\n * - { text: 'filter.notEqOperator', operator: 'neq' }\n */\n get: function () {\n return __spreadArrays(booleanOperators);\n },\n enumerable: false,\n configurable: true\n });\n return Operators;\n}());\nexport { Operators };\n/**\n * @hidden\n */\nexport var stringOperator = function (operator) {\n return operator === 'contains' || operator === 'doesnotcontain' || operator === 'startswith' || operator === 'endswith';\n};\n/**\n * @hidden\n */\nexport var unaryOperator = function (operator) {\n return operator === 'isnull' || operator === 'isnotnull' || operator === 'isempty' || operator === 'isnotempty';\n};\n","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getTemplate } from '@progress/kendo-vue-common';\nimport { Button, Toolbar, ToolbarItem } from '@progress/kendo-vue-buttons';\nimport { DropDownList } from '@progress/kendo-vue-dropdowns';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { unaryOperator, stringOperator } from './operators';\nimport { messages, filterClose } from '../messages';\nimport { TextFilter } from './filters/TextFilter';\nimport { NumericFilter } from './filters/NumericFilter';\nimport { BooleanFilter } from './filters/BooleanFilter';\nimport { DateFilter } from './filters/DateFilter'; // tslint:enable:max-line-length\n\nvar Expression = {\n name: 'KendoExpression',\n // @ts-ignore\n emits: {\n change: null,\n remove: null\n },\n props: {\n filter: {\n type: Object,\n required: true\n },\n fields: {\n type: Array,\n required: true\n }\n },\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var _a = this.$props,\n fields = _a.fields,\n filter = _a.filter;\n var field = fields.find(function (f) {\n return f.name === filter.field;\n });\n var locService = provideLocalizationService(this);\n var operators = (field && field.operators || []).map(function (o) {\n return __assign(__assign({}, o), {\n text: locService.toLanguageString(o.text, messages[o.text] || o.text)\n });\n });\n var defaultRendering = null;\n\n var filterEditors = function filterEditors(filterName, filterRender) {\n switch (filterName) {\n case 'numeric':\n defaultRendering = // @ts-ignore\n h(NumericFilter, {\n filter: filter,\n attrs: this.v3 ? undefined : {\n filter: filter\n },\n onFilterchange: this.onInputChange,\n on: this.v3 ? undefined : {\n \"filterchange\": this.onInputChange\n }\n });\n break;\n\n case 'date':\n defaultRendering = // @ts-ignore\n h(DateFilter, {\n filter: filter,\n attrs: this.v3 ? undefined : {\n filter: filter\n },\n onFilterchange: this.onInputChange,\n on: this.v3 ? undefined : {\n \"filterchange\": this.onInputChange\n }\n });\n break;\n\n case 'boolean':\n defaultRendering = // @ts-ignore\n h(BooleanFilter, {\n filter: filter,\n attrs: this.v3 ? undefined : {\n filter: filter\n },\n onFilterchange: this.onInputChange,\n on: this.v3 ? undefined : {\n \"filterchange\": this.onInputChange\n }\n });\n break;\n\n default:\n defaultRendering = // @ts-ignore\n h(TextFilter, {\n filter: filter,\n attrs: this.v3 ? undefined : {\n filter: filter\n },\n onFilterchange: this.onInputChange,\n on: this.v3 ? undefined : {\n \"filterchange\": this.onInputChange\n }\n });\n break;\n }\n\n return getTemplate.call(this, {\n h: h,\n template: filterRender,\n defaultRendering: defaultRendering,\n additionalProps: {\n filter: filter\n },\n additionalListeners: {\n filterchange: this.onInputChange\n }\n });\n };\n\n return h(\"div\", {\n \"class\": \"k-filter-toolbar\"\n }, [// @ts-ignore function children \n h(Toolbar, {\n keyboardNavigation: false,\n attrs: this.v3 ? undefined : {\n keyboardNavigation: false\n }\n }, this.v3 ? function () {\n return [// @ts-ignore function children \n h(ToolbarItem, {\n \"class\": \"k-filter-field\"\n }, _this.v3 ? function () {\n return [// @ts-ignore \n h(DropDownList, {\n \"class\": \"k-filter-dropdown\",\n dataItems: fields,\n attrs: _this.v3 ? undefined : {\n dataItems: fields,\n textField: \"label\",\n value: fields.find(function (f) {\n return f.name === filter.field;\n })\n },\n textField: \"label\",\n value: fields.find(function (f) {\n return f.name === filter.field;\n }),\n onChange: _this.onFieldChange,\n on: _this.v3 ? undefined : {\n \"change\": _this.onFieldChange\n }\n })];\n } : [h(DropDownList, {\n \"class\": \"k-filter-dropdown\",\n dataItems: fields,\n attrs: _this.v3 ? undefined : {\n dataItems: fields,\n textField: \"label\",\n value: fields.find(function (f) {\n return f.name === filter.field;\n })\n },\n textField: \"label\",\n value: fields.find(function (f) {\n return f.name === filter.field;\n }),\n onChange: _this.onFieldChange,\n on: _this.v3 ? undefined : {\n \"change\": _this.onFieldChange\n }\n })]), // @ts-ignore function children \n h(ToolbarItem, {\n \"class\": \"k-filter-operator\"\n }, _this.v3 ? function () {\n return [// @ts-ignore\n h(DropDownList, {\n dataItems: operators,\n attrs: _this.v3 ? undefined : {\n dataItems: operators,\n textField: \"text\",\n value: operators.find(function (o) {\n return o.operator === filter.operator;\n })\n },\n textField: \"text\",\n value: operators.find(function (o) {\n return o.operator === filter.operator;\n }),\n onChange: _this.onOperatorChange,\n on: _this.v3 ? undefined : {\n \"change\": _this.onOperatorChange\n }\n })];\n } : [h(DropDownList, {\n dataItems: operators,\n attrs: _this.v3 ? undefined : {\n dataItems: operators,\n textField: \"text\",\n value: operators.find(function (o) {\n return o.operator === filter.operator;\n })\n },\n textField: \"text\",\n value: operators.find(function (o) {\n return o.operator === filter.operator;\n }),\n onChange: _this.onOperatorChange,\n on: _this.v3 ? undefined : {\n \"change\": _this.onOperatorChange\n }\n })]), // @ts-ignore function children \n h(ToolbarItem, {\n \"class\": \"k-filter-value\"\n }, _this.v3 ? function () {\n return [field && filterEditors.call(_this, field.filter, field.filterRender)];\n } : [field && filterEditors.call(_this, field.filter, field.filterRender)]), // @ts-ignore function children \n h(ToolbarItem, _this.v3 ? function () {\n return [// @ts-ignore\n h(Button, {\n title: locService.toLanguageString(filterClose, messages[filterClose]),\n attrs: _this.v3 ? undefined : {\n title: locService.toLanguageString(filterClose, messages[filterClose]),\n icon: \"close\",\n look: \"flat\",\n type: \"button\"\n },\n icon: \"close\",\n look: \"flat\",\n type: \"button\",\n onClick: _this.onFilterRemove,\n on: _this.v3 ? undefined : {\n \"click\": _this.onFilterRemove\n }\n })];\n } : [h(Button, {\n title: locService.toLanguageString(filterClose, messages[filterClose]),\n attrs: _this.v3 ? undefined : {\n title: locService.toLanguageString(filterClose, messages[filterClose]),\n icon: \"close\",\n look: \"flat\",\n type: \"button\"\n },\n icon: \"close\",\n look: \"flat\",\n type: \"button\",\n onClick: _this.onFilterRemove,\n on: _this.v3 ? undefined : {\n \"click\": _this.onFilterRemove\n }\n })])];\n } : [h(ToolbarItem, {\n \"class\": \"k-filter-field\"\n }, _this.v3 ? function () {\n return [h(DropDownList, {\n \"class\": \"k-filter-dropdown\",\n dataItems: fields,\n attrs: _this.v3 ? undefined : {\n dataItems: fields,\n textField: \"label\",\n value: fields.find(function (f) {\n return f.name === filter.field;\n })\n },\n textField: \"label\",\n value: fields.find(function (f) {\n return f.name === filter.field;\n }),\n onChange: _this.onFieldChange,\n on: _this.v3 ? undefined : {\n \"change\": _this.onFieldChange\n }\n })];\n } : [h(DropDownList, {\n \"class\": \"k-filter-dropdown\",\n dataItems: fields,\n attrs: _this.v3 ? undefined : {\n dataItems: fields,\n textField: \"label\",\n value: fields.find(function (f) {\n return f.name === filter.field;\n })\n },\n textField: \"label\",\n value: fields.find(function (f) {\n return f.name === filter.field;\n }),\n onChange: _this.onFieldChange,\n on: _this.v3 ? undefined : {\n \"change\": _this.onFieldChange\n }\n })]), h(ToolbarItem, {\n \"class\": \"k-filter-operator\"\n }, _this.v3 ? function () {\n return [h(DropDownList, {\n dataItems: operators,\n attrs: _this.v3 ? undefined : {\n dataItems: operators,\n textField: \"text\",\n value: operators.find(function (o) {\n return o.operator === filter.operator;\n })\n },\n textField: \"text\",\n value: operators.find(function (o) {\n return o.operator === filter.operator;\n }),\n onChange: _this.onOperatorChange,\n on: _this.v3 ? undefined : {\n \"change\": _this.onOperatorChange\n }\n })];\n } : [h(DropDownList, {\n dataItems: operators,\n attrs: _this.v3 ? undefined : {\n dataItems: operators,\n textField: \"text\",\n value: operators.find(function (o) {\n return o.operator === filter.operator;\n })\n },\n textField: \"text\",\n value: operators.find(function (o) {\n return o.operator === filter.operator;\n }),\n onChange: _this.onOperatorChange,\n on: _this.v3 ? undefined : {\n \"change\": _this.onOperatorChange\n }\n })]), h(ToolbarItem, {\n \"class\": \"k-filter-value\"\n }, _this.v3 ? function () {\n return [field && filterEditors.call(_this, field.filter, field.filterRender)];\n } : [field && filterEditors.call(_this, field.filter, field.filterRender)]), h(ToolbarItem, _this.v3 ? function () {\n return [h(Button, {\n title: locService.toLanguageString(filterClose, messages[filterClose]),\n attrs: _this.v3 ? undefined : {\n title: locService.toLanguageString(filterClose, messages[filterClose]),\n icon: \"close\",\n look: \"flat\",\n type: \"button\"\n },\n icon: \"close\",\n look: \"flat\",\n type: \"button\",\n onClick: _this.onFilterRemove,\n on: _this.v3 ? undefined : {\n \"click\": _this.onFilterRemove\n }\n })];\n } : [h(Button, {\n title: locService.toLanguageString(filterClose, messages[filterClose]),\n attrs: _this.v3 ? undefined : {\n title: locService.toLanguageString(filterClose, messages[filterClose]),\n icon: \"close\",\n look: \"flat\",\n type: \"button\"\n },\n icon: \"close\",\n look: \"flat\",\n type: \"button\",\n onClick: _this.onFilterRemove,\n on: _this.v3 ? undefined : {\n \"click\": _this.onFilterRemove\n }\n })])])]);\n },\n methods: {\n onFieldChange: function onFieldChange(event) {\n var nextFieldName = event.value.name;\n var nextField = this.$props.fields.find(function (f) {\n return f.name === nextFieldName;\n });\n var prevFilter = this.$props.filter;\n var operator = nextField && !nextField.operators.some(function (o) {\n return o.operator === prevFilter.operator;\n }) ? nextField.operators[0].operator : prevFilter.operator;\n var nextFilter = {\n field: nextFieldName,\n operator: operator\n };\n\n if (!unaryOperator(operator)) {\n nextFilter.value = stringOperator(operator) ? '' : null;\n }\n\n this.triggerOnFilterChange(prevFilter, nextFilter, event);\n },\n onOperatorChange: function onOperatorChange(event) {\n var operator = event.value.operator;\n var prevFilter = this.$props.filter;\n var nextFilter;\n\n if (unaryOperator(operator)) {\n var value = prevFilter.value,\n prevFilterNoValue = __rest(prevFilter, [\"value\"]);\n\n nextFilter = __assign(__assign({}, prevFilterNoValue), {\n operator: operator\n });\n } else {\n nextFilter = __assign(__assign({}, prevFilter), {\n operator: operator\n });\n }\n\n this.triggerOnFilterChange(prevFilter, nextFilter, event);\n },\n onInputChange: function onInputChange(event) {\n var prevFilter = this.$props.filter;\n var nextFilter = event.nextFilter;\n\n if (unaryOperator(nextFilter.operator)) {\n var field = this.$props.fields.find(function (f) {\n return f.name === nextFilter.field;\n });\n nextFilter = __assign(__assign({}, nextFilter), {\n operator: field && field.operators[0].operator || nextFilter.operator\n });\n }\n\n this.triggerOnFilterChange(prevFilter, nextFilter, event);\n },\n triggerOnFilterChange: function triggerOnFilterChange(prevFilter, nextFilter, event) {\n var changeEvent = {\n prevFilter: prevFilter,\n nextFilter: nextFilter,\n event: event.event,\n target: this\n };\n this.$emit('change', changeEvent);\n },\n onFilterRemove: function onFilterRemove(event) {\n var removeEvent = {\n filter: this.$props.filter,\n event: event.event,\n target: this\n };\n this.$emit('remove', removeEvent);\n }\n }\n};\nvar ExpressionVue3 = Expression;\nexport { Expression, ExpressionVue3 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { Button, Toolbar, ToolbarItem, ButtonGroup } from '@progress/kendo-vue-buttons';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { stringOperator } from './operators';\nimport { messages, filterAndLogic, filterOrLogic, filterAddExpression, filterAddGroup, filterClose } from '../messages'; // tslint:enable:max-line-length\n\nvar GroupToolbar = {\n name: 'KendoFilterGroup',\n // @ts-ignore\n emits: {\n change: null,\n remove: null\n },\n props: {\n filter: {\n type: Object,\n required: true\n },\n fields: {\n type: Array,\n required: true\n },\n defaultGroupFilter: {\n type: Object,\n required: true\n }\n },\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var _a = this.$props,\n fields = _a.fields,\n filter = _a.filter;\n var locService = provideLocalizationService(this);\n return h(\"div\", {\n \"class\": \"k-filter-toolbar\"\n }, [// @ts-ignore function children \n h(Toolbar, {\n keyboardNavigation: false,\n attrs: this.v3 ? undefined : {\n keyboardNavigation: false\n }\n }, this.v3 ? function () {\n return [// @ts-ignore function children \n h(ToolbarItem, _this.v3 ? function () {\n return [// @ts-ignore function children \n h(ButtonGroup, _this.v3 ? function () {\n return [// @ts-ignore function children \n h(Button, {\n togglable: true,\n attrs: _this.v3 ? undefined : {\n togglable: true,\n selected: filter.logic === 'and',\n type: \"button\"\n },\n onClick: _this.onLogicAnd,\n on: _this.v3 ? undefined : {\n \"click\": _this.onLogicAnd\n },\n selected: filter.logic === 'and',\n type: \"button\"\n }, _this.v3 ? function () {\n return [locService.toLanguageString(filterAndLogic, messages[filterAndLogic])];\n } : [locService.toLanguageString(filterAndLogic, messages[filterAndLogic])]), // @ts-ignore function children \n h(Button, {\n togglable: true,\n attrs: _this.v3 ? undefined : {\n togglable: true,\n selected: filter.logic === 'or',\n type: \"button\"\n },\n onClick: _this.onLogicOr,\n on: _this.v3 ? undefined : {\n \"click\": _this.onLogicOr\n },\n selected: filter.logic === 'or',\n type: \"button\"\n }, _this.v3 ? function () {\n return [locService.toLanguageString(filterOrLogic, messages[filterOrLogic])];\n } : [locService.toLanguageString(filterOrLogic, messages[filterOrLogic])])];\n } : [h(Button, {\n togglable: true,\n attrs: _this.v3 ? undefined : {\n togglable: true,\n selected: filter.logic === 'and',\n type: \"button\"\n },\n onClick: _this.onLogicAnd,\n on: _this.v3 ? undefined : {\n \"click\": _this.onLogicAnd\n },\n selected: filter.logic === 'and',\n type: \"button\"\n }, _this.v3 ? function () {\n return [locService.toLanguageString(filterAndLogic, messages[filterAndLogic])];\n } : [locService.toLanguageString(filterAndLogic, messages[filterAndLogic])]), h(Button, {\n togglable: true,\n attrs: _this.v3 ? undefined : {\n togglable: true,\n selected: filter.logic === 'or',\n type: \"button\"\n },\n onClick: _this.onLogicOr,\n on: _this.v3 ? undefined : {\n \"click\": _this.onLogicOr\n },\n selected: filter.logic === 'or',\n type: \"button\"\n }, _this.v3 ? function () {\n return [locService.toLanguageString(filterOrLogic, messages[filterOrLogic])];\n } : [locService.toLanguageString(filterOrLogic, messages[filterOrLogic])])])];\n } : [h(ButtonGroup, _this.v3 ? function () {\n return [h(Button, {\n togglable: true,\n attrs: _this.v3 ? undefined : {\n togglable: true,\n selected: filter.logic === 'and',\n type: \"button\"\n },\n onClick: _this.onLogicAnd,\n on: _this.v3 ? undefined : {\n \"click\": _this.onLogicAnd\n },\n selected: filter.logic === 'and',\n type: \"button\"\n }, _this.v3 ? function () {\n return [locService.toLanguageString(filterAndLogic, messages[filterAndLogic])];\n } : [locService.toLanguageString(filterAndLogic, messages[filterAndLogic])]), h(Button, {\n togglable: true,\n attrs: _this.v3 ? undefined : {\n togglable: true,\n selected: filter.logic === 'or',\n type: \"button\"\n },\n onClick: _this.onLogicOr,\n on: _this.v3 ? undefined : {\n \"click\": _this.onLogicOr\n },\n selected: filter.logic === 'or',\n type: \"button\"\n }, _this.v3 ? function () {\n return [locService.toLanguageString(filterOrLogic, messages[filterOrLogic])];\n } : [locService.toLanguageString(filterOrLogic, messages[filterOrLogic])])];\n } : [h(Button, {\n togglable: true,\n attrs: _this.v3 ? undefined : {\n togglable: true,\n selected: filter.logic === 'and',\n type: \"button\"\n },\n onClick: _this.onLogicAnd,\n on: _this.v3 ? undefined : {\n \"click\": _this.onLogicAnd\n },\n selected: filter.logic === 'and',\n type: \"button\"\n }, _this.v3 ? function () {\n return [locService.toLanguageString(filterAndLogic, messages[filterAndLogic])];\n } : [locService.toLanguageString(filterAndLogic, messages[filterAndLogic])]), h(Button, {\n togglable: true,\n attrs: _this.v3 ? undefined : {\n togglable: true,\n selected: filter.logic === 'or',\n type: \"button\"\n },\n onClick: _this.onLogicOr,\n on: _this.v3 ? undefined : {\n \"click\": _this.onLogicOr\n },\n selected: filter.logic === 'or',\n type: \"button\"\n }, _this.v3 ? function () {\n return [locService.toLanguageString(filterOrLogic, messages[filterOrLogic])];\n } : [locService.toLanguageString(filterOrLogic, messages[filterOrLogic])])])]), // @ts-ignore function children \n h(ToolbarItem, _this.v3 ? function () {\n return [// @ts-ignore function children \n h(Button, {\n title: locService.toLanguageString(filterAddExpression, messages[filterAddExpression]),\n attrs: _this.v3 ? undefined : {\n title: locService.toLanguageString(filterAddExpression, messages[filterAddExpression]),\n icon: \"filter-add-expression\",\n type: \"button\"\n },\n icon: \"filter-add-expression\",\n type: \"button\",\n onClick: _this.onAddExpression,\n on: _this.v3 ? undefined : {\n \"click\": _this.onAddExpression\n }\n })];\n } : [h(Button, {\n title: locService.toLanguageString(filterAddExpression, messages[filterAddExpression]),\n attrs: _this.v3 ? undefined : {\n title: locService.toLanguageString(filterAddExpression, messages[filterAddExpression]),\n icon: \"filter-add-expression\",\n type: \"button\"\n },\n icon: \"filter-add-expression\",\n type: \"button\",\n onClick: _this.onAddExpression,\n on: _this.v3 ? undefined : {\n \"click\": _this.onAddExpression\n }\n })]), // @ts-ignore function children \n h(ToolbarItem, _this.v3 ? function () {\n return [// @ts-ignore function children \n h(Button, {\n title: locService.toLanguageString(filterAddGroup, messages[filterAddGroup]),\n attrs: _this.v3 ? undefined : {\n title: locService.toLanguageString(filterAddGroup, messages[filterAddGroup]),\n icon: \"filter-add-group\",\n type: \"button\"\n },\n icon: \"filter-add-group\",\n type: \"button\",\n onClick: _this.onAddGroup,\n on: _this.v3 ? undefined : {\n \"click\": _this.onAddGroup\n }\n })];\n } : [h(Button, {\n title: locService.toLanguageString(filterAddGroup, messages[filterAddGroup]),\n attrs: _this.v3 ? undefined : {\n title: locService.toLanguageString(filterAddGroup, messages[filterAddGroup]),\n icon: \"filter-add-group\",\n type: \"button\"\n },\n icon: \"filter-add-group\",\n type: \"button\",\n onClick: _this.onAddGroup,\n on: _this.v3 ? undefined : {\n \"click\": _this.onAddGroup\n }\n })]), // @ts-ignore function children \n h(ToolbarItem, _this.v3 ? function () {\n return [// @ts-ignore function children \n h(Button, {\n title: locService.toLanguageString(filterClose, messages[filterClose]),\n attrs: _this.v3 ? undefined : {\n title: locService.toLanguageString(filterClose, messages[filterClose]),\n icon: \"close\",\n look: \"flat\",\n type: \"button\"\n },\n icon: \"close\",\n look: \"flat\",\n type: \"button\",\n onClick: _this.onGroupRemove,\n on: _this.v3 ? undefined : {\n \"click\": _this.onGroupRemove\n }\n })];\n } : [h(Button, {\n title: locService.toLanguageString(filterClose, messages[filterClose]),\n attrs: _this.v3 ? undefined : {\n title: locService.toLanguageString(filterClose, messages[filterClose]),\n icon: \"close\",\n look: \"flat\",\n type: \"button\"\n },\n icon: \"close\",\n look: \"flat\",\n type: \"button\",\n onClick: _this.onGroupRemove,\n on: _this.v3 ? undefined : {\n \"click\": _this.onGroupRemove\n }\n })])];\n } : [h(ToolbarItem, _this.v3 ? function () {\n return [h(ButtonGroup, _this.v3 ? function () {\n return [h(Button, {\n togglable: true,\n attrs: _this.v3 ? undefined : {\n togglable: true,\n selected: filter.logic === 'and',\n type: \"button\"\n },\n onClick: _this.onLogicAnd,\n on: _this.v3 ? undefined : {\n \"click\": _this.onLogicAnd\n },\n selected: filter.logic === 'and',\n type: \"button\"\n }, _this.v3 ? function () {\n return [locService.toLanguageString(filterAndLogic, messages[filterAndLogic])];\n } : [locService.toLanguageString(filterAndLogic, messages[filterAndLogic])]), h(Button, {\n togglable: true,\n attrs: _this.v3 ? undefined : {\n togglable: true,\n selected: filter.logic === 'or',\n type: \"button\"\n },\n onClick: _this.onLogicOr,\n on: _this.v3 ? undefined : {\n \"click\": _this.onLogicOr\n },\n selected: filter.logic === 'or',\n type: \"button\"\n }, _this.v3 ? function () {\n return [locService.toLanguageString(filterOrLogic, messages[filterOrLogic])];\n } : [locService.toLanguageString(filterOrLogic, messages[filterOrLogic])])];\n } : [h(Button, {\n togglable: true,\n attrs: _this.v3 ? undefined : {\n togglable: true,\n selected: filter.logic === 'and',\n type: \"button\"\n },\n onClick: _this.onLogicAnd,\n on: _this.v3 ? undefined : {\n \"click\": _this.onLogicAnd\n },\n selected: filter.logic === 'and',\n type: \"button\"\n }, _this.v3 ? function () {\n return [locService.toLanguageString(filterAndLogic, messages[filterAndLogic])];\n } : [locService.toLanguageString(filterAndLogic, messages[filterAndLogic])]), h(Button, {\n togglable: true,\n attrs: _this.v3 ? undefined : {\n togglable: true,\n selected: filter.logic === 'or',\n type: \"button\"\n },\n onClick: _this.onLogicOr,\n on: _this.v3 ? undefined : {\n \"click\": _this.onLogicOr\n },\n selected: filter.logic === 'or',\n type: \"button\"\n }, _this.v3 ? function () {\n return [locService.toLanguageString(filterOrLogic, messages[filterOrLogic])];\n } : [locService.toLanguageString(filterOrLogic, messages[filterOrLogic])])])];\n } : [h(ButtonGroup, _this.v3 ? function () {\n return [h(Button, {\n togglable: true,\n attrs: _this.v3 ? undefined : {\n togglable: true,\n selected: filter.logic === 'and',\n type: \"button\"\n },\n onClick: _this.onLogicAnd,\n on: _this.v3 ? undefined : {\n \"click\": _this.onLogicAnd\n },\n selected: filter.logic === 'and',\n type: \"button\"\n }, _this.v3 ? function () {\n return [locService.toLanguageString(filterAndLogic, messages[filterAndLogic])];\n } : [locService.toLanguageString(filterAndLogic, messages[filterAndLogic])]), h(Button, {\n togglable: true,\n attrs: _this.v3 ? undefined : {\n togglable: true,\n selected: filter.logic === 'or',\n type: \"button\"\n },\n onClick: _this.onLogicOr,\n on: _this.v3 ? undefined : {\n \"click\": _this.onLogicOr\n },\n selected: filter.logic === 'or',\n type: \"button\"\n }, _this.v3 ? function () {\n return [locService.toLanguageString(filterOrLogic, messages[filterOrLogic])];\n } : [locService.toLanguageString(filterOrLogic, messages[filterOrLogic])])];\n } : [h(Button, {\n togglable: true,\n attrs: _this.v3 ? undefined : {\n togglable: true,\n selected: filter.logic === 'and',\n type: \"button\"\n },\n onClick: _this.onLogicAnd,\n on: _this.v3 ? undefined : {\n \"click\": _this.onLogicAnd\n },\n selected: filter.logic === 'and',\n type: \"button\"\n }, _this.v3 ? function () {\n return [locService.toLanguageString(filterAndLogic, messages[filterAndLogic])];\n } : [locService.toLanguageString(filterAndLogic, messages[filterAndLogic])]), h(Button, {\n togglable: true,\n attrs: _this.v3 ? undefined : {\n togglable: true,\n selected: filter.logic === 'or',\n type: \"button\"\n },\n onClick: _this.onLogicOr,\n on: _this.v3 ? undefined : {\n \"click\": _this.onLogicOr\n },\n selected: filter.logic === 'or',\n type: \"button\"\n }, _this.v3 ? function () {\n return [locService.toLanguageString(filterOrLogic, messages[filterOrLogic])];\n } : [locService.toLanguageString(filterOrLogic, messages[filterOrLogic])])])]), h(ToolbarItem, _this.v3 ? function () {\n return [h(Button, {\n title: locService.toLanguageString(filterAddExpression, messages[filterAddExpression]),\n attrs: _this.v3 ? undefined : {\n title: locService.toLanguageString(filterAddExpression, messages[filterAddExpression]),\n icon: \"filter-add-expression\",\n type: \"button\"\n },\n icon: \"filter-add-expression\",\n type: \"button\",\n onClick: _this.onAddExpression,\n on: _this.v3 ? undefined : {\n \"click\": _this.onAddExpression\n }\n })];\n } : [h(Button, {\n title: locService.toLanguageString(filterAddExpression, messages[filterAddExpression]),\n attrs: _this.v3 ? undefined : {\n title: locService.toLanguageString(filterAddExpression, messages[filterAddExpression]),\n icon: \"filter-add-expression\",\n type: \"button\"\n },\n icon: \"filter-add-expression\",\n type: \"button\",\n onClick: _this.onAddExpression,\n on: _this.v3 ? undefined : {\n \"click\": _this.onAddExpression\n }\n })]), h(ToolbarItem, _this.v3 ? function () {\n return [h(Button, {\n title: locService.toLanguageString(filterAddGroup, messages[filterAddGroup]),\n attrs: _this.v3 ? undefined : {\n title: locService.toLanguageString(filterAddGroup, messages[filterAddGroup]),\n icon: \"filter-add-group\",\n type: \"button\"\n },\n icon: \"filter-add-group\",\n type: \"button\",\n onClick: _this.onAddGroup,\n on: _this.v3 ? undefined : {\n \"click\": _this.onAddGroup\n }\n })];\n } : [h(Button, {\n title: locService.toLanguageString(filterAddGroup, messages[filterAddGroup]),\n attrs: _this.v3 ? undefined : {\n title: locService.toLanguageString(filterAddGroup, messages[filterAddGroup]),\n icon: \"filter-add-group\",\n type: \"button\"\n },\n icon: \"filter-add-group\",\n type: \"button\",\n onClick: _this.onAddGroup,\n on: _this.v3 ? undefined : {\n \"click\": _this.onAddGroup\n }\n })]), h(ToolbarItem, _this.v3 ? function () {\n return [h(Button, {\n title: locService.toLanguageString(filterClose, messages[filterClose]),\n attrs: _this.v3 ? undefined : {\n title: locService.toLanguageString(filterClose, messages[filterClose]),\n icon: \"close\",\n look: \"flat\",\n type: \"button\"\n },\n icon: \"close\",\n look: \"flat\",\n type: \"button\",\n onClick: _this.onGroupRemove,\n on: _this.v3 ? undefined : {\n \"click\": _this.onGroupRemove\n }\n })];\n } : [h(Button, {\n title: locService.toLanguageString(filterClose, messages[filterClose]),\n attrs: _this.v3 ? undefined : {\n title: locService.toLanguageString(filterClose, messages[filterClose]),\n icon: \"close\",\n look: \"flat\",\n type: \"button\"\n },\n icon: \"close\",\n look: \"flat\",\n type: \"button\",\n onClick: _this.onGroupRemove,\n on: _this.v3 ? undefined : {\n \"click\": _this.onGroupRemove\n }\n })])])]);\n },\n methods: {\n onGroupRemove: function onGroupRemove() {\n this.$emit('remove', {\n filter: this.$props.filter\n });\n },\n onAddExpression: function onAddExpression() {\n var prevFilter = this.$props.filter;\n var firstField = this.$props.fields[0];\n var newExpression = {\n field: firstField.name,\n operator: firstField.operators[0].operator\n };\n newExpression.value = stringOperator(newExpression.operator) ? '' : null;\n this.$emit('change', {\n nextFilter: __assign(__assign({}, prevFilter), {\n filters: __spreadArrays(prevFilter.filters, [newExpression])\n }),\n prevFilter: prevFilter\n });\n },\n onAddGroup: function onAddGroup() {\n var prevFilter = this.$props.filter;\n this.$emit('change', {\n nextFilter: __assign(__assign({}, prevFilter), {\n filters: __spreadArrays(prevFilter.filters, [__assign({}, this.$props.defaultGroupFilter)])\n }),\n prevFilter: prevFilter\n });\n },\n onLogicAnd: function onLogicAnd() {\n this.changeLogic('and');\n },\n onLogicOr: function onLogicOr() {\n this.changeLogic('or');\n },\n changeLogic: function changeLogic(logic) {\n var prevFilter = this.$props.filter;\n\n if (prevFilter.logic !== logic) {\n this.$emit('change', {\n nextFilter: __assign(__assign({}, prevFilter), {\n logic: logic\n }),\n prevFilter: prevFilter\n });\n }\n }\n }\n};\nvar GroupToolbarVue3 = GroupToolbar;\nexport { GroupToolbar, GroupToolbarVue3 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { isCompositeFilterDescriptor } from '@progress/kendo-data-query';\nimport { GroupToolbar } from './GroupToolbar';\nimport { Expression } from './Expression'; // tslint:enable:max-line-length\n\nvar GroupFilter = {\n name: 'KendoFilterGroup',\n // @ts-ignore\n emits: {\n change: null,\n remove: null\n },\n props: {\n filter: {\n type: Object,\n required: true\n },\n fields: {\n type: Array,\n required: true\n },\n defaultGroupFilter: {\n type: Object,\n required: true\n }\n },\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n fields = _a.fields,\n filter = _a.filter,\n filterRender = _a.filterRender;\n return filter.filters.length > 0 ? h(\"ul\", {\n \"class\": \"k-filter-lines\"\n }, [filter.filters.map(function (f, idx) {\n return h(\"li\", {\n key: idx,\n \"class\": \"k-filter-item\"\n }, [isCompositeFilterDescriptor(f) ? [// @ts-ignore\n h(GroupToolbar, {\n filter: f,\n attrs: this.v3 ? undefined : {\n filter: f,\n fields: fields,\n defaultGroupFilter: this.$props.defaultGroupFilter\n },\n fields: fields,\n onChange: this.onChange,\n on: this.v3 ? undefined : {\n \"change\": this.onChange,\n \"remove\": this.onRemove\n },\n onRemove: this.onRemove,\n defaultGroupFilter: this.$props.defaultGroupFilter\n }), h(GroupFilter, {\n filter: f,\n attrs: this.v3 ? undefined : {\n filter: f,\n fields: fields,\n defaultGroupFilter: this.$props.defaultGroupFilter\n },\n fields: fields,\n onChange: this.onChange,\n on: this.v3 ? undefined : {\n \"change\": this.onChange,\n \"remove\": this.onRemove\n },\n onRemove: this.onRemove,\n defaultGroupFilter: this.$props.defaultGroupFilter\n })] : // @ts-ignore\n h(Expression, {\n filter: f,\n attrs: this.v3 ? undefined : {\n filter: f,\n fields: fields,\n filterRender: filterRender\n },\n fields: fields,\n filterRender: filterRender,\n onChange: this.onChange,\n on: this.v3 ? undefined : {\n \"change\": this.onChange,\n \"remove\": this.onRemove\n },\n onRemove: this.onRemove\n })]);\n }, this)]) : null;\n },\n methods: {\n replaceFilter: function replaceFilter(prevFilter, nextFilter) {\n var filter = this.$props.filter;\n var filters = filter.filters.map(function (f) {\n return f === prevFilter ? nextFilter : f;\n });\n return __assign(__assign({}, filter), {\n filters: filters\n });\n },\n onChange: function onChange(event) {\n var nextFilter = this.replaceFilter(event.prevFilter, event.nextFilter);\n var changeEvent = {\n nextFilter: nextFilter,\n prevFilter: this.$props.filter,\n event: event.event,\n target: this\n };\n this.$emit('change', changeEvent);\n },\n onRemove: function onRemove(event) {\n var prevFilter = this.$props.filter;\n var filters = prevFilter.filters.filter(function (f) {\n return f !== event.filter;\n });\n var changeEvent = {\n nextFilter: __assign(__assign({}, prevFilter), {\n filters: filters\n }),\n prevFilter: prevFilter,\n event: event.event,\n target: this\n };\n this.$emit('change', changeEvent);\n }\n }\n};\nvar GroupFilterVue3 = GroupFilter;\nexport { GroupFilter, GroupFilterVue3 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { GroupFilter } from './GroupFilters';\nimport { GroupToolbar } from './GroupToolbar';\nimport { validatePackage, templateRendering, getListeners } from '@progress/kendo-vue-common';\nimport { packageMetadata } from '../package-metadata'; // tslint:enable:max-line-length\n\nvar Filter = {\n name: 'KendoFilter',\n // @ts-ignore\n emits: {\n change: null,\n 'changemodel': null,\n 'update:modelValue': null\n },\n model: {\n event: 'changemodel'\n },\n props: {\n fields: {\n type: Array,\n required: true\n },\n modelValue: {\n type: Object,\n default: undefined\n },\n value: Object,\n defaultGroupFilter: Object\n },\n created: function created() {\n validatePackage(packageMetadata);\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n computed: {\n computedValue: function computedValue() {\n var value;\n\n if (this.$props.value !== undefined) {\n value = this.$props.value;\n } else if (this.$props.modelValue !== undefined) {\n value = this.$props.modelValue;\n }\n\n return value;\n }\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var fields = this.$props.fields.map(function (field) {\n return __assign(__assign({}, field), {\n filterRender: templateRendering.call(this, field.filterRender, getListeners.call(this))\n });\n }, this);\n return h(\"div\", {\n \"class\": 'k-widget k-filter'\n }, [h(\"ul\", {\n \"class\": \"k-filter-container\"\n }, [h(\"li\", {\n \"class\": \"k-filter-group-main\"\n }, [// @ts-ignore function children\n h(GroupToolbar, {\n \"class\": \"k-filter-group-main\",\n filter: this.computedValue,\n attrs: this.v3 ? undefined : {\n filter: this.computedValue,\n fields: fields,\n defaultGroupFilter: this.$props.defaultGroupFilter || {\n logic: 'and',\n filters: []\n }\n },\n fields: fields,\n onChange: this.onFilterChange,\n on: this.v3 ? undefined : {\n \"change\": this.onFilterChange,\n \"remove\": this.onGroupRemove\n },\n onRemove: this.onGroupRemove,\n defaultGroupFilter: this.$props.defaultGroupFilter || {\n logic: 'and',\n filters: []\n }\n }), // @ts-ignore function children\n h(GroupFilter, {\n \"class\": \"k-filter-group-main\",\n filter: this.computedValue,\n attrs: this.v3 ? undefined : {\n filter: this.computedValue,\n fields: fields,\n defaultGroupFilter: this.$props.defaultGroupFilter || {\n logic: 'and',\n filters: []\n }\n },\n fields: fields,\n onChange: this.onFilterChange,\n on: this.v3 ? undefined : {\n \"change\": this.onFilterChange,\n \"remove\": this.onGroupRemove\n },\n onRemove: this.onGroupRemove,\n defaultGroupFilter: this.$props.defaultGroupFilter || {\n logic: 'and',\n filters: []\n }\n })])])]);\n },\n methods: {\n onFilterChange: function onFilterChange(event) {\n var changeEvent = {\n filter: event.nextFilter,\n event: event.event,\n target: this\n };\n this.$emit('change', changeEvent);\n this.$emit('changemodel', event.nextFilter);\n this.$emit('update:modelValue', event.nextFilter);\n },\n onGroupRemove: function onGroupRemove(event) {\n var nextFilter = __assign(__assign({}, this.computedValue), {\n filters: []\n });\n\n var changeEvent = {\n filter: nextFilter,\n event: event.event,\n target: this\n };\n this.$emit('change', changeEvent);\n this.$emit('changemodel', nextFilter);\n this.$emit('update:modelValue', nextFilter);\n }\n }\n};\nvar FilterVue3 = Filter;\nexport { Filter, FilterVue3 };","import { FOCUSABLE_ELEMENTS, KEYBOARD_NAV_DATA_BODY, KEYBOARD_NAV_DATA_HEADER, KEYBOARD_NAV_DATA_ID, KEYBOARD_NAV_DATA_LEVEL, KEYBOARD_NAV_DATA_SCOPE, KEYBOARD_NAV_FILTER_COL_SUFFIX, TABBABLE_ELEMENTS } from './constants';\n/**\n * @hidden\n */\nexport var generateNavigatableId = function (navigationId, idPrefix, type) {\n if (type === void 0) { type = 'cell'; }\n return idPrefix + \"_\" + navigationId + \"_\" + type;\n};\n/**\n * @hidden\n */\nexport var getNavigatableLevel = function (element) {\n if (!element) {\n return;\n }\n return parseInt(element.getAttribute(KEYBOARD_NAV_DATA_LEVEL) || '', 10);\n};\n/**\n * @hidden\n */\nexport var getNavigatableId = function (element) {\n if (!element) {\n return;\n }\n var dataId = element.getAttribute(KEYBOARD_NAV_DATA_ID);\n return dataId ? dataId : undefined;\n};\n/**\n * @hidden\n */\nexport var isNavigatable = function (element) {\n if (!element) {\n return false;\n }\n var dataId = element.getAttribute(KEYBOARD_NAV_DATA_ID);\n return Boolean(dataId);\n};\n/**\n * @hidden\n */\nexport var getNavigatableElement = function (scope, options) {\n if (options === void 0) { options = { level: 0 }; }\n return scope.querySelector(\"[\" + KEYBOARD_NAV_DATA_LEVEL + \"='\" + options.level + \"']\");\n};\n/**\n * @hidden\n */\nexport var getClosestNavigatableElement = function (target) {\n return (target.parentElement &&\n target.parentElement.closest(\"[\" + KEYBOARD_NAV_DATA_LEVEL + \"]\"));\n};\n/**\n * @hidden\n */\nexport var getActiveElement = function (scope, activeId) {\n return scope.querySelector(\"[\" + KEYBOARD_NAV_DATA_ID + \"='\" + activeId + \"']\");\n};\n/**\n * @hidden\n */\nexport var getClosestScope = function (target) {\n return (target.parentElement &&\n target.parentElement.closest(\"[\" + KEYBOARD_NAV_DATA_SCOPE + \"]\"));\n};\n/**\n * @hidden\n */\nexport var getHeaderElement = function (scope) {\n return scope.querySelector(\"[\" + KEYBOARD_NAV_DATA_HEADER + \"]\");\n};\n/**\n * @hidden\n */\nexport var getBodyElement = function (scope) {\n return scope.querySelector(\"[\" + KEYBOARD_NAV_DATA_BODY + \"]\");\n};\n/**\n * @hidden\n */\nexport var getFocusableElements = function (scope, options) {\n if (options === void 0) { options = { focusable: false }; }\n var selectors = options.focusable ? FOCUSABLE_ELEMENTS : TABBABLE_ELEMENTS;\n return Array.from(scope.querySelectorAll(selectors.join(',')));\n};\n/**\n * @hidden\n */\nexport var getNavigatableElements = function (scope, options) {\n if (options === void 0) { options = { level: 0 }; }\n if (!scope) {\n return [];\n }\n var selector = FOCUSABLE_ELEMENTS.map(function (el) { return el + (\"[\" + KEYBOARD_NAV_DATA_LEVEL + \"='\" + options.level + \"']\"); }).join(',');\n return Array.from(scope.querySelectorAll(selector));\n};\n/**\n * @hidden\n */\nexport var filterNavigatableElements = function (options) {\n if (options === void 0) { options = { level: 0 }; }\n var selector = FOCUSABLE_ELEMENTS.map(function (sel) { return sel + (\"[\" + KEYBOARD_NAV_DATA_LEVEL + \"='\" + options.level + \"']\"); }).join(',');\n return function (element) { return element.matches(selector); };\n};\n/**\n * @hidden\n */\nexport var focusElement = function (options) {\n var elementForFocus = options.elementForFocus, event = options.event, kbContext = options.kbContext, prevElement = options.prevElement;\n if (kbContext && elementForFocus && elementForFocus.focus) {\n event.preventDefault();\n elementForFocus.focus();\n if (isNavigatable(elementForFocus)) {\n elementForFocus.setAttribute('tabIndex', '0');\n kbContext.activeId = getNavigatableId(elementForFocus);\n }\n if (prevElement && isNavigatable(prevElement)) {\n prevElement.setAttribute('tabIndex', '-1');\n }\n }\n};\n/**\n * @hidden\n */\nexport var getIdPrefix = function (navigation) {\n return navigation ? navigation.idPrefix : '';\n};\n/**\n * @hidden\n */\nexport var findNextIdByRowIndex = function (initialRowIndex, cellIndex, elementId, matrix, isReverse) {\n if (!elementId) {\n return [];\n }\n var currentRowIndex = initialRowIndex + (isReverse ? -1 : 1);\n while (currentRowIndex >= 0 && currentRowIndex < matrix.length) {\n var currentId = matrix[currentRowIndex][cellIndex];\n if (currentId !== elementId) {\n return [currentId, [currentRowIndex, cellIndex]];\n }\n currentRowIndex = currentRowIndex + (isReverse ? -1 : 1);\n }\n return [];\n};\n/**\n * @hidden\n */\nexport var findNextIdByCellIndex = function (rowIndex, initialCellIndex, elementId, matrix, isReverse) {\n if (!elementId) {\n return [];\n }\n var currentCellIndex = initialCellIndex + (isReverse ? -1 : 1);\n while (currentCellIndex >= 0 && currentCellIndex < matrix[rowIndex].length) {\n var currentId = matrix[rowIndex][currentCellIndex];\n if (currentId !== elementId) {\n return [currentId, [rowIndex, currentCellIndex]];\n }\n currentCellIndex = currentCellIndex + (isReverse ? -1 : 1);\n }\n return [];\n};\n/**\n * @hidden\n */\nexport var findId = function (navigationMatrix, cellId) {\n if (!cellId) {\n return;\n }\n for (var rowIndex = 0; rowIndex < navigationMatrix.length; rowIndex++) {\n for (var cellIndex = 0; cellIndex < navigationMatrix[rowIndex].length; cellIndex++) {\n if (navigationMatrix[rowIndex][cellIndex] === cellId) {\n return [rowIndex, cellIndex];\n }\n }\n }\n};\n/**\n * @hidden\n */\nexport var getNextNavigationIndex = function (navigation) {\n return navigation ? navigation.navigationMatrix.length : 0;\n};\n/**\n * @hidden\n */\nexport var getFilterColumnId = function (columnId) {\n return columnId ? \"\" + columnId + KEYBOARD_NAV_FILTER_COL_SUFFIX : '';\n};\n/**\n * @hidden\n */\nexport var tableKeyboardNavigationTools = {\n generateNavigatableId: generateNavigatableId,\n getNavigatableId: getNavigatableId,\n getNavigatableLevel: getNavigatableLevel,\n getNavigatableElement: getNavigatableElement,\n getClosestNavigatableElement: getClosestNavigatableElement,\n getActiveElement: getActiveElement,\n getClosestScope: getClosestScope,\n getHeaderElement: getHeaderElement,\n getBodyElement: getBodyElement,\n getFocusableElements: getFocusableElements,\n getNavigatableElements: getNavigatableElements,\n filterNavigatableElements: filterNavigatableElements,\n focusElement: focusElement,\n getIdPrefix: getIdPrefix,\n isNavigatable: isNavigatable,\n findNextIdByRowIndex: findNextIdByRowIndex,\n findNextIdByCellIndex: findNextIdByCellIndex,\n findId: findId,\n getNextNavigationIndex: getNextNavigationIndex,\n getFilterColumnId: getFilterColumnId\n};\n","import * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\n/**\n * Represents the default `PagerNumericButtons` component.\n */\n\nvar PagerNumericButtons = {\n name: 'KendoNumericButtons',\n props: {\n buttonCount: Number,\n totalPages: Number,\n currentPage: Number,\n size: String\n },\n computed: {\n start: {\n get: function get() {\n var page = this.$props.currentPage;\n var buttonCount = this.$props.buttonCount;\n\n if (page > buttonCount) {\n var reminder = page % buttonCount;\n return reminder === 0 ? page - buttonCount + 1 : page - reminder + 1;\n }\n\n return 1;\n }\n },\n end: {\n get: function get() {\n return Math.min(this.start + this.$props.buttonCount - 1, this.$props.totalPages);\n }\n }\n },\n methods: {\n click: function click(e, page) {\n e.preventDefault();\n this.$emit('pagechange', page, e);\n },\n ddlChange: function ddlChange(event) {\n this.$emit('pagechange', parseInt(event.target.value, 10), event);\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var prevDots = this.start > 1 ? h(\"li\", [h(\"a\", {\n \"class\": \"k-link\",\n onClick: function onClick(e) {\n return _this.click(e, _this.start - 1);\n },\n on: this.v3 ? undefined : {\n \"click\": function onClick(e) {\n return _this.click(e, _this.start - 1);\n }\n },\n href: \"#\",\n attrs: this.v3 ? undefined : {\n href: \"#\"\n }\n }, [\"...\"])]) : '';\n var postDots = this.end < this.$props.totalPages ? h(\"li\", [h(\"a\", {\n \"class\": \"k-link\",\n onClick: function onClick(e) {\n return _this.click(e, _this.end + 1);\n },\n on: this.v3 ? undefined : {\n \"click\": function onClick(e) {\n return _this.click(e, _this.end + 1);\n }\n },\n href: \"#\",\n attrs: this.v3 ? undefined : {\n href: \"#\"\n }\n }, [\"...\"])]) : '';\n var buttons = [];\n\n for (var idx = this.start; idx <= this.end; idx++) {\n buttons.push(idx);\n }\n\n var numerics = buttons.map(function (page) {\n var _this = this;\n\n return h(\"li\", {\n key: page\n }, [h(\"a\", {\n href: \"#\",\n attrs: this.v3 ? undefined : {\n href: \"#\"\n },\n onClick: function onClick(e) {\n return _this.click(e, page);\n },\n on: this.v3 ? undefined : {\n \"click\": function onClick(e) {\n return _this.click(e, page);\n }\n },\n \"class\": this.$props.currentPage === page ? 'k-link k-state-selected' : 'k-link'\n }, [page])]);\n }, this);\n\n var dropdown = function dropdown(currentButtons) {\n return h(\"select\", {\n \"class\": \"k-dropdown\",\n onChange: this.ddlChange,\n on: this.v3 ? undefined : {\n \"change\": this.ddlChange\n }\n }, [currentButtons.map(function (cb) {\n return h(\"option\", {\n value: this.v3 ? cb : null,\n domProps: this.v3 ? undefined : {\n \"value\": cb,\n \"selected\": cb === this.$props.currentPage\n },\n selected: this.v3 ? cb === this.$props.currentPage : null\n }, [cb]);\n }, this)]);\n };\n\n return h(\"div\", {\n \"class\": \"k-pager-numbers-wrap\"\n }, [this.$props.size !== 'small' ? h(\"ul\", {\n \"class\": \"k-pager-numbers k-reset\"\n }, [prevDots, numerics, postDots]) : dropdown.call(this, buttons)]);\n }\n};\nvar PagerNumericButtonsVue3 = PagerNumericButtons;\nexport { PagerNumericButtons, PagerNumericButtonsVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar inject = allVue.inject;\nimport { messages, pagerOf, pagerPage, pagerTotalPages } from './../messages';\nimport { provideIntlService, provideLocalizationService } from '@progress/kendo-vue-intl';\n/**\n * Represents the default `PagerInput` component.\n */\n\nvar PagerInput = {\n name: 'KendoPagerInput',\n props: {\n totalPages: Number,\n currentPage: Number,\n messagesMap: Function\n },\n inject: {\n kendoIntlService: {\n default: null\n },\n kendoLocalizationService: {\n default: null\n }\n },\n methods: {\n changeHangler: function changeHangler(e) {\n var text = this._text = e.target.value.replace(/\\D/g, '');\n this.$forceUpdate();\n\n if (text) {\n this.$emit('pagechange', parseInt(text, 10), e);\n }\n },\n blurHandler: function blurHandler() {\n this.$forceUpdate();\n },\n value: function value() {\n var value = this._text === undefined ? this.$props.currentPage.toString() : this._text;\n this._text = undefined;\n return value;\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoIntlService = inject('kendoIntlService', {});\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n kendoIntlService: kendoIntlService,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var intlService = provideIntlService(this);\n var localizationService = provideLocalizationService(this);\n var pageMessage = this.$props.messagesMap ? this.$props.messagesMap(pagerPage) : {\n messageKey: pagerPage,\n defaultMessage: messages[pagerPage]\n };\n var ofMessage = this.$props.messagesMap ? this.$props.messagesMap(pagerOf) : {\n messageKey: pagerOf,\n defaultMessage: messages[pagerOf]\n };\n var totalPagesMessage = this.$props.messagesMap ? this.$props.messagesMap(pagerTotalPages) : {\n messageKey: pagerTotalPages,\n defaultMessage: messages[pagerTotalPages]\n };\n return h(\"span\", {\n \"class\": \"k-pager-input k-label\"\n }, [localizationService.toLanguageString(pageMessage.messageKey, pageMessage.defaultMessage), \" \", h(\"input\", {\n \"class\": \"k-textbox\",\n value: this.v3 ? this.value() : null,\n domProps: this.v3 ? undefined : {\n \"value\": this.value()\n },\n onBlur: this.blurHandler,\n on: this.v3 ? undefined : {\n \"blur\": this.blurHandler,\n \"change\": this.changeHangler\n },\n onChange: this.changeHangler\n }), \" \", localizationService.toLanguageString(ofMessage.messageKey, ofMessage.defaultMessage) + \" \" + intlService.format(localizationService.toLanguageString(totalPagesMessage.messageKey, totalPagesMessage.defaultMessage), [this.$props.totalPages])]);\n }\n};\nvar PagerInputVue3 = PagerInput;\nexport { PagerInput, PagerInputVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar inject = allVue.inject;\nimport { messages, pagerItemPerPage } from './../messages';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { DropDownList } from '@progress/kendo-vue-dropdowns';\n/**\n * Represents the default `PagerPageSizes` component.\n */\n\nvar PagerPageSizes = {\n name: 'KendoPagerPageSizes',\n props: {\n pageSize: Number,\n pageSizes: Array,\n messagesMap: Function\n },\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n methods: {\n pageSizeChange: function pageSizeChange(e) {\n this.$emit('pagechange', {\n skip: 0,\n take: parseInt(e.target.value, 10)\n }, e);\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var sizes = this.$props.pageSizes.slice();\n\n if (sizes.filter(function (s) {\n return s === _this.$props.pageSize;\n }).length === 0) {\n sizes.unshift(this.$props.pageSize);\n }\n\n var itemPerPageMessage = this.$props.messagesMap ? this.$props.messagesMap(pagerItemPerPage) : {\n messageKey: pagerItemPerPage,\n defaultMessage: messages[pagerItemPerPage]\n };\n return h(\"span\", {\n \"class\": \"k-pager-sizes k-label\"\n }, [// @ts-ignore function children\n h(DropDownList, {\n value: this.$props.pageSize,\n attrs: this.v3 ? undefined : {\n value: this.$props.pageSize,\n dataItems: sizes\n },\n dataItems: sizes,\n onChange: this.pageSizeChange,\n on: this.v3 ? undefined : {\n \"change\": this.pageSizeChange\n }\n }), provideLocalizationService(this).toLanguageString(itemPerPageMessage.messageKey, itemPerPageMessage.defaultMessage)]);\n }\n};\nvar PagerPageSizesVue3 = PagerPageSizes;\nexport { PagerPageSizes, PagerPageSizesVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar inject = allVue.inject;\nimport { provideIntlService, provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { messages, pagerInfo } from '../messages';\n/**\n * Represents the default `PagerInfo` component.\n */\n\nvar PagerInfo = {\n name: 'KendoPagerInfo',\n props: {\n totalPages: Number,\n currentPage: Number,\n skip: Number,\n messagesMap: Function\n },\n inject: {\n kendoLocalizationService: {\n default: null\n },\n kendoIntlService: {\n default: null\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoIntlService = inject('kendoIntlService', {});\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n kendoIntlService: kendoIntlService,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var intlService = provideIntlService(this);\n var localizationService = provideLocalizationService(this);\n var infoMessage = this.$props.messagesMap ? this.$props.messagesMap(pagerInfo) : {\n messageKey: pagerInfo,\n defaultMessage: messages[pagerInfo]\n };\n return h(\"div\", {\n \"class\": \"k-pager-info k-label\"\n }, [intlService.format(localizationService.toLanguageString(infoMessage.messageKey, infoMessage.defaultMessage), [Math.min(this.$props.skip + 1, this.$props.totalPages), Math.min(this.$props.skip + this.$props.currentPage, this.$props.totalPages), this.$props.totalPages])]);\n }\n};\nvar PagerInfoVue3 = PagerInfo;\nexport { PagerInfo, PagerInfoVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\n/**\n * Represents the default `PagerNavigationButton` component.\n */\n\nvar PagerNavigationButton = {\n name: 'KendoPagerNavigationButton',\n props: {\n title: String,\n icon: String,\n page: Number\n },\n inject: {\n kendoLocalizationService: {\n default: null\n },\n kendoIntlService: {\n default: null\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n methods: {\n changePage: function changePage(e) {\n e.preventDefault();\n this.$emit('pagechange', this.$props.page, e);\n }\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n return h(\"a\", {\n \"class\": 'k-link k-pager-nav',\n onClick: this.changePage,\n on: this.v3 ? undefined : {\n \"click\": this.changePage\n },\n href: \"#\",\n attrs: this.v3 ? undefined : {\n href: \"#\",\n title: this.$props.title\n },\n title: this.$props.title\n }, [h(\"span\", {\n \"class\": this.$props.icon,\n \"aria-label\": this.$props.title,\n attrs: this.v3 ? undefined : {\n \"aria-label\": this.$props.title\n }\n })]);\n }\n};\nvar PagerNavigationButtonVue3 = PagerNavigationButton;\nexport { PagerNavigationButton, PagerNavigationButtonVue3 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar inject = allVue.inject;\nimport { PagerNumericButtons } from './PagerNumericButtons';\nimport { PagerInput } from './PagerInput';\nimport { PagerPageSizes } from './PagerPageSizes';\nimport { PagerInfo } from './PagerInfo';\nimport { PagerNavigationButton } from './PagerNavigationButton';\nimport { messages, pagerFirstPage, pagerLastPage, pagerNextPage, pagerPreviousPage } from '../messages';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { getListeners, getTemplate, hasListener, templateRendering } from '@progress/kendo-vue-common';\n/**\n * @hidden\n */\n\nvar RESPONSIVE_BREAKPOINT_MEDIUM = 600;\n/**\n * @hidden\n */\n\nvar RESPONSIVE_BREAKPOINT_LARGE = 768;\n/**\n * Represents the default `Pager` component.\n */\n\nvar Pager = {\n name: 'KendoPager',\n props: {\n total: Number,\n skip: Number,\n take: Number,\n pageSize: Number,\n settings: [Object, Boolean],\n buttonCount: {\n type: Number,\n default: 10\n },\n info: {\n type: Boolean,\n default: true\n },\n type: {\n type: String,\n default: 'numeric',\n validator: function validator(value) {\n return ['numeric', 'input'].includes(value);\n }\n },\n pageSizes: {\n type: Array\n },\n previousNext: Boolean,\n messagesMap: Function,\n responsive: {\n type: Boolean,\n default: true\n },\n pagerRender: [String, Function, Object],\n width: [Number, String]\n },\n data: function data() {\n return {\n size: 'normal'\n };\n },\n mounted: function mounted() {\n window.addEventListener('resize', this.onWindowResize);\n this.onWindowResize();\n },\n updated: function updated() {\n this.onWindowResize();\n },\n destroyed: !!gh ? undefined : function () {\n window.removeEventListener('resize', this.onWindowResize);\n },\n // @ts-ignore\n unmounted: function unmounted() {\n window.removeEventListener('resize', this.onWindowResize);\n },\n inject: {\n kendoLocalizationService: {\n default: null\n },\n kendoIntlService: {\n default: null\n }\n },\n computed: {\n wrapperClass: {\n get: function get() {\n return {\n 'k-pager-wrap k-pager k-widget': true,\n 'k-pager-sm': this.size === 'small',\n 'k-pager-md': this.size === 'medium'\n };\n }\n },\n totalPages: {\n get: function get() {\n return Math.ceil((this.$props.total || 0) / this.currentTake);\n }\n },\n currentPage: {\n get: function get() {\n return Math.floor((this.$props.skip || 0) / this.currentTake) + 1;\n }\n },\n currentTake: {\n get: function get() {\n return this.$props.take || this.$props.pageSize;\n }\n }\n },\n methods: {\n changePage: function changePage(page, e) {\n if (page > 0 && page <= this.totalPages) {\n this.$emit('pagechange', {\n skip: (page - 1) * this.currentTake,\n take: this.currentTake\n }, e);\n }\n },\n triggerPageChange: function triggerPageChange(e) {\n var pagesizechange = hasListener.call(this, 'pagesizechange');\n\n if (pagesizechange) {\n this.$emit('pagesizechange', e);\n } else {\n this.$emit('pagechange', e);\n }\n },\n onWindowResize: function onWindowResize() {\n var element = this.$el;\n\n if (!element || !this.$props.responsive || this.$props.settings.responsive === false) {\n return;\n }\n\n var width = element.offsetWidth;\n\n if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {\n this.size = 'small';\n } else if (width >= RESPONSIVE_BREAKPOINT_MEDIUM && width < RESPONSIVE_BREAKPOINT_LARGE) {\n this.size = 'medium';\n } else {\n this.size = 'large';\n }\n },\n transformDimesion: function transformDimesion(initialValue) {\n return typeof initialValue === 'string' ? initialValue.endsWith('px') ? initialValue : initialValue + 'px' : initialValue + 'px';\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoIntlService = inject('kendoIntlService', {});\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n kendoIntlService: kendoIntlService,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n // @ts-ignore \n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n skip = _a.skip,\n take = _a.take,\n total = _a.total,\n pageSizes = _a.pageSizes,\n buttonCount = _a.buttonCount,\n messagesMap = _a.messagesMap,\n info = _a.info,\n type = _a.type,\n previousNext = _a.previousNext;\n\n var settings = __assign({\n pageSizes: pageSizes,\n buttonCount: buttonCount,\n info: info,\n previousNext: previousNext,\n type: type,\n skip: skip,\n take: take,\n total: total,\n messagesMap: messagesMap\n }, this.$props.settings);\n\n var pagerRender = this.$props.pagerRender || this.$props.settings.pagerRender;\n var pagerRenderTemplate = pagerRender ? templateRendering.call(this, pagerRender, getListeners.call(this)) : null;\n var localizationService = provideLocalizationService(this);\n var firstPageMessage = messagesMap ? messagesMap(pagerFirstPage) : {\n messageKey: pagerFirstPage,\n defaultMessage: messages[pagerFirstPage]\n };\n var previousPageMessage = messagesMap ? messagesMap(pagerPreviousPage) : {\n messageKey: pagerPreviousPage,\n defaultMessage: messages[pagerPreviousPage]\n };\n var nextPageMessage = messagesMap ? messagesMap(pagerNextPage) : {\n messageKey: pagerNextPage,\n defaultMessage: messages[pagerNextPage]\n };\n var lastPageMessage = messagesMap ? messagesMap(pagerLastPage) : {\n messageKey: pagerLastPage,\n defaultMessage: messages[pagerLastPage]\n };\n var changer = settings.type === 'numeric' ? // @ts-ignore\n h(PagerNumericButtons, {\n size: this.size,\n attrs: this.v3 ? undefined : {\n size: this.size,\n buttonCount: settings.buttonCount || 0,\n totalPages: this.totalPages,\n currentPage: this.currentPage\n },\n buttonCount: settings.buttonCount || 0,\n totalPages: this.totalPages,\n currentPage: this.currentPage,\n onPagechange: this.changePage,\n on: this.v3 ? undefined : {\n \"pagechange\": this.changePage\n }\n }) : // @ts-ignore\n h(PagerInput, {\n currentPage: this.currentPage,\n attrs: this.v3 ? undefined : {\n currentPage: this.currentPage,\n totalPages: this.totalPages,\n messagesMap: messagesMap\n },\n totalPages: this.totalPages,\n onPagechange: this.changePage,\n on: this.v3 ? undefined : {\n \"pagechange\": this.changePage\n },\n messagesMap: messagesMap\n });\n var first, prev, next, last;\n\n if (settings.previousNext) {\n first = // @ts-ignore function children\n h(PagerNavigationButton, {\n \"class\": 'k-pager-first' + (this.currentPage === 1 ? ' k-state-disabled' : ''),\n page: 1,\n attrs: this.v3 ? undefined : {\n page: 1,\n title: localizationService.toLanguageString(firstPageMessage.messageKey, firstPageMessage.defaultMessage),\n icon: 'k-icon k-i-seek-w'\n },\n title: localizationService.toLanguageString(firstPageMessage.messageKey, firstPageMessage.defaultMessage),\n icon: 'k-icon k-i-seek-w',\n onPagechange: this.changePage,\n on: this.v3 ? undefined : {\n \"pagechange\": this.changePage\n }\n });\n prev = // @ts-ignore function children\n h(PagerNavigationButton, {\n \"class\": this.currentPage === 1 ? ' k-state-disabled' : '',\n page: this.currentPage - 1,\n attrs: this.v3 ? undefined : {\n page: this.currentPage - 1,\n title: localizationService.toLanguageString(previousPageMessage.messageKey, previousPageMessage.defaultMessage),\n icon: 'k-icon k-i-arrow-w'\n },\n title: localizationService.toLanguageString(previousPageMessage.messageKey, previousPageMessage.defaultMessage),\n icon: 'k-icon k-i-arrow-w',\n onPagechange: this.changePage,\n on: this.v3 ? undefined : {\n \"pagechange\": this.changePage\n }\n });\n next = // @ts-ignore function children\n h(PagerNavigationButton, {\n \"class\": this.currentPage === this.totalPages ? ' k-state-disabled' : '',\n page: this.currentPage + 1,\n attrs: this.v3 ? undefined : {\n page: this.currentPage + 1,\n title: localizationService.toLanguageString(nextPageMessage.messageKey, nextPageMessage.defaultMessage),\n icon: 'k-icon k-i-arrow-e'\n },\n title: localizationService.toLanguageString(nextPageMessage.messageKey, nextPageMessage.defaultMessage),\n icon: 'k-icon k-i-arrow-e',\n onPagechange: this.changePage,\n on: this.v3 ? undefined : {\n \"pagechange\": this.changePage\n }\n });\n last = // @ts-ignore function children\n h(PagerNavigationButton, {\n \"class\": 'k-pager-last' + (this.currentPage === this.totalPages ? ' k-state-disabled' : ''),\n page: this.totalPages,\n attrs: this.v3 ? undefined : {\n page: this.totalPages,\n title: localizationService.toLanguageString(lastPageMessage.messageKey, lastPageMessage.defaultMessage),\n icon: 'k-icon k-i-seek-e'\n },\n title: localizationService.toLanguageString(lastPageMessage.messageKey, lastPageMessage.defaultMessage),\n icon: 'k-icon k-i-seek-e',\n onPagechange: this.changePage,\n on: this.v3 ? undefined : {\n \"pagechange\": this.changePage\n }\n });\n }\n\n var renderPageSizes = settings.pageSizes && // @ts-ignore function children\n h(PagerPageSizes, {\n onPagechange: this.triggerPageChange,\n on: this.v3 ? undefined : {\n \"pagechange\": this.triggerPageChange\n },\n pageSize: this.currentTake,\n attrs: this.v3 ? undefined : {\n pageSize: this.currentTake,\n pageSizes: settings.pageSizes,\n messagesMap: messagesMap\n },\n pageSizes: settings.pageSizes,\n messagesMap: messagesMap\n });\n var infoElement = !settings.info ? '' : // @ts-ignore function children\n h(PagerInfo, {\n totalPages: this.$props.total,\n attrs: this.v3 ? undefined : {\n totalPages: this.$props.total,\n skip: this.$props.skip,\n currentPage: this.currentTake,\n messagesMap: messagesMap\n },\n skip: this.$props.skip,\n currentPage: this.currentTake,\n messagesMap: messagesMap\n });\n var pagerContent = getTemplate.call(this, {\n h: h,\n template: pagerRenderTemplate,\n additionalProps: __assign(__assign({}, this.$props), {\n current: this.currentPage\n }),\n additionalListeners: {\n pagechange: this.triggerPageChange\n }\n });\n var width = this.transformDimesion(this.$props.width);\n return pagerRender ? h(\"div\", {\n \"class\": this.wrapperClass,\n style: {\n width: width\n },\n role: \"navigation\",\n attrs: this.v3 ? undefined : {\n role: \"navigation\"\n }\n }, [pagerContent]) : h(\"div\", {\n \"class\": this.wrapperClass,\n style: {\n width: width\n },\n role: \"navigation\",\n attrs: this.v3 ? undefined : {\n role: \"navigation\"\n }\n }, [first, prev, changer, next, last, renderPageSizes, infoElement]);\n }\n};\nvar PagerVue3 = Pager;\nexport { Pager, PagerVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar inject = allVue.inject;\nimport { getDefaultSlots, noop } from '@progress/kendo-vue-common';\nimport { KEYBOARD_NAV_DATA_ID, KEYBOARD_NAV_DATA_LEVEL } from '../navigation/constants';\n/**\n * Represents the default `HeaderThElement` component.\n */\n\nvar HeaderThElement = {\n name: 'KendoHeaderThElement',\n // @ts-ignore\n emits: {\n keydown: null\n },\n props: {\n ariaSort: {\n type: String,\n validator: function validator(value) {\n return ['none', 'ascending', 'descending'].includes(value);\n }\n },\n ariaLabel: String,\n ariaColumnIndex: Number,\n ariaSelected: Boolean,\n colSpan: Number,\n rowSpan: Number,\n role: String,\n columnId: String,\n navigatable: Boolean\n },\n inject: {\n getKeyboardNavigationAttributes: {\n default: noop\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoIntlService = inject('kendoIntlService', {});\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n kendoIntlService: kendoIntlService,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n ariaSort = _a.ariaSort,\n colSpan = _a.colSpan,\n rowSpan = _a.rowSpan,\n className = _a.className,\n style = _a.style,\n columnId = _a.columnId,\n navigatable = _a.navigatable,\n ariaColumnIndex = _a.ariaColumnIndex,\n ariaLabel = _a.ariaLabel,\n role = _a.role,\n ariaSelected = _a.ariaSelected;\n var navAttrs = this.getKeyboardNavigationAttributes(columnId, navigatable);\n var defaultSlot = getDefaultSlots(this);\n return h(\"th\", {\n \"aria-sort\": ariaSort,\n attrs: this.v3 ? undefined : {\n \"aria-sort\": ariaSort,\n \"aria-label\": ariaLabel,\n \"aria-colindex\": ariaColumnIndex,\n \"aria-selected\": ariaSelected,\n colSpan: colSpan,\n rowSpan: rowSpan,\n role: role,\n tabIndex: navAttrs.tabIndex,\n \"data-keyboardnavlevel\": navAttrs[KEYBOARD_NAV_DATA_LEVEL],\n \"data-keyboardnavid\": navAttrs[KEYBOARD_NAV_DATA_ID]\n },\n \"aria-label\": ariaLabel,\n \"aria-colindex\": ariaColumnIndex,\n \"aria-selected\": ariaSelected,\n colSpan: colSpan,\n rowSpan: rowSpan,\n \"class\": className,\n style: style,\n onKeydown: this.onKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.onKeyDown\n },\n role: role,\n tabIndex: navAttrs.tabIndex,\n \"data-keyboardnavlevel\": navAttrs[KEYBOARD_NAV_DATA_LEVEL],\n \"data-keyboardnavid\": navAttrs[KEYBOARD_NAV_DATA_ID]\n }, [defaultSlot]);\n },\n methods: {\n onKeyDown: function onKeyDown(e) {\n this.$emit('keydown', e);\n }\n }\n};\nvar HeaderThElementVue3 = HeaderThElement;\nexport { HeaderThElement, HeaderThElementVue3 };","/**\n * @hidden\n */\nvar normalizeSettings = function (_a) {\n var _b = _a.buttonCount, buttonCount = _b === void 0 ? 10 : _b, _c = _a.info, info = _c === void 0 ? true : _c, _d = _a.type, type = _d === void 0 ? 'numeric' : _d, _e = _a.pageSizes, pageSizes = _e === void 0 ? false : _e, _f = _a.previousNext, previousNext = _f === void 0 ? true : _f, _g = _a.responsive, responsive = _g === void 0 ? true : _g, _h = _a.pagerRender, pagerRender = _h === void 0 ? undefined : _h;\n return ({\n buttonCount: buttonCount,\n info: info,\n pageSizes: pageSizes === true ? [5, 10, 20] : pageSizes,\n previousNext: previousNext,\n type: type,\n responsive: responsive,\n pagerRender: pagerRender\n });\n};\n/**\n * @hidden\n */\nexport var normalize = function (settings) {\n return normalizeSettings(settings === true ? {} : settings);\n};\n","var __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\n/**\n * @hidden\n */\nexport function tableColumnsVirtualization(args) {\n var enabled = args.enabled, _a = args.columns, columns = _a === void 0 ? [] : _a, tableViewPortWidth = args.tableViewPortWidth, scrollLeft = args.scrollLeft;\n var colSpans = columns.map(function () { return 1; });\n var hiddenColumns = columns.map(function () { return false; });\n if (!enabled) {\n return { colSpans: colSpans, hiddenColumns: hiddenColumns };\n }\n var widths = columns.map(function (c) { return parseFloat((c.width || '').toString()) || 10; });\n var widthOfHiddenColumns = 0;\n for (var i = 0; i < columns.length; i++) {\n if (columns[i].locked) {\n continue;\n }\n var considerNext = (i < widths.length - 1) ? widths[i + 1] : 0;\n if (widthOfHiddenColumns + widths[i] + considerNext < scrollLeft) {\n hiddenColumns[i] = true;\n widthOfHiddenColumns += widths[i];\n }\n else {\n break;\n }\n }\n var totalWidth = widths.reduce(function (acc, current) { return acc + current; }, 0);\n widthOfHiddenColumns = 0;\n for (var i = columns.length - 1; i >= 0; i--) {\n if (columns[i].locked) {\n continue;\n }\n if (widthOfHiddenColumns + 2 * widths[i] < totalWidth - tableViewPortWidth - scrollLeft) {\n hiddenColumns[i] = true;\n widthOfHiddenColumns += widths[i];\n }\n else {\n break;\n }\n }\n var hiddenCols = __spreadArrays(hiddenColumns);\n var hidden = function (value) { return value; };\n var lastVisible = hiddenCols.lastIndexOf(false);\n var anyHidden = hiddenCols.some(hidden);\n var allHidden = hiddenCols.every(hidden);\n var hiddenSeqLength;\n var updateIndex;\n while (anyHidden && hiddenCols.length && (lastVisible !== -1 || allHidden)) {\n if (lastVisible < hiddenCols.length - 1) {\n hiddenSeqLength = allHidden ? hiddenCols.length : hiddenCols.length - lastVisible - 1;\n updateIndex = hiddenCols.length - hiddenSeqLength;\n if (updateIndex === 0) {\n updateIndex = hiddenSeqLength - 1;\n }\n hiddenColumns[updateIndex] = false;\n colSpans[updateIndex] = hiddenSeqLength;\n hiddenCols.splice(lastVisible + 1, hiddenSeqLength);\n }\n while (hiddenCols.length && !hiddenCols[hiddenCols.length - 1]) {\n hiddenCols.pop();\n }\n lastVisible = hiddenCols.lastIndexOf(false);\n anyHidden = hiddenCols.some(hidden);\n allHidden = hiddenCols.every(hidden);\n }\n return { colSpans: colSpans, hiddenColumns: hiddenColumns };\n}\n","var __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nvar provide = allVue.provide;\nimport { guid, Keys, getDefaultSlots } from '@progress/kendo-vue-common';\nimport { KEYBOARD_NAV_DATA_ID, KEYBOARD_NAV_DATA_LEVEL } from './constants';\nimport { findId, findNextIdByCellIndex, findNextIdByRowIndex, getBodyElement, getHeaderElement, getNavigatableId, tableKeyboardNavigationTools as navigationTools } from './utils';\n/**\n * A Vue component which provides a localization service.\n * Expects a language string as a property of the component.\n */\n\nvar TableKeyboardNavigationProvider = {\n name: 'KendoTableKeyboardNavigationProvider',\n props: {\n navigatable: {\n type: Boolean,\n default: false\n },\n id: String\n },\n data: function data() {\n return {\n scope: undefined,\n kbContext: undefined,\n navigation: undefined\n };\n },\n // watch: {\n // language: function (this: TableKeyboardNavigationProviderAll, newLanguage: string) {\n // this.$data.kendoLocalizationService.language = newLanguage ;\n // }\n // },\n // @ts-ignore\n setup: function setup(props) {\n var v3 = !!gh; // const localizationService = ref(new LocalizationService(props.language));\n // provide('kendoLocalizationService', localizationService);\n\n return {\n v3: v3\n };\n },\n provide: function provide() {\n return {\n getKeyboardNavigationAttributes: this.getKeyboardNavigationAttributes,\n onNavMount: this.onComponentDidMount,\n onGetSnapshotBeforeUpdate: this.onGetSnapshotBeforeUpdate,\n onComponentDidUpdate: this.onComponentDidUpdate,\n onNavFocus: this.onFocus,\n onNavKeyDown: this.onKeyDown,\n generateMatrix: this.generateMatrix,\n kbContext: this.kbContext,\n navigation: this.navigation\n };\n },\n created: function created() {\n var _a = this.$props,\n navigatable = _a.navigatable,\n id = _a.id; // v.2: check if nested navigation\n\n if (navigatable) {\n this.kbContext = {\n activeId: '',\n level: 0\n };\n this.navigation = {\n activeElementIsFocused: false,\n prevNavigationIndexes: undefined,\n idPrefix: id || guid(),\n navigationMatrix: [],\n lastHeaderIndex: -1\n };\n }\n },\n methods: {\n getKeyboardNavigationAttributes: function getKeyboardNavigationAttributes(elementId) {\n var _a;\n\n if (!elementId || this.$props.navigatable === false) {\n return {};\n }\n\n return _a = {\n tabIndex: this.kbContext.activeId && this.kbContext.activeId === elementId ? 0 : -1\n }, _a[KEYBOARD_NAV_DATA_LEVEL] = this.kbContext.level, _a[KEYBOARD_NAV_DATA_ID] = elementId, _a;\n },\n onComponentDidMount: function onComponentDidMount(options) {\n var _a = options.scope,\n scope = _a === void 0 ? this.scope : _a;\n\n if (this.kbContext && this.navigation && scope) {\n this.scope = scope;\n this.generateMatrix(options);\n var firstId = this.navigation.navigationMatrix[0][0];\n var firstIdElement = navigationTools.getActiveElement(scope, firstId);\n\n if (firstId && firstIdElement) {\n this.kbContext.activeId = firstId;\n firstIdElement.setAttribute('tabIndex', '0');\n }\n }\n },\n onGetSnapshotBeforeUpdate: function onGetSnapshotBeforeUpdate(options) {\n var _a = options.kbContext,\n kbContext = _a === void 0 ? this.kbContext : _a,\n _b = options.navigation,\n navigation = _b === void 0 ? this.navigation : _b,\n document = options.document;\n\n if (kbContext && navigation && document) {\n var activeElement = document.activeElement;\n var activeId = navigationTools.getNavigatableId(activeElement);\n\n if (activeId && activeId === kbContext.activeId) {\n navigation.activeElementIsFocused = true;\n }\n }\n },\n onComponentDidUpdate: function onComponentDidUpdate(options) {\n var scope = options.scope;\n this.generateMatrix(options); // check if nested navigation\n\n if (this.kbContext && this.navigation && scope) {\n var activeElement = navigationTools.getActiveElement(scope, this.kbContext.activeId);\n\n if (!activeElement) {\n var firstId = this.navigation.navigationMatrix[0][0];\n var firstIdElement = navigationTools.getActiveElement(scope, firstId);\n\n if (firstId && firstIdElement) {\n this.kbContext.activeId = firstId;\n firstIdElement.setAttribute('tabIndex', '0');\n\n if (this.navigation.activeElementIsFocused) {\n firstIdElement.focus();\n }\n }\n }\n\n this.navigation.activeElementIsFocused = false;\n }\n },\n onFocus: function onFocus(event) {\n var kbContext = this.kbContext;\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (!kbContext) {\n return;\n }\n\n var focusedElement = event.target;\n var activeId = navigationTools.getNavigatableId(focusedElement);\n\n if (activeId && activeId !== kbContext.activeId) {\n var scope = navigationTools.getClosestScope(focusedElement);\n\n if (!scope) {\n return;\n }\n\n var prevElement = navigationTools.getActiveElement(scope, kbContext.activeId);\n\n if (prevElement) {\n prevElement.setAttribute('tabIndex', '-1');\n }\n\n focusedElement.setAttribute('tabIndex', '0');\n kbContext.activeId = activeId;\n }\n },\n onKeyDown: function onKeyDown(event, options) {\n var _a = options.kbContext,\n kbContext = _a === void 0 ? this.kbContext : _a,\n _b = options.navigation,\n navigation = _b === void 0 ? this.navigation : _b,\n onNavigationAction = options.onNavigationAction;\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (!kbContext || !navigation) {\n return;\n }\n\n if (event.keyCode === Keys.esc) {\n // activate navigation\n var elementForFocus = navigationTools.getClosestNavigatableElement(event.target);\n navigationTools.focusElement({\n elementForFocus: elementForFocus,\n event: event,\n kbContext: kbContext\n });\n return;\n }\n\n var element = event.target;\n var elementId = navigationTools.getNavigatableId(element);\n var dataLevel = navigationTools.getNavigatableLevel(element);\n var scope = navigationTools.getClosestScope(element);\n var matrix = navigation.navigationMatrix;\n\n if (dataLevel !== undefined && scope) {\n if (event.keyCode === Keys.enter) {\n // activate nested navigation or focus focusable element\n var navigatableElement = navigationTools.getNavigatableElement(element, {\n level: dataLevel + 1\n });\n\n if (navigatableElement) {\n navigationTools.focusElement({\n elementForFocus: navigatableElement,\n event: event,\n kbContext: kbContext,\n prevElement: element\n });\n return;\n } else {\n var elementForFocus = navigationTools.getFocusableElements(element)[0];\n navigationTools.focusElement({\n elementForFocus: elementForFocus,\n event: event,\n kbContext: kbContext,\n prevElement: element\n });\n return;\n }\n }\n\n if (event.keyCode === Keys.up || event.keyCode === Keys.down || event.keyCode === Keys.left || event.keyCode === Keys.right) {\n var isReverse = event.keyCode === Keys.up || event.keyCode === Keys.left;\n var isVertical = event.keyCode === Keys.up || event.keyCode === Keys.down;\n var currentIdIndexes = void 0;\n\n if (navigation && navigation.prevNavigationIndexes) {\n var _c = navigation.prevNavigationIndexes,\n rowIndex = _c[0],\n cellIndex = _c[1];\n\n if (matrix[rowIndex][cellIndex] === elementId) {\n currentIdIndexes = navigation.prevNavigationIndexes;\n } else {\n currentIdIndexes = findId(matrix, elementId);\n }\n } else {\n currentIdIndexes = findId(matrix, elementId);\n }\n\n if (currentIdIndexes) {\n var rowIndex = currentIdIndexes[0],\n cellIndex = currentIdIndexes[1];\n\n var _d = isVertical ? findNextIdByRowIndex(rowIndex, cellIndex, elementId, matrix, isReverse) : findNextIdByCellIndex(rowIndex, cellIndex, elementId, matrix, isReverse),\n idForFocus = _d[0],\n currentIndexes = _d[1];\n\n if (idForFocus) {\n var elementForFocus = navigationTools.getActiveElement(scope, idForFocus); // emit event\n\n navigationTools.focusElement({\n elementForFocus: elementForFocus,\n event: event,\n kbContext: kbContext,\n prevElement: element\n });\n navigation.prevNavigationIndexes = currentIndexes;\n\n if (onNavigationAction) {\n onNavigationAction({\n focusElement: elementForFocus,\n event: event\n });\n }\n }\n }\n }\n }\n },\n generateMatrix: function generateMatrix(options) {\n var _a = options.navigation,\n navigation = _a === void 0 ? this.navigation : _a,\n scope = options.scope;\n\n if (!navigation || !scope) {\n return;\n }\n\n var matrix = [];\n var thead = getHeaderElement(scope);\n var tbody = getBodyElement(scope);\n\n if (!thead || !tbody) {\n return;\n }\n\n var headerRows = Array.from(thead.children);\n var bodyRows = Array.from(tbody.children);\n\n __spreadArrays(headerRows, bodyRows).forEach(function (row, rowIndex) {\n Array.from(row.children).forEach(function (cell) {\n var cellId = getNavigatableId(cell);\n\n if (!cellId) {\n return;\n } // cell is not navigatable\n\n\n var rowSpan = cell.rowSpan || 1;\n var cellSpan = cell.colSpan || 1;\n var cellIndex;\n\n for (var depth = rowIndex, maxDepth = rowIndex + rowSpan; depth < maxDepth; depth++) {\n if (!matrix[depth]) {\n matrix[depth] = [];\n }\n\n if (cellIndex === undefined) {\n var freeSlotIndex = matrix[depth].findIndex(function (mi) {\n return !mi;\n });\n cellIndex = freeSlotIndex > -1 ? freeSlotIndex : matrix[depth].length;\n }\n\n matrix[depth][cellIndex] = cellId || '';\n }\n\n for (var depth = cellIndex + 1, maxDepth = cellIndex + cellSpan; depth < maxDepth; depth++) {\n matrix[rowIndex][depth] = cellId || '';\n }\n });\n });\n\n navigation.navigationMatrix = matrix.filter(function (row) {\n return !!row;\n });\n navigation.lastHeaderIndex = headerRows.length - 1;\n }\n },\n\n /**\n * @hidden\n */\n // @ts-ignore\n render: function render(createElement) {\n // @ts-ignore\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n return defaultSlot[0];\n }\n};\nvar TableKeyboardNavigationProviderVue3 = TableKeyboardNavigationProvider;\nexport { TableKeyboardNavigationProvider, TableKeyboardNavigationProviderVue3 };","var _Draggable;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport KendoDraggable from '@telerik/kendo-draggable';\nimport { getDefaultSlots } from './defaultSlots';\n/**\n * Represents the default `Draggable` component.\n */\n\nvar Draggable = (_Draggable = {\n // @ts-ignore\n emits: {\n press: null,\n drag: null,\n release: null\n },\n inheritAttrs: false,\n created: function created() {\n this.element = null;\n this.draggable = new KendoDraggable({\n press: this.press,\n drag: this.drag,\n release: this.release\n });\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n mounted: function mounted() {\n if (this.$el) {\n this.element = this.$el.nodeType === 3 ? this.$el.nextElementSibling : this.$el;\n this.draggable.bindTo(this.element);\n }\n },\n destroyed: !!gh ? undefined : function () {\n this.draggable.destroy();\n },\n // @ts-ignore\n unmounted: function unmounted() {\n this.draggable.destroy();\n },\n methods: {\n press: function press(event) {\n if (this.element) {\n this.$emit('press', event, this.element);\n }\n },\n drag: function drag(event) {\n if (this.element) {\n this.$emit('drag', event, this.element);\n }\n },\n release: function release(event) {\n if (this.element) {\n this.$emit('release', event, this.element);\n }\n }\n }\n}, _defineProperty(_Draggable, \"setup\", !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n}), _defineProperty(_Draggable, \"render\", function render(createElement) {\n // @ts-ignore\n var h = gh || createElement;\n return getDefaultSlots(this);\n}), _Draggable);\nexport { Draggable };","/**\n * @hidden\n */\nexport var classNames = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return args\n .filter(function (arg) { return arg !== true && !!arg; })\n .map(function (arg) {\n return Array.isArray(arg)\n ? classNames.apply(void 0, arg) : typeof arg === 'object'\n ? Object\n .keys(arg)\n .map(function (key, idx) { return arg[idx] || (arg[key] && key) || null; })\n .filter(function (el) { return el !== null; })\n .join(' ')\n : arg;\n })\n .filter(function (arg) { return !!arg; })\n .join(' ');\n};\n","/* tslint:disable:no-bitwise */\n/**\n * @hidden\n */\nvar guid = function () {\n var id = '';\n var i;\n var random;\n for (i = 0; i < 32; i++) {\n random = Math.random() * 16 | 0;\n if (i === 8 || i === 12 || i === 16 || i === 20) {\n id += '-';\n }\n id += (i === 12 ? 4 : (i === 16 ? (random & 3 | 8) : random)).toString(16);\n }\n return id;\n};\nexport { guid };\n","/**\n * @hidden\n */\nvar Keys = {\n backspace: 8,\n tab: 9,\n enter: 13,\n shift: 16,\n esc: 27,\n space: 32,\n pageUp: 33,\n pageDown: 34,\n end: 35,\n home: 36,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n delete: 46\n};\nexport { Keys };\n","/**\n * @hidden\n */\nvar canUseDOM = Boolean(\n// from fbjs\ntypeof window !== 'undefined' &&\n window.document &&\n window.document.createElement);\nexport { canUseDOM };\n","/**\n * @hidden\n */\nexport function getDefaultSlots(component) {\n var defaultSlots = component.$slots.default;\n return (component.v3 && defaultSlots && typeof defaultSlots === 'function') ? defaultSlots() : defaultSlots;\n}\n","/**\n * @hidden\n */\nexport var cloneDate = function (date) { return date ? new Date(date.getTime()) : null; };\n/**\n * @hidden\n */\nexport function clone(obj) {\n var result = {};\n cloneObject(obj, result);\n return result;\n}\n/**\n * @hidden\n */\nexport function cloneObject(obj, result) {\n for (var field in obj) {\n if (obj.hasOwnProperty(field)) {\n var value = obj[field];\n result[field] = cloneValue(value, result[field]);\n }\n }\n}\n/**\n * @hidden\n */\nexport function cloneValue(value, nextValue) {\n if (Array.isArray(value)) {\n return cloneArray(value);\n }\n else if (value instanceof Date) {\n return cloneDate(value);\n }\n else if (value && typeof value === 'object') {\n var newNextValue = nextValue || {};\n cloneObject(value, newNextValue);\n return newNextValue;\n }\n else {\n return value;\n }\n}\n/**\n * @hidden\n */\nexport function cloneArray(array) {\n return array.map(function (value) { return cloneValue(value, undefined); });\n}\n","/**\n * @hidden\n */\nvar noop = function () { };\nexport { noop };\n","import { FIELD_REGEX } from './constants';\nvar getterCache = {};\ngetterCache.undefined = function () { return undefined; };\n/**\n * @hidden\n */\nexport function getter(field) {\n if (getterCache[field]) {\n return getterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n getterCache[field] = function (obj) {\n var result = obj;\n for (var idx = 0; idx < fields.length && result; idx++) {\n result = result[fields[idx]];\n }\n return result;\n };\n return getterCache[field];\n}\n","import { FIELD_REGEX } from './constants';\nvar setterCache = {};\nsetterCache.undefined = function (obj) { return obj; };\n/**\n * @hidden\n */\nexport function setter(field) {\n if (setterCache[field]) {\n return setterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n setterCache[field] = function (obj, value) {\n var root = obj;\n var depth = fields.length - 1;\n for (var idx = 0; idx < depth && root; idx++) {\n root = root[fields[idx]] = root[fields[idx]] || {};\n }\n root[fields[depth]] = value;\n };\n return setterCache[field];\n}\n","/**\n * @hidden\n */\nexport function hasListener(eventName) {\n if (this.v3) {\n return Object.keys(this.$attrs).map(function (name) { return name.toLowerCase(); })\n .some(function (event) { return event.endsWith(eventName.toLowerCase()); });\n }\n else {\n return this.$listeners[eventName];\n }\n}\n/**\n * @hidden\n */\nexport function getListeners() {\n if (this.v3) {\n var listeners = {};\n for (var key in (this.$attrs)) {\n if (key.startsWith('on')) {\n listeners[key] = this.$attrs[key];\n }\n }\n return listeners;\n }\n else {\n return this.$listeners;\n }\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\n/**\n * @hidden\n */\nexport function templateRendering(template, listeners) {\n if (!template) {\n return undefined;\n }\n var scopedSlot = gh ?\n this.$slots[template] ||\n (template.toLowerCase ? this.$slots[template.toLowerCase()]\n : null) :\n this.$scopedSlots[template] ||\n (template.toLowerCase ? this.$scopedSlots[template.toLowerCase()]\n : null);\n // @ts-ignore\n if (typeof template === 'string' && scopedSlot) {\n // @ts-ignore\n return { type: 'slot', render: scopedSlot, listeners: listeners };\n }\n if (typeof template === 'string' || typeof template === 'object' ||\n (typeof template === 'function' && template.component)) {\n return { type: 'component', render: template, listeners: listeners };\n }\n return { type: 'renderFunction', render: template, listeners: listeners };\n}\n/**\n * @hidden\n */\nexport function getTemplate(_a) {\n var h = _a.h, template = _a.template, defaultRendering = _a.defaultRendering, defaultSlots = _a.defaultSlots, additionalProps = _a.additionalProps, additionalListeners = _a.additionalListeners, swapDefaultSlots = _a.swapDefaultSlots;\n if (!template) {\n return defaultRendering;\n }\n var events;\n var props;\n var componentOptions;\n if (gh) {\n var passedProps = defaultRendering ? defaultRendering.props : {};\n events = __assign(__assign({}, transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, passedProps), additionalProps), events);\n componentOptions = __assign(__assign({}, props), events);\n }\n else {\n var hasComponentOptions = defaultRendering && defaultRendering.componentOptions;\n var defaultListeners = hasComponentOptions ?\n defaultRendering.componentOptions.listeners : {};\n var defaultProps = hasComponentOptions ?\n defaultRendering.componentOptions.propsData : {};\n events = __assign(__assign(__assign(__assign({}, defaultListeners), additionalListeners), transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, defaultProps), additionalProps), events);\n componentOptions = { props: props, on: events };\n }\n if (template.type === 'slot') {\n var slotTemplate = template.render({ props: props, listeners: events, methods: events,\n defaultSlots: defaultSlots });\n return slotTemplate ? slotTemplate[0] : undefined;\n }\n else if (template.type === 'renderFunction') {\n if (swapDefaultSlots) {\n return template.render(h, defaultRendering, defaultSlots, props, events);\n }\n return template.render(h, defaultRendering, props, events, defaultSlots);\n }\n else {\n return h(template.render, componentOptions, gh ? function () { return [defaultSlots]; } : [defaultSlots]);\n }\n}\n/**\n * @hidden\n */\nexport function transformListeners(listeners) {\n if (!listeners) {\n return listeners;\n }\n var newListeners = {};\n var listenersKeys = Object.keys(listeners);\n for (var i = 0; i < listenersKeys.length; i++) {\n var currentKey = listenersKeys[i];\n newListeners['on' + currentKey.charAt(0).toUpperCase() + currentKey.slice(1)] =\n listeners[currentKey];\n }\n return newListeners;\n}\n","import * as licensing from '@progress/kendo-licensing';\n/**\n * @hidden\n */\nexport function validatePackage(packageMetadata) {\n if (typeof licensing !== 'undefined') {\n licensing.validatePackage(packageMetadata);\n }\n else {\n var message = \"License activation failed for \" + packageMetadata.name + \"\\n\";\n message += 'The @progress/kendo-licensing script is not loaded.\\n';\n message += \"See \" + packageMetadata.licensingDocsUrl + \" for more information.\\n\";\n console.warn(message);\n }\n}\n","/**\n * A function that clones the passed date. The parameter could be `null`.\n *\n * @param date - The initial date value.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * cloneDate(new Date(2016, 0, 1)); // returns new Date(2016, 0, 1);\n * cloneDate(null); // returns null\n * ```\n */\nexport var cloneDate = function (date) { return date ? new Date(date.getTime()) : null; };\n","/**\n * Enumeration which represents the week days.\n */\nexport var Day;\n(function (Day) {\n /**\n * The Sunday value with an underlying `0` number value.\n */\n Day[Day[\"Sunday\"] = 0] = \"Sunday\";\n /**\n * The Monday value with an underlying `1` number value.\n */\n Day[Day[\"Monday\"] = 1] = \"Monday\";\n /**\n * The Tuesday value with an underlying `2` number value.\n */\n Day[Day[\"Tuesday\"] = 2] = \"Tuesday\";\n /**\n * The Wednesday value with an underlying `3` number value.\n */\n Day[Day[\"Wednesday\"] = 3] = \"Wednesday\";\n /**\n * The Thursday value with an underlying `4` number value.\n */\n Day[Day[\"Thursday\"] = 4] = \"Thursday\";\n /**\n * The Friday value with an underlying `5` number value.\n */\n Day[Day[\"Friday\"] = 5] = \"Friday\";\n /**\n * The Saturday value with an underlying `6` number value.\n */\n Day[Day[\"Saturday\"] = 6] = \"Saturday\";\n})(Day || (Day = {}));\n","import { cloneDate } from './clone-date';\n/**\n * @hidden\n */\nexport var adjustDST = function (date, hour) {\n var newDate = cloneDate(date);\n if (hour === 0 && newDate.getHours() === 23) {\n newDate.setHours(newDate.getHours() + 2);\n }\n return newDate;\n};\n","import { adjustDST } from './adjust-dst';\n/**\n * A function which returns a new `Date` instance.\n *\n * @param year - The year value.\n * @param month - The month value.\n * @param day - The day value.\n * @param hours - The hours value.\n * @param minutes - The minutes value.\n * @param seconds - The seconds value.\n * @param milliseconds - milliseconds value.\n * @returns The date instance.\n *\n * @example\n * ```ts-no-run\n * createDate(2016, 0, 15); // 2016-01-15 00:00:00\n * createDate(2016, 0, 15, 22, 22, 20); // 2016-01-15 22:22:20\n * ```\n */\nexport var createDate = function (year, month, day, hours, minutes, seconds, milliseconds) {\n if (hours === void 0) { hours = 0; }\n if (minutes === void 0) { minutes = 0; }\n if (seconds === void 0) { seconds = 0; }\n if (milliseconds === void 0) { milliseconds = 0; }\n var date = new Date(year, month, day, hours, minutes, seconds, milliseconds);\n if (year > -1 && year < 100) {\n date.setFullYear(date.getFullYear() - 1900);\n }\n return adjustDST(date, hours);\n};\n","import { createDate } from './create-date';\n/**\n * A function which returns the passed date with a midnight time portion.\n *\n * @param date - The initial date.\n * @returns - The date with a midnight time portion.\n *\n * @example\n * ```ts-no-run\n * getDate(new Date(2016, 0, 15, 14, 30, 30)); // 2016-01-15 00:00:00\n * ```\n */\nexport var getDate = function (date) {\n return createDate(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);\n};\n","/**\n * A function that compares two dates. The comparison also includes the time portion.\n *\n * @param candidate - The candidate date.\n * @param expected - The expected date.\n * @returns - A Boolean value indicating whether the values are equal.\n *\n * @example\n * ```ts-no-run\n * isEqual(new Date(2016, 0, 1), new Date(2016, 0, 1)); // true\n * isEqual(new Date(2016, 0, 1), new Date(2016, 0, 2)); // false\n * isEqual(new Date(2016, 0, 1, 10), new Date(2016, 0, 1, 20)); // false\n * ```\n */\nexport var isEqual = function (candidate, expected) {\n if (!candidate && !expected) {\n return true;\n }\n return candidate && expected && candidate.getTime() === expected.getTime();\n};\n","import { getDate } from './get-date';\nimport { isEqual } from './is-equal';\n/**\n * A function that compares the date portions of 2 dates.\n *\n * @param candidate - The candidate date.\n * @param expected - The expected date.\n * @returns - A Boolean value whether the values are equal.\n *\n * @example\n * ```ts-no-run\n * isEqualDate(new Date(2016, 0, 1, 10), new Date(2016, 0, 1, 20)); // true\n * isEqualDate(new Date(2016, 0, 1, 10), new Date(2016, 0, 2, 10)); // false\n * ```\n */\nexport var isEqualDate = function (candidate, expected) {\n if (!candidate && !expected) {\n return true;\n }\n return candidate && expected && isEqual(getDate(candidate), getDate(expected));\n};\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-vue-dateinputs',\n productName: 'Kendo UI for Vue',\n productCodes: ['KENDOUIVUE', 'KENDOUICOMPLETE'],\n publishDate: 1641561446,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning'\n};\n","import { adjustDST } from './adjust-dst';\nimport { cloneDate } from './clone-date';\n/**\n * A function that adds and subtracts days from a `Date` object.\n *\n * @param date - The initial date value.\n * @param offset - The number of days to add and subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addDays(new Date(2016, 0, 1), 5); // 2016-1-6\n * addDays(new Date(2016, 0, 1), -5); // 2015-12-26\n * ```\n */\nexport var addDays = function (date, offset) {\n var newDate = cloneDate(date);\n newDate.setDate(newDate.getDate() + offset);\n return adjustDST(newDate, date.getHours());\n};\n","// tslint:disable:max-line-length\n/**\n * An enumeration which represents the horizontal direction. The `Forward` option moves forward. The `Backward` option moves backward.\n */\nexport var Direction;\n(function (Direction) {\n /**\n * The `Forward` value with an underlying `1` number value.\n */\n Direction[Direction[\"Forward\"] = 1] = \"Forward\";\n /**\n * The `Backward` value with an underlying `-1` (minus one) number value.\n */\n Direction[Direction[\"Backward\"] = -1] = \"Backward\";\n})(Direction || (Direction = {}));\n// tslint:enable:max-line-length\n","import { Direction } from \"./direction.enum\";\nimport { adjustDST } from \"./adjust-dst\";\nimport { cloneDate } from './clone-date';\n/**\n * @hidden\n *\n * A function which returns the next or previous date for a specific week day. For example, `Day.Monday`.\n *\n * @param date - The date to calculate from.\n * @param weekDay - The `Day` enum specifying the desired week day.\n * @param direction - The `Direction` enum specifying the calculation direction.\n * @returns - A `Date` instance.\n *\n * @example\n * ```ts-no-run\n * dayOfWeek(new Date(2016, 0, 1), Day.Wednesday, Direction.Forward); // 2016-01-06, Wednesday\n * dayOfWeek(new Date(2016, 0, 1), Day.Wednesday, Direction.Backward); // 2015-12-30, Wednesday\n * ```\n */\nexport var dayOfWeek = function (date, weekDay, direction) {\n if (direction === void 0) { direction = Direction.Forward; }\n var newDate = cloneDate(date);\n var newDay = ((weekDay - newDate.getDay()) + (7 * direction)) % 7;\n newDate.setDate(newDate.getDate() + newDay);\n return adjustDST(newDate, date.getHours());\n};\n","/**\n * @hidden\n */\nexport var Action;\n(function (Action) {\n Action[Action[\"Left\"] = 0] = \"Left\";\n Action[Action[\"Right\"] = 1] = \"Right\";\n Action[Action[\"Up\"] = 2] = \"Up\";\n Action[Action[\"Down\"] = 3] = \"Down\";\n Action[Action[\"PrevView\"] = 4] = \"PrevView\";\n Action[Action[\"NextView\"] = 5] = \"NextView\";\n Action[Action[\"FirstInView\"] = 6] = \"FirstInView\";\n Action[Action[\"LastInView\"] = 7] = \"LastInView\";\n Action[Action[\"LowerView\"] = 8] = \"LowerView\";\n Action[Action[\"UpperView\"] = 9] = \"UpperView\";\n})(Action || (Action = {}));\n","/**\n * The Enum which defines all possible Calendar view types.\n */\nexport var CalendarViewEnum;\n(function (CalendarViewEnum) {\n CalendarViewEnum[CalendarViewEnum[\"month\"] = 0] = \"month\";\n CalendarViewEnum[CalendarViewEnum[\"year\"] = 1] = \"year\";\n CalendarViewEnum[CalendarViewEnum[\"decade\"] = 2] = \"decade\";\n CalendarViewEnum[CalendarViewEnum[\"century\"] = 3] = \"century\";\n})(CalendarViewEnum || (CalendarViewEnum = {}));\n","import { Direction } from \"./direction.enum\";\nimport { dayOfWeek } from './day-of-week';\n/**\n * A function which returns a date by a specific week name. For example, `Day.Monday`.\n *\n * @param date - The date to calculate from.\n * @param weekDay - The `Day` enum specifying the desired week day.\n * @returns - A `Date` instance.\n *\n * @example\n * ```ts-no-run\n * prevDayOfWeek(new Date(2016, 0, 1), Day.Wednesday); // 2015-12-30, Wednesday\n * ```\n */\nexport var prevDayOfWeek = function (date, weekDay) {\n return dayOfWeek(date, weekDay, Direction.Backward);\n};\n","/**\n * The number of milliseconds in one minute.\n */\nexport var MS_PER_MINUTE = 60000;\n/**\n * The number of milliseconds in one hour.\n */\nexport var MS_PER_HOUR = 3600000;\n/**\n * The number of milliseconds in one standard day.\n */\nexport var MS_PER_DAY = 86400000;\n","import { Day } from './day.enum';\nimport { addDays } from './add-days';\nimport { createDate } from './create-date';\nimport { prevDayOfWeek } from './prev-day-of-week';\nimport { MS_PER_DAY } from './constants';\nvar moveDateToWeekStart = function (date, weekStartDay) {\n if (weekStartDay !== Day.Monday) {\n return addDays(prevDayOfWeek(date, weekStartDay), 4);\n }\n return addDays(date, (4 - (date.getDay() || 7)));\n};\nvar calcWeekInYear = function (date, weekStartDay) {\n var firstWeekInYear = createDate(date.getFullYear(), 0, 1, -6);\n var newDate = moveDateToWeekStart(date, weekStartDay);\n var diffInMS = newDate.getTime() - firstWeekInYear.getTime();\n var days = Math.floor(diffInMS / MS_PER_DAY);\n return 1 + Math.floor(days / 7);\n};\n/**\n * A function that returns the number of the week within a year, which is calculated in relation to the date.\n *\n * For more information, refer to the [**ISO week date**](https://en.wikipedia.org/wiki/ISO_week_date) article.\n *\n * @param date - The date used for the week number calculation.\n * @param weekStartDay - The first day of the week. By default, the first week day is Monday.\n * @returns - The number of the week within the year.\n *\n * @example\n * ```ts-no-run\n * weekInYear(new Date(2016, 0, 1)); // Week 53, 2015\n * weekInYear(new Date(2016, 0, 5)); // Week 1, 2016\n * weekInYear(new Date(2017, 0, 1)); // Week 52, 2016\n * weekInYear(new Date(2017, 0, 2)); // Week 1, 2017\n * ```\n */\nexport var weekInYear = function (date, weekStartDay) {\n if (weekStartDay === void 0) { weekStartDay = Day.Monday; }\n var prevWeekDate = addDays(date, -7);\n var nextWeekDate = addDays(date, 7);\n var weekNumber = calcWeekInYear(date, weekStartDay);\n if (weekNumber === 0) {\n return calcWeekInYear(prevWeekDate, weekStartDay) + 1;\n }\n if (weekNumber === 53 && calcWeekInYear(nextWeekDate, weekStartDay) > 1) {\n return 1;\n }\n return weekNumber;\n};\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * @hidden\n */\n\nvar compareProps = function compareProps(x, y) {\n var xProps = Object.getOwnPropertyNames(x);\n var yProps = Object.getOwnPropertyNames(y);\n\n if (xProps.length !== yProps.length) {\n return false;\n }\n\n for (var i = 0; i < xProps.length; i++) {\n var propName = xProps[i];\n\n if (x[propName] !== y[propName]) {\n return false;\n }\n }\n\n return true;\n};\n/**\n * The `CalendarCell` component is internally used for rendering the items in the current view. Also be used as a custom `cell` of the [Calendar]({% slug api_dateinputs_native_calendarprops %}#toc-cell).\n *\n * * [Customizing the cells inside the Calendar view]({% slug custom_rendering_calendar_native %}#toc-cells-inside-the-view)\n */\n\n\nvar CalendarCell = {\n name: 'KendoCalendarCell',\n // @ts-ignore\n emits: {\n 'click': null,\n 'mousedown': null,\n 'mouseenter': null,\n 'mouseleave': null\n },\n props: {\n isDisabled: Boolean,\n view: Number,\n formattedValue: String,\n id: String,\n isWeekend: Boolean,\n isFocused: Boolean,\n isSelected: Boolean,\n isInRange: Boolean,\n isRangeStart: Boolean,\n isRangeEnd: Boolean,\n isRangeMid: Boolean,\n isRangeSplitEnd: Boolean,\n isRangeSplitStart: Boolean,\n isToday: Boolean,\n title: String,\n value: Date\n },\n // Manually checking if the component needs an update\n // due to date object being compared by instance\n // and new Date object is created\n // every time and fails the shallow compare of the Vue.PureComponent.\n\n /**\n * @hidden\n */\n updated: function updated() {// const { value, ...props } = this.props;\n // const { value: newValue, ...newProps } = nextProps;\n // const valueEqual = !(value && newValue) || value.getTime() === newValue.getTime();\n // return !(valueEqual && compareProps(props, newProps));\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // tslint:disable:max-line-length\n\n /**\n * @return\n * Returns a ` | ` element with a `` inside to apply the styles. The text inside is the [`formattedValue`]({% slug api_dateinputs_calendarcellprops %}#toc-formattedvalue) of the `cell`.\n */\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n var _a = this.$props,\n formattedValue = _a.formattedValue,\n isWeekend = _a.isWeekend,\n isFocused = _a.isFocused,\n isInRange = _a.isInRange,\n isSelected = _a.isSelected,\n isRangeStart = _a.isRangeStart,\n isRangeMid = _a.isRangeMid,\n isRangeEnd = _a.isRangeEnd,\n isRangeSplitStart = _a.isRangeSplitStart,\n isRangeSplitEnd = _a.isRangeSplitEnd,\n isToday = _a.isToday,\n isDisabled = _a.isDisabled,\n view = _a.view,\n value = _a.value;\n var isEndActive = this.$props.activeRangeEnd === 'end' && isRangeEnd;\n var isStartActive = this.$props.activeRangeEnd === 'start' && isRangeStart;\n return h(\"td\", {\n id: this.$props.id,\n attrs: this.v3 ? undefined : {\n id: this.$props.id,\n title: this.$props.title\n },\n title: this.$props.title,\n \"class\": {\n 'k-calendar-td': true,\n 'k-range-end': isRangeEnd,\n 'k-range-mid': isRangeMid,\n 'k-range-split-end': isRangeSplitEnd,\n 'k-range-split-start': isRangeSplitStart,\n 'k-range-start': isRangeStart,\n 'k-state-active': isStartActive || isEndActive,\n 'k-state-focused': isFocused,\n 'k-state-selected': isSelected || isRangeStart || isRangeEnd,\n 'k-today': isToday,\n 'k-weekend': isWeekend,\n 'k-state-disabled': isDisabled\n },\n onClick: this.handleClick,\n on: this.v3 ? undefined : {\n \"click\": this.handleClick,\n \"mousedown\": this.handleMouseDown,\n \"mouseenter\": this.handleMouseEnter,\n \"mouseleave\": this.handleMouseLeave\n },\n onMousedown: this.handleMouseDown,\n onMouseenter: this.handleMouseEnter,\n onMouseleave: this.handleMouseLeave\n }, [h(\"span\", {\n \"class\": \"k-link\"\n }, [defaultSlot])]);\n },\n // tslint:enable:max-line-length\n methods: {\n handleClick: function handleClick(event) {\n var value = this.$props.value;\n this.$emit('click', value, event);\n },\n handleMouseDown: function handleMouseDown(event) {\n var value = this.$props.value;\n this.$emit('mousedown', value, event);\n },\n handleMouseEnter: function handleMouseEnter() {\n var value = this.$props.value;\n this.$emit('mouseenter', value);\n },\n handleMouseLeave: function handleMouseLeave() {\n var value = this.$props.value;\n this.$emit('mouseleave', value);\n }\n }\n};\nvar CalendarCellVue3 = CalendarCell;\nexport { CalendarCell, CalendarCellVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * The `CalendarWeekCell` component is internally used for rendering the week cells inside the `month` view of the Calendar. Also used as a [custom week cell for the Calendar]({% slug api_dateinputs_native_calendarprops %}#toc-weekcell) and the [MultiViewCalendar]({% slug api_dateinputs_multiviewcalendarprops %}#toc-weekcell) components.\n *\n * * [Customizing week-column cells in the Calendar]({% slug custom_rendering_calendar_native %}#toc-cells-inside-the-week-column)\n */\n\nvar CalendarWeekCell = {\n props: {\n id: String,\n value: Number\n },\n // @ts-ignore\n emits: {\n 'click': null\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n\n /**\n * @return\n * Returns a ` | ` element with the [`value`]({% slug api_dateinputs_calendarweekcellprops %}#toc-value) as a child.\n */\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n return h(\"td\", {\n onClick: this.handleClick,\n on: this.v3 ? undefined : {\n \"click\": this.handleClick\n },\n value: this.$props.value,\n attrs: this.v3 ? undefined : {\n value: this.$props.value,\n id: this.$props.id\n },\n id: this.$props.id\n }, [defaultSlot]);\n },\n methods: {\n handleClick: function handleClick(event) {\n var value = this.$props.value;\n this.$emit('click', value, event);\n }\n }\n};\nvar CalendarWeekCellVue3 = CalendarWeekCell;\nexport { CalendarWeekCell, CalendarWeekCellVue3 };","/**\n * @hidden\n */\nexport var EMPTY_SELECTIONRANGE = { start: null, end: null };\n","var _a;\n/* tslint:disable:object-literal-sort-keys */\nimport { addDecades, addCenturies, cloneDate, durationInCenturies, firstYearOfDecade, firstDecadeOfCentury, lastDecadeOfCentury } from '@progress/kendo-date-math';\nimport { Action, EMPTY_SELECTIONRANGE } from '../models';\nimport { getToday, isInRange, isInSelectionRange, range } from '../../utils';\nvar EMPTY_DATA = [[]];\nvar CELLS_LENGTH = 4;\nvar ROWS_LENGTH = 3;\nvar ACTIONS = (_a = {},\n _a[Action.Left] = function (date) { return addDecades(date, -1); },\n _a[Action.Up] = function (date) { return addDecades(date, -4); },\n _a[Action.Right] = function (date) { return addDecades(date, 1); },\n _a[Action.Down] = function (date) { return addDecades(date, 4); },\n _a[Action.PrevView] = function (date) { return addCenturies(date, -1); },\n _a[Action.NextView] = function (date) { return addCenturies(date, 1); },\n _a[Action.FirstInView] = function (date) { return firstDecadeOfCentury(date); },\n _a[Action.LastInView] = function (date) { return lastDecadeOfCentury(date); },\n _a);\n/**\n * @hidden\n */\nvar CenturyViewService = /** @class */ (function () {\n function CenturyViewService() {\n }\n CenturyViewService.prototype.addToDate = function (min, skip) {\n return addCenturies(min, skip);\n };\n CenturyViewService.prototype.datesList = function (start, count) {\n return range(0, count).map(function (i) { return addCenturies(start, i); });\n };\n CenturyViewService.prototype.data = function (options) {\n var _this = this;\n var cellUID = options.cellUID, focusedDate = options.focusedDate, isActiveView = options.isActiveView, max = options.max, min = options.min, selectedDate = options.selectedDate, _a = options.selectionRange, selectionRange = _a === void 0 ? EMPTY_SELECTIONRANGE : _a, viewDate = options.viewDate;\n if (!viewDate) {\n return EMPTY_DATA;\n }\n var cells = range(0, CELLS_LENGTH);\n var firstDate = firstDecadeOfCentury(viewDate);\n var lastDate = lastDecadeOfCentury(viewDate);\n var today = getToday();\n return range(0, ROWS_LENGTH).map(function (rowOffset) {\n var baseDate = addDecades(firstDate, rowOffset * CELLS_LENGTH);\n return cells.map(function (cellOffset) {\n var cellDate = _this.normalize(addDecades(baseDate, cellOffset), min, max);\n var changedDecade = !_this.isInSameView(cellDate, lastDate);\n if (changedDecade) {\n return null;\n }\n var isRangeStart = _this.isEqual(cellDate, selectionRange.start);\n var isRangeEnd = _this.isEqual(cellDate, selectionRange.end);\n var isInMiddle = !isRangeStart && !isRangeEnd;\n var isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);\n var isSelected = isActiveView && (!Array.isArray(selectedDate)\n ? isInRange(selectedDate, min, max) && _this.isEqual(cellDate, selectedDate)\n : _this.isSelectedFromArray(cellDate, selectedDate, min, max));\n return {\n formattedValue: _this.value(cellDate),\n id: \"\" + cellUID + cellDate.getTime(),\n isFocused: _this.isEqual(cellDate, focusedDate),\n isSelected: isSelected,\n isWeekend: false,\n isInRange: isInRange(cellDate, min, max),\n isRangeStart: isRangeStart,\n isRangeMid: isRangeMid,\n isRangeEnd: isRangeEnd,\n isRangeSplitEnd: isRangeMid && _this.isEqual(cellDate, lastDate),\n isRangeSplitStart: isRangeMid && _this.isEqual(cellDate, firstDate),\n isToday: _this.isEqual(cellDate, today),\n title: _this.cellTitle(cellDate),\n value: cellDate\n };\n });\n });\n };\n CenturyViewService.prototype.isSelectedFromArray = function (candidate, dates, min, max) {\n var _this = this;\n var result = false;\n dates.forEach(function (date) {\n if (isInRange(candidate, min, max) && _this.isEqual(candidate, date)) {\n result = true;\n }\n });\n return result;\n };\n CenturyViewService.prototype.isEqual = function (candidate, expected) {\n if (!candidate || !expected) {\n return false;\n }\n // TODO: double-check this!\n return firstYearOfDecade(candidate).getFullYear() === firstYearOfDecade(expected).getFullYear();\n };\n CenturyViewService.prototype.isInArray = function (date, dates) {\n if (!dates.length) {\n return false;\n }\n var year = date.getFullYear();\n return dates[0].getFullYear() <= year && year <= (dates[dates.length - 1].getFullYear() + 99);\n };\n CenturyViewService.prototype.isInRange = function (candidate, min, max) {\n var year = firstYearOfDecade(candidate).getFullYear();\n var aboveMin = !min || firstYearOfDecade(min).getFullYear() <= year;\n var belowMax = !max || year <= firstYearOfDecade(max).getFullYear();\n return aboveMin && belowMax;\n };\n CenturyViewService.prototype.isInSameView = function (candidate, value) {\n return durationInCenturies(candidate, value) === 0;\n };\n CenturyViewService.prototype.isRangeStart = function (value) {\n return value.getFullYear() % 1000 === 0;\n };\n CenturyViewService.prototype.move = function (value, action) {\n var modifier = ACTIONS[action];\n if (!modifier) {\n return value;\n }\n return modifier(value);\n };\n CenturyViewService.prototype.cellTitle = function (value) {\n return firstYearOfDecade(value).getFullYear().toString();\n };\n CenturyViewService.prototype.navigationTitle = function (value) {\n return value ? firstDecadeOfCentury(value).getFullYear().toString() : '';\n };\n CenturyViewService.prototype.title = function (value) {\n if (!value) {\n return '';\n }\n return firstDecadeOfCentury(value).getFullYear() + \" - \" + lastDecadeOfCentury(value).getFullYear();\n };\n CenturyViewService.prototype.rowLength = function (_) {\n return CELLS_LENGTH;\n };\n CenturyViewService.prototype.skip = function (value, min) {\n return durationInCenturies(min, value);\n };\n CenturyViewService.prototype.total = function (min, max) {\n return durationInCenturies(min, max) + 1;\n };\n CenturyViewService.prototype.value = function (current) {\n return current ? firstYearOfDecade(current).getFullYear().toString() : '';\n };\n CenturyViewService.prototype.viewDate = function (date, max, border) {\n if (border === void 0) { border = 1; }\n var renderTwoViews = durationInCenturies(date, max) < border;\n return renderTwoViews ? addCenturies(date, -1) : date;\n };\n CenturyViewService.prototype.normalize = function (cellDate, min, max) {\n if (cellDate < min && this.isEqual(cellDate, min)) {\n return cloneDate(min);\n }\n if (cellDate > max && this.isEqual(cellDate, max)) {\n return cloneDate(max);\n }\n return cellDate;\n };\n return CenturyViewService;\n}());\nexport { CenturyViewService };\n","var _a;\nimport { addDecades, addYears, cloneDate, durationInDecades, firstYearOfDecade, lastYearOfDecade } from '@progress/kendo-date-math';\nimport { Action } from '../models/NavigationAction';\nimport { EMPTY_SELECTIONRANGE } from '../models/SelectionRange';\nimport { getToday, isInRange, isInSelectionRange, range } from '../../utils';\nvar EMPTY_DATA = [[]];\nvar CELLS_LENGTH = 4;\nvar ROWS_LENGTH = 3;\nvar ACTIONS = (_a = {},\n _a[Action.Left] = function (date) { return addYears(date, -1); },\n _a[Action.Up] = function (date) { return addYears(date, -4); },\n _a[Action.Right] = function (date) { return addYears(date, 1); },\n _a[Action.Down] = function (date) { return addYears(date, 4); },\n _a[Action.PrevView] = function (date) { return addDecades(date, -1); },\n _a[Action.NextView] = function (date) { return addDecades(date, 1); },\n _a[Action.FirstInView] = function (date) { return firstYearOfDecade(date); },\n _a[Action.LastInView] = function (date) { return lastYearOfDecade(date); },\n _a);\n/**\n * @hidden\n */\nvar DecadeViewService = /** @class */ (function () {\n function DecadeViewService() {\n }\n DecadeViewService.prototype.addToDate = function (min, skip) {\n return addDecades(min, skip);\n };\n DecadeViewService.prototype.datesList = function (start, count) {\n return range(0, count).map(function (i) { return addDecades(firstYearOfDecade(start), i); });\n };\n DecadeViewService.prototype.data = function (options) {\n var _this = this;\n var cellUID = options.cellUID, focusedDate = options.focusedDate, isActiveView = options.isActiveView, max = options.max, min = options.min, selectedDate = options.selectedDate, _a = options.selectionRange, selectionRange = _a === void 0 ? EMPTY_SELECTIONRANGE : _a, viewDate = options.viewDate;\n if (!viewDate) {\n return EMPTY_DATA;\n }\n var cells = range(0, CELLS_LENGTH);\n var firstDate = firstYearOfDecade(viewDate);\n var lastDate = lastYearOfDecade(viewDate);\n var today = getToday();\n return range(0, ROWS_LENGTH).map(function (rowOffset) {\n var baseDate = addYears(firstDate, rowOffset * CELLS_LENGTH);\n return cells.map(function (cellOffset) {\n var cellDate = _this.normalize(addYears(baseDate, cellOffset), min, max);\n var changedDecade = !_this.isInSameView(cellDate, lastDate);\n if (changedDecade) {\n return null;\n }\n var isRangeStart = _this.isEqual(cellDate, selectionRange.start);\n var isRangeEnd = _this.isEqual(cellDate, selectionRange.end);\n var isInMiddle = !isRangeStart && !isRangeEnd;\n var isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);\n var isSelected = isActiveView && (!Array.isArray(selectedDate)\n ? isInRange(selectedDate, min, max) && _this.isEqual(cellDate, selectedDate)\n : _this.isSelectedFromArray(cellDate, selectedDate, min, max));\n return {\n formattedValue: _this.value(cellDate),\n id: \"\" + cellUID + cellDate.getTime(),\n isFocused: _this.isEqual(cellDate, focusedDate),\n isSelected: isSelected,\n isWeekend: false,\n isInRange: isInRange(cellDate, min, max),\n isRangeStart: isRangeStart,\n isRangeMid: isRangeMid,\n isRangeEnd: isRangeEnd,\n isRangeSplitEnd: isRangeMid && _this.isEqual(cellDate, lastDate),\n isRangeSplitStart: isRangeMid && _this.isEqual(cellDate, firstDate),\n isToday: _this.isEqual(cellDate, today),\n title: _this.cellTitle(cellDate),\n value: cellDate\n };\n });\n });\n };\n DecadeViewService.prototype.isSelectedFromArray = function (candidate, dates, min, max) {\n var _this = this;\n var result = false;\n dates.forEach(function (date) {\n if (isInRange(candidate, min, max) && _this.isEqual(candidate, date)) {\n result = true;\n }\n });\n return result;\n };\n DecadeViewService.prototype.isEqual = function (candidate, expected) {\n if (!candidate || !expected) {\n return false;\n }\n return candidate.getFullYear() === expected.getFullYear();\n };\n DecadeViewService.prototype.isInArray = function (date, dates) {\n if (!dates.length) {\n return false;\n }\n var year = date.getFullYear();\n return dates[0].getFullYear() <= year && year <= (dates[dates.length - 1].getFullYear() + 9);\n };\n DecadeViewService.prototype.isInRange = function (candidate, min, max) {\n var year = candidate.getFullYear();\n var aboveMin = !min || min.getFullYear() <= year;\n var belowMax = !max || year <= max.getFullYear();\n return aboveMin && belowMax;\n };\n DecadeViewService.prototype.isRangeStart = function (value) {\n return value.getFullYear() % 100 === 0;\n };\n DecadeViewService.prototype.isInSameView = function (candidate, value) {\n return durationInDecades(candidate, value) === 0;\n };\n DecadeViewService.prototype.move = function (value, action) {\n var modifier = ACTIONS[action];\n if (!modifier) {\n return value;\n }\n return modifier(value);\n };\n DecadeViewService.prototype.cellTitle = function (value) {\n return value.getFullYear().toString();\n };\n DecadeViewService.prototype.navigationTitle = function (value) {\n return value ? firstYearOfDecade(value).getFullYear().toString() : '';\n };\n DecadeViewService.prototype.title = function (value) {\n if (!value) {\n return '';\n }\n return firstYearOfDecade(value).getFullYear() + \" - \" + lastYearOfDecade(value).getFullYear();\n };\n DecadeViewService.prototype.rowLength = function (_) {\n return CELLS_LENGTH;\n };\n DecadeViewService.prototype.skip = function (value, min) {\n return durationInDecades(min, value);\n };\n DecadeViewService.prototype.total = function (min, max) {\n return durationInDecades(min, max) + 1;\n };\n DecadeViewService.prototype.value = function (current) {\n return current ? current.getFullYear().toString() : '';\n };\n DecadeViewService.prototype.viewDate = function (date, max, border) {\n if (border === void 0) { border = 1; }\n var renderTwoViews = durationInDecades(date, max) < border;\n return renderTwoViews ? addDecades(date, -1) : date;\n };\n DecadeViewService.prototype.normalize = function (cellDate, min, max) {\n if (cellDate < min && this.isEqual(cellDate, min)) {\n return cloneDate(min);\n }\n if (cellDate > max && this.isEqual(cellDate, max)) {\n return cloneDate(max);\n }\n return cellDate;\n };\n return DecadeViewService;\n}());\nexport { DecadeViewService };\n","var _a;\nimport { addDays, addWeeks, addMonths, dayOfWeek, durationInMonths, getDate, firstDayOfMonth, lastDayOfMonth } from '@progress/kendo-date-math';\nimport { Action } from '../models/NavigationAction';\nimport { EMPTY_SELECTIONRANGE } from '../models/SelectionRange';\nimport { getToday, isInRange, isInSelectionRange, range } from '../../utils';\nvar EMPTY_DATA = [[]];\nvar CELLS_LENGTH = 7;\nvar ROWS_LENGTH = 6;\nvar SATURDAY = 6;\nvar SUNDAY = 0;\nvar ACTIONS = (_a = {},\n _a[Action.Left] = function (date) { return addDays(date, -1); },\n _a[Action.Up] = function (date) { return addWeeks(date, -1); },\n _a[Action.Right] = function (date) { return addDays(date, 1); },\n _a[Action.Down] = function (date) { return addWeeks(date, 1); },\n _a[Action.PrevView] = function (date) { return addMonths(date, -1); },\n _a[Action.NextView] = function (date) { return addMonths(date, 1); },\n _a[Action.FirstInView] = function (date) { return firstDayOfMonth(date); },\n _a[Action.LastInView] = function (date) { return lastDayOfMonth(date); },\n _a);\n/**\n * @hidden\n */\nvar MonthViewService = /** @class */ (function () {\n function MonthViewService(intl) {\n this.intl = intl;\n }\n MonthViewService.prototype.addToDate = function (min, skip) {\n return addMonths(min, skip);\n };\n MonthViewService.prototype.datesList = function (start, count) {\n return range(0, count).map(function (i) { return addMonths(start, i); });\n };\n MonthViewService.prototype.data = function (options) {\n var _this = this;\n var cellUID = options.cellUID, focusedDate = options.focusedDate, isActiveView = options.isActiveView, max = options.max, min = options.min, selectedDate = options.selectedDate, _a = options.selectionRange, selectionRange = _a === void 0 ? EMPTY_SELECTIONRANGE : _a, viewDate = options.viewDate;\n if (!viewDate) {\n return EMPTY_DATA;\n }\n var firstMonthDate = firstDayOfMonth(viewDate);\n var lastMonthDate = lastDayOfMonth(viewDate);\n var backward = -1;\n var date = dayOfWeek(firstMonthDate, this.intl.firstDay(), backward);\n var cells = range(0, CELLS_LENGTH);\n var today = getToday();\n return range(0, ROWS_LENGTH).map(function (rowOffset) {\n var baseDate = addDays(date, rowOffset * CELLS_LENGTH);\n return cells.map(function (cellOffset) {\n var cellDate = _this.normalize(addDays(baseDate, cellOffset), min, max);\n var otherMonth = cellDate < firstMonthDate || cellDate > lastMonthDate;\n if (otherMonth) {\n return null;\n }\n var isRangeStart = _this.isEqual(cellDate, selectionRange.start);\n var isRangeEnd = _this.isEqual(cellDate, selectionRange.end);\n var isInMiddle = !isRangeStart && !isRangeEnd;\n var isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);\n var isSelected = isActiveView && (!Array.isArray(selectedDate)\n ? isInRange(selectedDate, min, max) && _this.isEqual(cellDate, selectedDate)\n : _this.isSelectedFromArray(cellDate, selectedDate, min, max));\n var cell = {\n formattedValue: _this.value(cellDate),\n id: \"\" + cellUID + cellDate.getTime(),\n isFocused: _this.isEqual(cellDate, focusedDate),\n isSelected: isSelected,\n isInRange: isInRange(cellDate, min, max),\n isWeekend: _this.isWeekend(cellDate),\n isRangeStart: isRangeStart,\n isRangeMid: isRangeMid,\n isRangeEnd: isRangeEnd,\n isRangeSplitStart: isRangeMid && _this.isEqual(cellDate, firstMonthDate),\n isRangeSplitEnd: isRangeMid && _this.isEqual(cellDate, lastMonthDate),\n isToday: _this.isEqual(cellDate, today),\n title: _this.cellTitle(cellDate),\n value: cellDate\n };\n return cell;\n });\n });\n };\n MonthViewService.prototype.isEqual = function (candidate, expected) {\n if (!candidate || !expected) {\n return false;\n }\n return getDate(candidate).getTime() === getDate(expected).getTime();\n };\n MonthViewService.prototype.isSelectedFromArray = function (candidate, dates, min, max) {\n var _this = this;\n var result = false;\n dates.forEach(function (date) {\n if (isInRange(candidate, min, max) && _this.isEqual(candidate, date)) {\n result = true;\n }\n });\n return result;\n };\n MonthViewService.prototype.isInArray = function (date, dates) {\n return !!dates.length && firstDayOfMonth(dates[0]) <= date && date <= lastDayOfMonth(dates[dates.length - 1]);\n };\n MonthViewService.prototype.isInRange = function (candidate, min, max) {\n var value = getDate(candidate);\n var aboveMin = !min || getDate(min) <= value;\n var belowMax = !max || value <= getDate(max);\n return aboveMin && belowMax;\n };\n MonthViewService.prototype.isInSameView = function (candidate, value) {\n return durationInMonths(candidate, value) === 0;\n };\n MonthViewService.prototype.isRangeStart = function (value) {\n return !value.getMonth();\n };\n MonthViewService.prototype.move = function (value, action) {\n var modifier = ACTIONS[action];\n if (!modifier) {\n return value;\n }\n return modifier(value);\n };\n MonthViewService.prototype.cellTitle = function (value) {\n return this.intl.formatDate(value, 'D');\n };\n MonthViewService.prototype.navigationTitle = function (value) {\n if (!value) {\n return '';\n }\n return this.isRangeStart(value) ? value.getFullYear().toString() : this.abbrMonthNames()[value.getMonth()];\n };\n MonthViewService.prototype.title = function (current) {\n return this.wideMonthNames()[current.getMonth()] + \" \" + current.getFullYear();\n };\n MonthViewService.prototype.rowLength = function (prependCell) {\n return CELLS_LENGTH + (prependCell ? 1 : 0);\n };\n MonthViewService.prototype.skip = function (value, min) {\n return durationInMonths(min, value);\n };\n MonthViewService.prototype.total = function (min, max) {\n return durationInMonths(min, max) + 1;\n };\n MonthViewService.prototype.value = function (current) {\n return current ? current.getDate().toString() : '';\n };\n MonthViewService.prototype.viewDate = function (date, max, border) {\n if (border === void 0) { border = 1; }\n var renderTwoViews = durationInMonths(date, max) < border;\n return renderTwoViews ? addMonths(date, -1) : date;\n };\n MonthViewService.prototype.isWeekend = function (date) {\n var day = date.getDay();\n return day === SATURDAY || day === SUNDAY;\n };\n MonthViewService.prototype.abbrMonthNames = function () {\n return this.intl.dateFormatNames({ nameType: 'abbreviated', type: 'months' });\n };\n MonthViewService.prototype.normalize = function (cellDate, min, max) {\n if (cellDate < min && this.isEqual(cellDate, min)) {\n return getDate(min);\n }\n if (cellDate > max && this.isEqual(cellDate, max)) {\n return getDate(max);\n }\n return cellDate;\n };\n MonthViewService.prototype.wideMonthNames = function () {\n return this.intl.dateFormatNames({ nameType: 'wide', type: 'months' });\n };\n return MonthViewService;\n}());\nexport { MonthViewService };\n","var _a;\nimport { addMonths, addYears, createDate, durationInYears, firstMonthOfYear, lastMonthOfYear } from '@progress/kendo-date-math';\nimport { Action } from '../models/NavigationAction';\nimport { getToday, isInRange, isInSelectionRange, range } from '../../utils';\nimport { EMPTY_SELECTIONRANGE } from '../models/SelectionRange';\nimport { cloneDate } from '@progress/kendo-vue-common';\nvar EMPTY_DATA = [[]];\nvar CELLS_LENGTH = 4;\nvar ROWS_LENGTH = 3;\nvar ACTIONS = (_a = {},\n _a[Action.Left] = function (date) { return addMonths(date, -1); },\n _a[Action.Up] = function (date) { return addMonths(date, -4); },\n _a[Action.Right] = function (date) { return addMonths(date, 1); },\n _a[Action.Down] = function (date) { return addMonths(date, 4); },\n _a[Action.PrevView] = function (date) { return addYears(date, -1); },\n _a[Action.NextView] = function (date) { return addYears(date, 1); },\n _a[Action.FirstInView] = function (date) { return firstMonthOfYear(date); },\n _a[Action.LastInView] = function (date) { return lastMonthOfYear(date); },\n _a);\n/**\n * @hidden\n */\nvar YearViewService = /** @class */ (function () {\n function YearViewService(intl) {\n this._intl = intl;\n }\n YearViewService.prototype.addToDate = function (min, skip) {\n return addYears(min, skip);\n };\n YearViewService.prototype.datesList = function (start, count) {\n return range(0, count).map(function (i) { return addYears(start, i); });\n };\n YearViewService.prototype.data = function (options) {\n var _this = this;\n var cellUID = options.cellUID, focusedDate = options.focusedDate, isActiveView = options.isActiveView, max = options.max, min = options.min, selectedDate = options.selectedDate, _a = options.selectionRange, selectionRange = _a === void 0 ? EMPTY_SELECTIONRANGE : _a, viewDate = options.viewDate;\n if (!viewDate) {\n return EMPTY_DATA;\n }\n var months = this.abbrMonthNames();\n var firstDate = firstMonthOfYear(viewDate);\n var lastDate = lastMonthOfYear(viewDate);\n var currentYear = firstDate.getFullYear();\n var cells = range(0, CELLS_LENGTH);\n var today = getToday();\n return range(0, ROWS_LENGTH).map(function (rowOffset) {\n var baseDate = addMonths(firstDate, rowOffset * CELLS_LENGTH);\n return cells.map(function (cellOffset) {\n var cellDate = _this.normalize(addMonths(baseDate, cellOffset), min, max);\n if (!cellDate) {\n return null;\n }\n var changedYear = currentYear < cellDate.getFullYear();\n if (changedYear) {\n return null;\n }\n var isRangeStart = _this.isEqual(cellDate, selectionRange.start);\n var isRangeEnd = _this.isEqual(cellDate, selectionRange.end);\n var isInMiddle = !isRangeStart && !isRangeEnd;\n var isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);\n var isSelected = isActiveView && (!Array.isArray(selectedDate)\n ? isInRange(selectedDate, min, max) && _this.isEqual(cellDate, selectedDate)\n : _this.isSelectedFromArray(cellDate, selectedDate, min, max));\n return {\n formattedValue: months[cellDate.getMonth()],\n id: \"\" + cellUID + cellDate.getTime(),\n isFocused: _this.isEqual(cellDate, focusedDate),\n isSelected: isSelected,\n isInRange: isInRange(cellDate, min, max),\n isWeekend: false,\n isRangeStart: isRangeStart,\n isRangeMid: isRangeMid,\n isRangeEnd: isRangeEnd,\n isRangeSplitEnd: isRangeMid && _this.isEqual(cellDate, lastDate),\n isRangeSplitStart: isRangeMid && _this.isEqual(cellDate, firstDate),\n isToday: _this.isEqual(cellDate, today),\n title: _this.cellTitle(cellDate),\n value: cellDate\n };\n });\n });\n };\n YearViewService.prototype.isSelectedFromArray = function (candidate, dates, min, max) {\n var _this = this;\n var result = false;\n dates.forEach(function (date) {\n if (isInRange(candidate, min, max) && _this.isEqual(candidate, date)) {\n result = true;\n }\n });\n return result;\n };\n YearViewService.prototype.isEqual = function (candidate, expected) {\n if (!candidate || !expected) {\n return false;\n }\n return candidate.getFullYear() === expected.getFullYear() &&\n candidate.getMonth() === expected.getMonth();\n };\n YearViewService.prototype.isInArray = function (date, dates) {\n if (!dates.length) {\n return false;\n }\n var year = date.getFullYear();\n return dates[0].getFullYear() <= year && year <= dates[dates.length - 1].getFullYear();\n };\n YearViewService.prototype.isInRange = function (candidate, min, max) {\n var candidateValue = createDate(candidate.getFullYear(), candidate.getMonth(), 1);\n var aboveMin = !min || createDate(min.getFullYear(), min.getMonth(), 1) <= candidateValue;\n var belowMax = !max || candidateValue <= createDate(max.getFullYear(), max.getMonth(), 1);\n return aboveMin && belowMax;\n };\n YearViewService.prototype.isInSameView = function (candidate, value) {\n return durationInYears(candidate, value) === 0;\n };\n YearViewService.prototype.isRangeStart = function (value) {\n return value.getFullYear() % 10 === 0;\n };\n YearViewService.prototype.move = function (value, action) {\n var modifier = ACTIONS[action];\n if (!modifier) {\n return value;\n }\n return modifier(value);\n };\n YearViewService.prototype.cellTitle = function (value) {\n return value.getFullYear() + \" \" + this.value(value);\n };\n YearViewService.prototype.navigationTitle = function (value) {\n return this.title(value);\n };\n YearViewService.prototype.title = function (current) {\n return current ? current.getFullYear().toString() : '';\n };\n YearViewService.prototype.rowLength = function (_) {\n return CELLS_LENGTH;\n };\n YearViewService.prototype.skip = function (value, min) {\n return durationInYears(min, value);\n };\n YearViewService.prototype.total = function (min, max) {\n return durationInYears(min, max) + 1;\n };\n YearViewService.prototype.value = function (current) {\n return current ? this.abbrMonthNames()[current.getMonth()] : '';\n };\n YearViewService.prototype.viewDate = function (date, max, border) {\n if (border === void 0) { border = 1; }\n var renderTwoViews = durationInYears(date, max) < border;\n return renderTwoViews ? addYears(date, -1) : date;\n };\n YearViewService.prototype.abbrMonthNames = function () {\n return this._intl.dateFormatNames({ nameType: 'abbreviated', type: 'months' });\n };\n YearViewService.prototype.normalize = function (cellDate, min, max) {\n if (cellDate < min && this.isEqual(cellDate, min)) {\n return cloneDate(min);\n }\n if (cellDate > max && this.isEqual(cellDate, max)) {\n return cloneDate(max);\n }\n return cellDate;\n };\n return YearViewService;\n}());\nexport { YearViewService };\n","var _a;\nimport { CenturyViewService } from './CenturyViewService';\nimport { DecadeViewService } from './DecadeViewService';\nimport { MonthViewService } from './MonthViewService';\nimport { YearViewService } from './YearViewService';\nimport { CalendarViewEnum } from '../models/CalendarViewEnum';\nvar services = (_a = {},\n _a[CalendarViewEnum.month] = MonthViewService,\n _a[CalendarViewEnum.year] = YearViewService,\n _a[CalendarViewEnum.decade] = DecadeViewService,\n _a[CalendarViewEnum.century] = CenturyViewService,\n _a);\nvar viewOffset = function (view, offset) {\n var candidate = CalendarViewEnum[CalendarViewEnum[view + offset]];\n return candidate !== undefined ? candidate : view;\n};\n/**\n * @hidden\n */\nvar BusViewService = /** @class */ (function () {\n function BusViewService(onViewChanged) {\n this.bottom = CalendarViewEnum.month;\n this.top = CalendarViewEnum.century;\n this.onViewChanged = onViewChanged;\n }\n BusViewService.prototype.configure = function (bottom, top) {\n this.bottom = bottom;\n this.top = top;\n };\n BusViewService.prototype.service = function (view, intl) {\n return new services[\"\" + view](intl);\n };\n BusViewService.prototype.moveDown = function (view, event) {\n this.move(view, -1, event);\n };\n BusViewService.prototype.moveUp = function (view, event) {\n this.move(view, 1, event);\n };\n BusViewService.prototype.moveToBottom = function (activeView) {\n if (activeView === this.bottom) {\n return;\n }\n this.onViewChanged({ view: this.bottom });\n };\n BusViewService.prototype.canMoveDown = function (view) {\n return this.bottom < view;\n };\n BusViewService.prototype.canMoveUp = function (view) {\n return view < this.top;\n };\n BusViewService.prototype.clamp = function (view) {\n if (view < this.bottom) {\n return this.bottom;\n }\n if (view > this.top) {\n return this.top;\n }\n return view;\n };\n BusViewService.prototype.move = function (view, offset, event) {\n var candidate = this.clamp(viewOffset(view, offset));\n if (candidate === view) {\n return;\n }\n this.onViewChanged({ view: candidate }, event);\n };\n return BusViewService;\n}());\nexport { BusViewService };\n","var _a;\n/**\n * @hidden\n */\nexport var prevView = 'calendar.prevView';\n/**\n * @hidden\n */\nexport var nextView = 'calendar.nextView';\n/**\n * @hidden\n */\nexport var increaseValue = 'dateinput.increment';\n/**\n * @hidden\n */\nexport var decreaseValue = 'dateinput.decrement';\n/**\n * @hidden\n */\nexport var today = 'calendar.today';\n/**\n * @hidden\n */\nexport var toggleCalendar = 'datepicker.toggleCalendar';\n/**\n * @hidden\n */\nexport var swapStartEnd = 'daterangepicker.swapStartEnd';\n/**\n * @hidden\n */\nexport var start = 'daterangepicker.start';\n/**\n * @hidden\n */\nexport var end = 'daterangepicker.end';\n/**\n * @hidden\n */\nexport var separator = 'daterangepicker.separator';\n/**\n * @hidden\n */\nexport var toggleDateTimeSelector = 'datetimepicker.toggleDateTimeSelector';\n/**\n * @hidden\n */\nexport var now = 'timepicker.now';\n/**\n * @hidden\n */\nexport var selectNow = 'timepicker.selectNow';\n/**\n * @hidden\n */\nexport var timePickerCancel = 'timepicker.cancel';\n/**\n * @hidden\n */\nexport var timePickerSet = 'timepicker.set';\n/**\n * @hidden\n */\nexport var toggleTimeSelector = 'timepicker.toggleTimeSelector';\n/**\n * @hidden\n */\nexport var toggleClock = 'timepicker.toggleClock';\n/**\n * @hidden\n */\nexport var date = 'datetimepicker.date';\n/**\n * @hidden\n */\nexport var time = 'datetimepicker.time';\n/**\n * @hidden\n */\nexport var dateTimePickerCancel = 'datetimepicker.cancel';\n/**\n * @hidden\n */\nexport var dateTimePickerSet = 'datetimepicker.set';\n/**\n * @hidden\n */\nexport var messages = (_a = {},\n _a[today] = 'Today',\n _a[now] = 'NOW',\n _a[timePickerSet] = 'Set',\n _a[timePickerCancel] = 'Cancel',\n _a[date] = 'Date',\n _a[time] = 'Time',\n _a[dateTimePickerCancel] = 'Cancel',\n _a[dateTimePickerSet] = 'Set',\n _a[start] = 'Start',\n _a[end] = 'End',\n _a[separator] = ' ',\n _a[selectNow] = 'Select Now',\n _a[toggleTimeSelector] = 'Toggle TimeSelector',\n _a[toggleClock] = 'Toggle Clock',\n _a[increaseValue] = 'Increase value',\n _a[decreaseValue] = 'Decrease value',\n _a[toggleCalendar] = 'Toggle calendar',\n _a[prevView] = 'Navigate to previous view',\n _a[nextView] = 'Navigate to next view',\n _a[swapStartEnd] = 'Swap start and end values',\n _a[toggleDateTimeSelector] = 'Toggle date-time selector',\n _a);\n","var _a, _b, _c; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { classNames, getDefaultSlots } from '@progress/kendo-vue-common';\nimport { RowHeightService, ScrollerService } from './services';\n/**\n * @hidden\n */\n\nexport var ScrollDirection;\n\n(function (ScrollDirection) {\n ScrollDirection[ScrollDirection[\"Backward\"] = 0] = \"Backward\";\n ScrollDirection[ScrollDirection[\"Forward\"] = 1] = \"Forward\";\n})(ScrollDirection || (ScrollDirection = {}));\n\nvar differenceToScroll = function differenceToScroll(scrollTop, staticOffset, maxScrollDifference) {\n return Math.min(Math.abs(staticOffset - scrollTop), maxScrollDifference);\n};\n\nvar FRAME_DURATION = 17;\nvar scrollModifiers = (_a = {}, _a[ScrollDirection.Forward] = function (step) {\n return function (value) {\n return value + step;\n };\n}, _a[ScrollDirection.Backward] = function (step) {\n return function (value) {\n return value - step;\n };\n}, _a);\nvar scrollNormalizers = (_b = {}, _b[ScrollDirection.Forward] = function (end) {\n return function (value) {\n return Math.min(value, end);\n };\n}, _b[ScrollDirection.Backward] = function (end) {\n return function (value) {\n return Math.max(value, end);\n };\n}, _b);\nvar scrollValidators = (_c = {}, _c[ScrollDirection.Forward] = function (end) {\n return function (start) {\n return start < end;\n };\n}, _c[ScrollDirection.Backward] = function (end) {\n return function (start) {\n return start > end;\n };\n}, _c);\nvar Virtualization = {\n name: 'Virtualization',\n // @ts-ignore\n emits: {\n scroll: null,\n scrollaction: null\n },\n props: {\n bottomOffset: {\n type: Number,\n required: true\n },\n direction: {\n type: String,\n default: function _default() {\n return 'vertical';\n }\n },\n forceScroll: {\n type: Boolean,\n default: false\n },\n itemHeight: Number,\n itemWidth: Number,\n maxScrollDifference: {\n type: Number,\n default: 100\n },\n scrollDuration: {\n type: Number,\n default: 100\n },\n scrollOffsetSize: {\n type: Number,\n default: 0\n },\n skip: {\n type: Number,\n required: true\n },\n tabIndex: Number,\n take: {\n type: Number,\n required: true\n },\n topOffset: {\n type: Number,\n required: true\n },\n total: {\n type: Number,\n required: true\n },\n role: String\n },\n created: function created() {\n this.animationInProgress = false;\n this.lastTotal = undefined;\n this.scrollerService = new ScrollerService(this.handleScrollAction, this.handlePageAction);\n },\n mounted: function mounted() {\n this.scrollContainer = this.$refs.scrollContainer;\n },\n computed: {\n element: function element() {\n return this.scrollContainer;\n }\n },\n methods: {\n containerOffsetSize: function containerOffsetSize() {\n return this.getContainerProperty(this.$props.direction === 'vertical' ? 'offsetHeight' : 'offsetWidth');\n },\n containerScrollSize: function containerScrollSize() {\n return this.getContainerProperty(this.$props.direction === 'vertical' ? 'scrollHeight' : 'scrollWidth');\n },\n containerScrollPosition: function containerScrollPosition() {\n return this.getContainerProperty(this.$props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft');\n },\n activeIndex: function activeIndex() {\n return this.itemIndex(Math.ceil(this.containerScrollPosition()));\n },\n itemIndex: function itemIndex(offset) {\n if (!this.rowHeightService) {\n return 0;\n }\n\n return this.rowHeightService.index(offset);\n },\n itemOffset: function itemOffset(index) {\n if (!this.rowHeightService) {\n return 0;\n }\n\n return this.rowHeightService.offset(index);\n },\n isIndexVisible: function isIndexVisible(index) {\n if (!this.rowHeightService) {\n return false;\n }\n\n var containerTop = this.containerScrollPosition();\n var containerBottom = containerTop + this.containerOffsetSize();\n var top = this.rowHeightService.offset(index);\n var bottom = top + this.rowHeightService.height(index);\n return top >= containerTop && bottom <= containerBottom;\n },\n isListScrolled: function isListScrolled(index) {\n if (!this.rowHeightService) {\n return false;\n }\n\n return this.containerScrollPosition() !== this.rowHeightService.offset(index);\n },\n scrollTo: function scrollTo(value) {\n var scrollProperty = this.$props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft';\n\n if (!this.scrollContainer) {\n return;\n }\n\n this.scrollContainer[scrollProperty] = value;\n },\n scrollToIndex: function scrollToIndex(index) {\n if (!this.rowHeightService) {\n return;\n }\n\n this.animationInProgress = false;\n this.scrollTo(this.rowHeightService.offset(index));\n },\n animateToIndex: function animateToIndex(index) {\n var _this = this;\n\n if (!this.rowHeightService || !window) {\n return;\n }\n\n window.cancelAnimationFrame(this.cancelAnimation);\n var indexOffset = this.rowHeightService.offset(index);\n var direction = this.getContainerScrollDirection(indexOffset);\n\n var _a = this.scrollRange(indexOffset, direction),\n start = _a.start,\n end = _a.end;\n\n if (start === end) {\n return;\n }\n\n var step = this.scrollStep(start, end);\n var modifyScroll = scrollModifiers[direction](step);\n var normalizeScroll = scrollNormalizers[direction](end);\n var isScrollValid = scrollValidators[direction](modifyScroll(end));\n\n var animate = function animate(progress) {\n _this.animationInProgress = true;\n var next = modifyScroll(progress);\n\n _this.scrollTo(normalizeScroll(next));\n\n isScrollValid(next) ? _this.cancelAnimation = window.requestAnimationFrame(function () {\n animate(next);\n }) : _this.animationInProgress = false;\n };\n\n this.cancelAnimation = window.requestAnimationFrame(function () {\n animate(start);\n });\n },\n scrollToBottom: function scrollToBottom() {\n if (!this.rowHeightService) {\n return;\n }\n\n this.scrollTo(this.rowHeightService.totalHeight() + this.$props.bottomOffset);\n },\n scrollStep: function scrollStep(start, end) {\n var duration = this.$props.scrollDuration;\n return Math.abs(end - start) / (duration / FRAME_DURATION);\n },\n scrollRange: function scrollRange(indexOffset, direction) {\n var containerScroll = this.containerScrollPosition();\n\n if (parseInt(\"\" + indexOffset, 10) === parseInt(\"\" + containerScroll, 10)) {\n return {\n start: indexOffset,\n end: indexOffset\n };\n }\n\n var maxScroll = this.containerMaxScroll();\n var sign = direction === ScrollDirection.Backward ? 1 : -1;\n var difference = differenceToScroll(containerScroll, indexOffset, this.$props.maxScrollDifference);\n var end = Math.min(indexOffset, maxScroll);\n var start = Math.min(Math.max(end + sign * difference, 0), maxScroll);\n return {\n start: start,\n end: end\n };\n },\n containerMaxScroll: function containerMaxScroll() {\n return this.containerScrollSize() - this.containerOffsetSize();\n },\n getContainerScrollDirection: function getContainerScrollDirection(indexOffset) {\n return indexOffset < this.containerScrollPosition() ? ScrollDirection.Backward : ScrollDirection.Forward;\n },\n initServices: function initServices(newProps) {\n var props = newProps || this.$props;\n var dimension = props.direction === 'vertical' ? props.itemHeight : props.itemWidth;\n\n if (dimension === undefined) {\n return;\n }\n\n this.rowHeightService = new RowHeightService(props.total, dimension, 0);\n this.scrollerService.create(this.rowHeightService, props.skip, props.take, props.total, props.topOffset, this.$props.scrollOffsetSize, this.$props.direction);\n },\n getContainerProperty: function getContainerProperty(propertyName) {\n if (!this.scrollContainer) {\n return 0;\n }\n\n return this.scrollContainer[propertyName];\n },\n handleScroll: function handleScroll(event) {\n if (!this.scrollContainer || !this.rowHeightService) {\n return;\n }\n\n var target = event.target;\n this.scrollerService.onScroll({\n scrollLeft: target.scrollLeft,\n scrollTop: target.scrollTop,\n offsetHeight: target.offsetHeight,\n offsetWidth: target.offsetWidth\n });\n var index = this.rowHeightService.index(this.containerScrollPosition() - this.$props.topOffset);\n var args = {\n index: index,\n target: target,\n scrollAction: this.scrollAction,\n pageAction: this.pageAction,\n animationInProgress: this.animationInProgress\n };\n this.$emit('scrollaction', args);\n this.scrollAction = undefined;\n this.pageAction = undefined;\n },\n handleScrollAction: function handleScrollAction(action) {\n this.scrollAction = action;\n },\n handlePageAction: function handlePageAction(action) {\n this.pageAction = action;\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n\n if (this.lastTotal !== this.$props.total || this.lastDirection !== this.$props.direction || this.lastTake !== this.$props.take) {\n this.initServices();\n this.lastTotal = this.$props.total;\n this.lastDirection = this.$props.direction;\n this.lastTake = this.$props.take;\n }\n\n var vertexLength = \"\" + ((this.rowHeightService ? this.rowHeightService.totalHeight() : 0) + this.$props.bottomOffset);\n var placeholderStyle = this.$props.direction === 'vertical' ? {\n height: vertexLength + \"px\"\n } : {\n width: vertexLength + \"px\"\n };\n var rootClassNames = classNames('k-content k-scrollable', {\n 'k-scrollable-horizontal': this.$props.direction === 'horizontal'\n });\n var scrollableClassNames = classNames('k-scrollable-placeholder', {\n 'k-scrollable-horizontal-placeholder': this.$props.direction === 'horizontal'\n });\n return h(\"div\", {\n ref: 'scrollContainer',\n onScroll: this.handleScroll,\n on: this.v3 ? undefined : {\n \"scroll\": this.handleScroll\n },\n \"class\": rootClassNames,\n tabIndex: this.$props.tabIndex,\n attrs: this.v3 ? undefined : {\n tabIndex: this.$props.tabIndex,\n role: this.$props.role\n },\n role: this.$props.role\n }, [defaultSlot, h(\"div\", {\n style: placeholderStyle,\n \"class\": scrollableClassNames\n })]);\n }\n};\nvar VirtualizationVue3 = Virtualization;\nexport { Virtualization, VirtualizationVue3 };","import { cloneDate, isEqual } from '@progress/kendo-date-math';\nimport { getDate } from '@progress/kendo-date-math';\nimport { EMPTY_SELECTIONRANGE } from './calendar/models/SelectionRange';\n/**\n * @hidden\n */\nexport var isEqualRange = function (initial, updated) {\n var _a = initial || EMPTY_SELECTIONRANGE, initialStart = _a.start, initialEnd = _a.end;\n var _b = updated || EMPTY_SELECTIONRANGE, updatedStart = _b.start, updatedEnd = _b.end;\n if (initialStart === null || initialEnd === null || updatedStart === null || updatedEnd === null) {\n return false;\n }\n return isEqual(initialStart, updatedStart) && isEqual(initialEnd, updatedEnd);\n};\n/**\n * @hidden\n */\nexport var viewInRange = function (candidate, min, max) {\n if (min === undefined || max === undefined) {\n return candidate;\n }\n return min <= candidate && candidate <= max\n ? candidate\n : candidate < min\n ? min\n : max;\n};\n/**\n * @hidden\n */\nexport var MIDNIGHT_DATE = new Date(1980, 0, 1);\n/**\n * @hidden\n */\nexport var MIN_DATE = new Date(1900, 0, 1);\n/**\n * @hidden\n */\nexport var MAX_DATE = new Date(2099, 11, 31);\n/**\n * @hidden\n */\nexport var MIN_TIME = new Date(1980, 0, 1);\n/**\n * @hidden\n */\nexport var MAX_TIME = new Date(1980, 0, 1, 23, 59, 59);\nvar isSet = function (value) { return value !== null && value !== undefined; };\n/**\n * @hidden\n */\nexport var isValidRange = function (min, max) { return (!isSet(min) || !isSet(max) || min <= max); };\n/**\n * @hidden\n */\nexport var setTime = function (origin, candidate) {\n var date = cloneDate(origin);\n date.setHours(candidate.getHours(), candidate.getMinutes(), candidate.getSeconds(), candidate.getMilliseconds());\n return date;\n};\n/**\n * @hidden\n */\nexport var getToday = function () { return getDate(new Date()); };\n/**\n * @hidden\n */\nexport var isInRange = function (candidate, min, max) { return (!candidate || !((min && min > candidate) || (max && max < candidate))); };\n/**\n * @hidden\n */\nexport var isInDateRange = function (candidate, min, max) { return (candidate === null\n || !((min && getDate(min) > getDate(candidate))\n || (max && getDate(max) < getDate(candidate)))); };\n/**\n * @hidden\n */\nexport var isInSelectionRange = function (value, selectionRange) {\n var _a = selectionRange || EMPTY_SELECTIONRANGE, start = _a.start, end = _a.end;\n if (!start || !end) {\n return false;\n }\n return start < value && value < end;\n};\n/**\n * @hidden\n */\nexport var range = function (start, end, step) {\n if (step === void 0) { step = 1; }\n var result = [];\n for (var i = start; i < end; i = i + step) {\n result.push(i);\n }\n return result;\n};\n/**\n * @hidden\n */\nexport var shiftWeekNames = function (names, offset) { return (names.slice(offset).concat(names.slice(0, offset))); };\n/**\n * @hidden\n */\nexport var dateInRange = function (candidate, min, max) {\n if (!candidate) {\n return candidate;\n }\n if (min && candidate < min) {\n return cloneDate(min);\n }\n if (max && candidate > max) {\n return cloneDate(max);\n }\n return candidate;\n};\n/**\n * @hidden\n */\nexport var domContainerFactory = function (type) { return function (children, classes, styles) {\n if (classes === void 0) { classes = ''; }\n if (styles === void 0) { styles = {}; }\n var container = document.createElement(type);\n container.className = classes;\n Object.keys(styles).map(function (key) { return container.style[key] = styles[key]; });\n if (typeof children === 'string') {\n container.innerHTML = children || '';\n }\n else {\n (children || []).forEach(function (child) { return child && container.appendChild(child); });\n }\n return container;\n}; };\n","import { addDays } from './add-days';\nimport { createDate } from './create-date';\n/**\n * A function which returns the last date of the month.\n *\n * @param date - The initial date.\n * @returns - The last date of the initial date month.\n *\n * @example\n * ```ts-no-run\n * lastDayOfMonth(new Date(2016, 0, 15)); // 2016-01-31\n * ```\n */\nexport var lastDayOfMonth = function (date) {\n var newDate = createDate(date.getFullYear(), date.getMonth() + 1, 1, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n return addDays(newDate, -1);\n};\n","import { adjustDST } from './adjust-dst';\nimport { cloneDate } from './clone-date';\nimport { lastDayOfMonth } from './last-day-of-month';\nvar MONTHS_LENGTH = 12;\nvar normalize = function (date, expectedMonth) { return (date.getMonth() !== expectedMonth ? lastDayOfMonth(addMonths(date, -1)) : date //tslint:disable-line:no-use-before-declare\n); };\n/**\n * A function that adds and subtracts months from a `Date` object.\n *\n * @param date - The initial date value.\n * @param offset - The number of months to add or subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addMonths(new Date(2016, 5, 1), 5); // 2016-11-1\n * addMonths(new Date(2016, 5, 1), -5); // 2015-1-1\n * ```\n */\nexport var addMonths = function (date, offset) {\n var newDate = cloneDate(date);\n var diff = (newDate.getMonth() + offset) % MONTHS_LENGTH;\n var expectedMonth = (MONTHS_LENGTH + diff) % MONTHS_LENGTH;\n newDate.setMonth(newDate.getMonth() + offset);\n return normalize(adjustDST(newDate, date.getHours()), expectedMonth);\n};\n","import { addMonths } from './add-months';\nimport { createDate } from './create-date';\nimport { lastDayOfMonth } from './last-day-of-month';\n/**\n * @hidden\n */\nexport var setYear = function (value, year) {\n var month = value.getMonth();\n var candidate = createDate(year, month, value.getDate(), value.getHours(), value.getMinutes(), value.getSeconds(), value.getMilliseconds());\n return candidate.getMonth() === month ? candidate : lastDayOfMonth(addMonths(candidate, -1));\n};\n","import { adjustDST } from './adjust-dst';\nimport { setYear } from './set-year';\n/**\n * A function that adds and subtracts years from a `Date` object.\n *\n * @param date - The initial date value.\n * @param offset - The number of years to add or subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addYears(new Date(2016, 5, 1), 5); // 2011-6-1\n * addYears(new Date(2016, 5, 1), -5); // 2021-6-1\n * ```\n */\nexport var addYears = function (value, offset) {\n return adjustDST(setYear(value, value.getFullYear() + offset), value.getHours());\n};\n","import { addYears } from './add-years';\n/**\n * A function that adds and subtracts decades from a `Date` object.\n *\n * @param date - The initial date value.\n * @param offset - The number of decades to add or subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addDecades(new Date(2016, 5, 1), 5); // 2066-6-1\n * addDecades(new Date(2016, 5, 1), -5); // 1966-6-1\n * ```\n */\nexport var addDecades = function (value, offset) {\n return addYears(value, 10 * offset);\n};\n","import { addYears } from './add-years';\n/**\n * A function that adds and subtracts centuries from a `Date` object.\n *\n * @param date - The initial date value.\n * @param offset - The number of centuries to add or subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addCenturies(new Date(2016, 5, 1), 5); // 2516-6-1\n * addCenturies(new Date(2016, 5, 1), -5); // 1516-6-1\n * ```\n */\nexport var addCenturies = function (value, offset) {\n return addYears(value, 100 * offset);\n};\n","import { setYear } from './set-year';\n/**\n * @hidden\n */\nexport var normalizeYear = function (value, year) { return (setYear(value, year(value.getFullYear()))); };\n","import { normalizeYear } from './normalize-year';\n/**\n * A function that returns a `Date` object of the first decade in a century.\n *\n * @param date - The start date value.\n * @returns - The first year in a century.\n *\n * @example\n * ```ts-no-run\n * firstDecadeOfCentury(new Date(2017, 0, 1)); // 2000-1-1\n * firstDecadeOfCentury(new Date(2007, 10, 22)); // 2000-11-22\n * firstDecadeOfCentury(new Date(2126, 0, 1)); // 2100-1-1\n * ```\n */\nexport var firstDecadeOfCentury = function (value) { return (normalizeYear(value, function (y) { return y - (y % 100); })); };\n","import { normalizeYear } from './normalize-year';\n/**\n * A function that returns a `Date` object of the last decade in a century.\n *\n * @param date - The start date value.\n * @returns - The last year in a decade.\n *\n * @example\n * ```ts-no-run\n * lastDecadeOfCentury(new Date(2017, 0, 1)); // 2090-1-1\n * lastDecadeOfCentury(new Date(2007, 10, 22)); // 2090-11-22\n * lastDecadeOfCentury(new Date(2126, 0, 1)); // 2190-1-1\n * ```\n */\nexport var lastDecadeOfCentury = function (value) { return (normalizeYear(value, function (y) { return y - (y % 100) + 90; })); };\n","import { normalizeYear } from './normalize-year';\n/**\n * A function that returns a `Date` object of the first year in a decade.\n *\n * @param date - The start date value.\n * @returns - The first year in a decade.\n *\n * @example\n * ```ts-no-run\n * firstYearOfDecade(new Date(2017, 0, 1)); // 2010-1-1\n * firstYearOfDecade(new Date(2007, 10, 22)); // 2000-11-22\n * firstYearOfDecade(new Date(2026, 0, 1)); // 2020-1-1\n * ```\n */\nexport var firstYearOfDecade = function (value) { return (normalizeYear(value, function (y) { return y - (y % 10); })); };\n","import { firstDecadeOfCentury } from './first-decade-of-century';\n/**\n * A function that calculates duration in centuries between two `Date` objects.\n *\n * @param start - The start date value.\n * @param end - The end date value.\n * @returns - The duration in months.\n *\n * @example\n * ```ts-no-run\n * durationInCenturies(new Date(2016, 0, 1), new Date(3216, 0, 1)); // 12\n * durationInCenturies(new Date(2016, 6, 1), new Date(2617, 0, 1)); // 6\n * durationInCenturies(new Date(2016, 0, 1), new Date(2016, 0, 1)); // 0\n * ```\n */\nexport var durationInCenturies = function (start, end) { return ((firstDecadeOfCentury(end).getFullYear() - firstDecadeOfCentury(start).getFullYear()) / 100); };\n","import { normalizeYear } from './normalize-year';\n/**\n * A function that returns a `Date` object of the last year in a decade.\n *\n * @param date - The start date value.\n * @returns - The last year in a decade.\n *\n * @example\n * ```ts-no-run\n * lastYearOfDecade(new Date(2017, 0, 1)); // 2019-1-1\n * lastYearOfDecade(new Date(2007, 10, 22)); // 2009-11-22\n * lastYearOfDecade(new Date(2026, 0, 1)); // 2029-1-1\n * ```\n */\nexport var lastYearOfDecade = function (value) { return (normalizeYear(value, function (y) { return y - (y % 10) + 9; })); };\n","import { firstYearOfDecade } from './first-year-of-decade';\n/**\n * A function that calculates duration in decades between two `Date` objects.\n *\n * @param start - The start date value.\n * @param end - The end date value.\n * @returns - The duration in months.\n *\n * @example\n * ```ts-no-run\n * durationInDecades(new Date(2016, 0, 1), new Date(2136, 0, 1)); // 12\n * durationInDecades(new Date(2016, 0, 1), new Date(2016, 0, 1)); // 0\n * ```\n */\nexport var durationInDecades = function (start, end) { return ((firstYearOfDecade(end).getFullYear() - firstYearOfDecade(start).getFullYear()) / 10); };\n","import { addDays } from './add-days';\n/**\n * A function that adds and subtracts weeks from a Date object.\n *\n * @param date - The initial date value.\n * @param offset - The number of weeks to add/subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addWeeks(new Date(2016, 5, 1), 3); // 2016-6-22\n * addWeeks(new Date(2016, 5, 1), -3); // 2015-5-11\n * ```\n */\nexport var addWeeks = function (date, offset) {\n return addDays(date, offset * 7);\n};\n","import { createDate } from './create-date';\n/**\n * A function which returns the first date of the month.\n *\n * @param date - The initial date.\n * @returns - The first date of the initial date month.\n *\n * @example\n * ```ts-no-run\n * firstDayOfMonth(new Date(2016, 0, 15)); // 2016-01-01\n * ```\n */\nexport var firstDayOfMonth = function (date) {\n return createDate(date.getFullYear(), date.getMonth(), 1, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n};\n","/**\n * A function that calculates duration in months between two `Date` objects.\n *\n * @param start - The start date value.\n * @param end - The end date value.\n * @returns - The duration in months.\n *\n * @example\n * ```ts-no-run\n * durationInMonths(new Date(2016, 0, 1), new Date(2017, 0, 1)); // 12\n * durationInMonths(new Date(2016, 6, 1), new Date(2017, 0, 1)); // 6\n * durationInMonths(new Date(2016, 0, 1), new Date(2016, 0, 1)); // 0\n * ```\n */\nexport var durationInMonths = function (start, end) { return (((end.getFullYear() - start.getFullYear())) * 12 + (end.getMonth() - start.getMonth())); };\n","import { addMonths } from './add-months';\nimport { createDate } from './create-date';\nimport { lastDayOfMonth } from './last-day-of-month';\n/**\n * @hidden\n */\nexport var setMonth = function (value, month) {\n var day = value.getDate();\n var candidate = createDate(value.getFullYear(), month, day, value.getHours(), value.getMinutes(), value.getSeconds(), value.getMilliseconds());\n return candidate.getDate() === day ? candidate : lastDayOfMonth(addMonths(candidate, -1));\n};\n","import { setMonth } from './set-month';\n/**\n * A function that returns a `Date` object of the first month in a year.\n *\n * @param date - The start date value.\n * @returns - The first month in a year.\n *\n * @example\n * ```ts-no-run\n * firstMonthOfYear(new Date(2017, 11, 1)); // 2017-1-1\n * firstMonthOfYear(new Date(2017, 0, 1)); // 2017-1-1\n * ```\n */\nexport var firstMonthOfYear = function (value) { return setMonth(value, 0); };\n","import { setMonth } from './set-month';\n/**\n * A function that returns a `Date` object of the last month in a year.\n *\n * @param date - The start date value.\n * @returns - The last month in a year.\n *\n * @example\n * ```ts-no-run\n * lastMonthOfYear(new Date(2017, 5, 3)); // 2017-12-3\n * lastMonthOfYear(new Date(2017, 11, 3)); // 2017-12-3\n * ```\n */\nexport var lastMonthOfYear = function (value) { return setMonth(value, 11); };\n","/**\n * A function that calculates duration in years between two `Date` objects.\n *\n * @param start - The start date value.\n * @param end - The end date value.\n * @returns - The duration in years.\n *\n * @example\n * ```ts-no-run\n * durationInYears(new Date(2016, 0, 1), new Date(2028, 0, 1)); // 12\n * durationInYears(new Date(2016, 0, 1), new Date(2022, 0, 1)); // 6\n * durationInYears(new Date(2016, 0, 1), new Date(2016, 0, 1)); // 0\n * ```\n */\nexport var durationInYears = function (start, end) { return (end.getFullYear() - start.getFullYear()); };\n","import { CalendarViewEnum } from '../models/CalendarViewEnum';\nimport { domContainerFactory as containerFactory } from '../../utils';\nimport { canUseDOM } from '@progress/kendo-vue-common';\n/**\n * @hidden\n */\nvar DOMService = /** @class */ (function () {\n function DOMService() {\n this.didCalculate = false;\n }\n DOMService.prototype.ensureHeights = function () {\n if (this.calendarHeight !== undefined) {\n return;\n }\n this.calculateHeights();\n };\n DOMService.prototype.calculateHeights = function (container) {\n var _this = this;\n if (!canUseDOM) {\n return;\n }\n var div = containerFactory('div');\n var ul = containerFactory('ul');\n var li = containerFactory('li');\n var td = containerFactory('td');\n var th = containerFactory('th');\n var tr = containerFactory('tr');\n var tbody = containerFactory('tbody');\n var thead = containerFactory('thead');\n var table = containerFactory('table');\n var monthHeader = function () { return (div(\"\\n March 2017\\n TODAY\\n \", 'k-calendar-header')); };\n var monthWeekHeader = function () { return (table([\n thead([\n tr([th('MO')])\n ])\n ], 'k-calendar-weekdays')); };\n var repeat = function (count, mapper) { return new Array(count).fill('1').map(mapper); };\n var content = function (rows, cells) {\n if (cells === void 0) { cells = 1; }\n return (table([\n tbody([tr([th('1')])].concat(repeat(rows, function () { return tr(repeat(cells, function (c) { return td(\"\" + c + \"\"); })); })))\n ]));\n };\n var scrollable = function (children) { return div(children, 'k-content k-scrollable'); };\n var view = function (contentElement, className, renderWeekHeader) { return (div(renderWeekHeader\n ? [\n monthHeader(),\n monthWeekHeader(),\n scrollable([contentElement, contentElement])\n ]\n : [\n monthHeader(),\n scrollable([contentElement, contentElement])\n ], className, { left: '-10000px', position: 'absolute' })); };\n var navigationList = (function () {\n var navElement;\n return function () {\n if (!canUseDOM) {\n return null;\n }\n if (!navElement) {\n navElement = div([scrollable([ul([li('FEB')])])], 'k-calendar-navigation', { left: '0px', position: 'absolute' });\n }\n return navElement;\n };\n })();\n var viewFactory = function (_a, className, renderWeekHeader) {\n var cells = _a.cells, rows = _a.rows;\n var viewElement;\n return function () {\n if (!canUseDOM) {\n return null;\n }\n if (!viewElement) {\n viewElement = view(content(rows, cells), className, renderWeekHeader);\n }\n return viewElement;\n };\n };\n var getScrollable = function (element) { return element.querySelector('.k-scrollable'); };\n var horizontal = function (element) {\n var scrollableElement = getScrollable(element);\n scrollableElement.className = scrollableElement.className + \" k-scrollable-horizontal\";\n return element;\n };\n var monthView = viewFactory({ cells: 7, rows: 6 }, 'k-calendar-view k-calendar-monthview', true);\n var yearView = viewFactory({ cells: 5, rows: 3 }, 'k-calendar-view k-calendar-yearview', false);\n var decadeView = viewFactory({ cells: 5, rows: 2 }, 'k-calendar-view k-calendar-decadeview', false);\n var horzMonthView = function () { return horizontal(monthView()); };\n var horzYearView = function () { return horizontal(yearView()); };\n var horzDecadeView = function () { return horizontal(decadeView()); };\n var height = function (element) { return (parseFloat(window.getComputedStyle(element).height) || element.offsetHeight); };\n var width = function (element) {\n var styles = window.getComputedStyle(element);\n var computed = parseFloat(styles.width)\n + parseFloat(styles.paddingLeft)\n + parseFloat(styles.paddingRight);\n return computed || element.offsetWidth;\n };\n var getBody = function (element) { return element.querySelector('tbody'); };\n this.didCalculate = true;\n if (container) {\n this.hostContainer = container;\n }\n this.batch(monthView(), function (contentElement) {\n var viewElement = getBody(contentElement);\n _this.calendarHeight = height(contentElement);\n _this.monthViewHeight = height(viewElement);\n _this.headerHeight = height(viewElement.children[0]);\n _this.scrollableContentHeight = height(getScrollable(contentElement));\n });\n this.batch(horzMonthView(), function (contentElement) {\n var viewElement = getBody(contentElement);\n _this.calendarWidth = width(contentElement);\n _this.monthViewWidth = width(viewElement);\n _this.scrollableContentWidth = width(getScrollable(contentElement));\n });\n this.batch(yearView(), function (contentElement) {\n _this.yearViewHeight = height(getBody(contentElement));\n _this.scrollableYearContentHeight = height(getScrollable(contentElement));\n });\n this.batch(horzYearView(), function (contentElement) {\n _this.yearViewWidth = width(getBody(contentElement));\n });\n this.batch(decadeView(), function (contentElement) {\n _this.decadeViewHeight = height(getBody(contentElement));\n _this.centuryViewHeight = _this.decadeViewHeight;\n });\n this.batch(horzDecadeView(), function (contentElement) {\n _this.decadeViewWidth = width(getBody(contentElement));\n _this.centuryViewWidth = _this.decadeViewWidth;\n });\n this.batch(navigationList(), function (contentElement) {\n _this.navigationItemHeight = height(contentElement.querySelector('li'));\n });\n };\n DOMService.prototype.viewHeight = function (viewType) {\n return this.viewDimension(viewType, 'height');\n };\n DOMService.prototype.viewWidth = function (viewType) {\n return this.viewDimension(viewType, 'width');\n };\n DOMService.prototype.viewDimension = function (viewType, dimension) {\n var viewProp = dimension === 'height' ? 'ViewHeight' : 'ViewWidth';\n switch (viewType) {\n case CalendarViewEnum.month:\n return this[\"month\" + viewProp];\n case CalendarViewEnum.year:\n return this[\"year\" + viewProp];\n case CalendarViewEnum.decade:\n return this[\"decade\" + viewProp];\n case CalendarViewEnum.century:\n return this[\"century\" + viewProp];\n default:\n return 1;\n }\n };\n DOMService.prototype.batch = function (contentElement, action) {\n var hostContainer = this.hostContainer || document.body;\n var appendedContent = hostContainer.appendChild(contentElement);\n action(appendedContent);\n hostContainer.removeChild(appendedContent);\n };\n return DOMService;\n}());\nexport { DOMService };\n","import { Action } from '../models/NavigationAction';\nvar KEY_TO_ACTION = {\n '33': Action.PrevView,\n '34': Action.NextView,\n '35': Action.LastInView,\n '36': Action.FirstInView,\n '37': Action.Left,\n '38': Action.Up,\n '39': Action.Right,\n '40': Action.Down,\n 'meta+38': Action.UpperView,\n 'meta+40': Action.LowerView,\n 'meta+37': Action.PrevView,\n 'meta+39': Action.NextView\n};\n/**\n * @hidden\n */\nvar NavigationService = /** @class */ (function () {\n function NavigationService(bus) {\n this.bus = bus;\n }\n NavigationService.prototype.action = function (event) {\n var action = \"\" + (event.ctrlKey || event.metaKey ? 'meta+' : '') + event.keyCode;\n return KEY_TO_ACTION[action];\n };\n NavigationService.prototype.move = function (value, action, activeView, service, event) {\n if (!service) {\n return value;\n }\n if (action === Action.UpperView && this.bus.canMoveUp(activeView)) {\n this.bus.moveUp(activeView, event);\n return value;\n }\n if (action === Action.LowerView && this.bus.canMoveDown(activeView)) {\n this.bus.moveDown(activeView, event);\n return value;\n }\n return service.move(value, action);\n };\n return NavigationService;\n}());\nexport { NavigationService };\n","import { shiftWeekNames } from '../../utils';\n/**\n * @hidden\n */\nvar WeekNamesService = /** @class */ (function () {\n function WeekNamesService(intl) {\n this.intl = intl;\n }\n WeekNamesService.prototype.getWeekNames = function (includeWeekNumber) {\n if (includeWeekNumber === void 0) { includeWeekNumber = false; }\n var weekNames = shiftWeekNames(this.intl.dateFormatNames({ nameType: 'short', type: 'days' }), this.intl.firstDay());\n return includeWeekNumber ? [''].concat(weekNames) : weekNames;\n };\n return WeekNamesService;\n}());\nexport { WeekNamesService };\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar inject = allVue.inject;\nimport { weekInYear, cloneDate } from '@progress/kendo-date-math';\nimport { provideIntlService } from '@progress/kendo-vue-intl';\nimport { getTemplate } from '@progress/kendo-vue-common';\nimport { CalendarCell } from './CalendarCell';\nimport { CalendarWeekCell } from './CalendarWeekCell';\nimport { CalendarViewEnum } from '../models';\nimport { setTime, getToday } from '../../utils';\nimport { WeekNamesService } from '../services';\nvar View = {\n name: 'KendoView',\n inject: {\n kendoIntlService: {\n default: null\n }\n },\n props: {\n activeRangeEnd: {\n type: String\n },\n activeView: {\n type: Number,\n required: true\n },\n cell: [String, Function, Object],\n cellUID: {\n type: String,\n required: true\n },\n direction: {\n type: String,\n default: 'vertical'\n },\n isActive: {\n type: Boolean,\n default: undefined\n },\n focusedDate: {\n type: Date,\n required: true\n },\n max: {\n type: Date,\n required: true\n },\n min: {\n type: Date,\n required: true\n },\n selectedDate: {\n type: [Date, Array, Object],\n default: function _default() {\n return getToday();\n }\n },\n selectionRange: Object,\n showWeekNumbers: {\n type: Boolean,\n default: false\n },\n viewDate: {\n type: Date,\n required: true\n },\n weekCell: [String, Function, Object],\n bus: Object,\n service: Object\n },\n computed: {\n isHorizontal: {\n get: function get() {\n return this.$props.direction === 'horizontal';\n }\n },\n isMonthView: {\n get: function get() {\n return this.$props.activeView === CalendarViewEnum.month;\n }\n },\n weekNumber: {\n get: function get() {\n return Boolean(this.$props.showWeekNumbers && this.$props.activeView === CalendarViewEnum.month);\n }\n }\n },\n methods: {\n getWeekNumber: function getWeekNumber(date) {\n if (!this.weekNumber) {\n return null;\n }\n\n return weekInYear(date, this._intl.firstDay());\n },\n firstDate: function firstDate(row) {\n var cell = this.firstWeekDateContext(row);\n return cell ? cell.value : null;\n },\n firstWeekDateContext: function firstWeekDateContext(rowCtx) {\n if (!this.weekNumber) {\n return null;\n }\n\n var idx = 0;\n var ctx = rowCtx[idx];\n\n while (!ctx && idx < rowCtx.length) {\n ctx = rowCtx[++idx];\n }\n\n return ctx;\n },\n handleClick: function handleClick(value, event) {\n var args = {\n value: cloneDate(value),\n target: this,\n event: event\n };\n this.$emit('change', args);\n },\n handleWeekCellClick: function handleWeekCellClick(value, event) {\n var args = {\n value: value,\n event: event\n };\n this.$emit('weekcellclick', args);\n },\n handleMouseDown: function handleMouseDown(value, event) {\n var args = {\n value: cloneDate(value),\n target: this,\n event: event\n };\n this.$emit('viewmousedown', args);\n },\n handleMouseEnter: function handleMouseEnter(value) {\n this.$emit('cellenter', cloneDate(value));\n },\n handleMouseLeave: function handleMouseLeave(value) {\n this.$emit('cellleave', cloneDate(value));\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoIntlService = inject('kendoIntlService', {});\n return {\n v3: v3,\n kendoIntlService: kendoIntlService\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n this._intl = provideIntlService(this);\n this._weekService = new WeekNamesService(this._intl); // tslint:disable-next-line jsx-use-translation-function\n\n var emptyCell = function emptyCell(idx) {\n return h(\"td\", {\n key: idx\n }, [\"\\xA0\"]);\n }; // const weekNames = this._weekService.getWeekNames(this.weekNumber);\n // const colSpan = this.$props.service.rowLength(this.weekNumber);\n // const title = this.$props.service.title(this.$props.viewDate);\n\n\n var time = getToday();\n var focusedDate = this.$props.isActive ? this.$props.focusedDate : null;\n var viewDate = setTime(this.$props.viewDate, time);\n var currentData = this.$props.service.data({\n cellUID: this.$props.cellUID,\n min: this.$props.min,\n max: this.$props.max,\n focusedDate: focusedDate,\n isActiveView: !this.$props.bus.canMoveDown(this.$props.activeView),\n selectedDate: this.$props.selectedDate,\n selectionRange: this.$props.selectionRange,\n viewDate: viewDate\n });\n\n var buildWeekNumber = function buildWeekNumber(row, idx) {\n var firstDayOfWeek = this.firstDate(row);\n\n if (!firstDayOfWeek) {\n return emptyCell(\"week-cell-\" + idx);\n }\n\n var weekCellValue = this.getWeekNumber(this.firstDate(row));\n var uniqueID = \"kendo-vue-calendar-week-cell-\" + weekCellValue;\n var cellDefaultRendering = // @ts-ignore function children\n h(CalendarWeekCell, {\n \"class\": 'k-calendar-td k-alt',\n value: weekCellValue,\n attrs: this.v3 ? undefined : {\n value: weekCellValue\n },\n onClick: this.handleWeekCellClick,\n on: this.v3 ? undefined : {\n \"click\": this.handleWeekCellClick\n },\n key: uniqueID\n }, this.v3 ? function () {\n return [weekCellValue];\n } : [weekCellValue]);\n return getTemplate.call(this, {\n h: h,\n template: this.$props.weekCell,\n defaultRendering: cellDefaultRendering,\n defaultSlots: weekCellValue,\n additionalListeners: {\n click: this.handleWeekCellClick\n },\n additionalProps: {\n value: weekCellValue,\n key: uniqueID\n }\n });\n };\n\n var buildRow = function buildRow(row) {\n return row.map(function (cell, idx) {\n if (!cell) {\n return emptyCell(idx);\n }\n\n var uniqueID = \"kendo-vue-calendar-cell-\" + cell.value.getTime();\n var cellDefaultRendering = // @ts-ignore function children\n h(CalendarCell, {\n \"aria-selected\": cell.isSelected,\n attrs: this.v3 ? undefined : {\n \"aria-selected\": cell.isSelected,\n formattedValue: cell.formattedValue,\n id: cell.id,\n isFocused: cell.isFocused,\n isSelected: cell.isSelected,\n isInRange: cell.isInRange,\n isWeekend: cell.isWeekend,\n isRangeStart: cell.isRangeStart,\n isRangeMid: cell.isRangeMid,\n isRangeEnd: cell.isRangeEnd,\n isRangeSplitStart: cell.isRangeSplitStart,\n isRangeSplitEnd: cell.isRangeSplitEnd,\n isToday: cell.isToday,\n title: cell.title,\n value: cell.value,\n isDisabled: !cell.isInRange,\n view: this.$props.activeView\n },\n formattedValue: cell.formattedValue,\n id: cell.id,\n isFocused: cell.isFocused,\n isSelected: cell.isSelected,\n isInRange: cell.isInRange,\n isWeekend: cell.isWeekend,\n isRangeStart: cell.isRangeStart,\n isRangeMid: cell.isRangeMid,\n isRangeEnd: cell.isRangeEnd,\n isRangeSplitStart: cell.isRangeSplitStart,\n isRangeSplitEnd: cell.isRangeSplitEnd,\n isToday: cell.isToday,\n title: cell.title,\n value: cell.value,\n isDisabled: !cell.isInRange,\n view: this.$props.activeView,\n onClick: this.handleClick,\n on: this.v3 ? undefined : {\n \"click\": this.handleClick,\n \"mousedown\": this.handleMouseDown,\n \"mouseenter\": this.handleMouseEnter,\n \"mouseleave\": this.handleMouseLeave\n },\n onMousedown: this.handleMouseDown,\n onMouseenter: this.handleMouseEnter,\n onMouseleave: this.handleMouseLeave,\n key: uniqueID\n }, this.v3 ? function () {\n return [cell.formattedValue];\n } : [cell.formattedValue]);\n return getTemplate.call(this, {\n h: h,\n template: this.$props.cell,\n defaultRendering: cellDefaultRendering,\n defaultSlots: cell.formattedValue,\n additionalListeners: {\n click: this.handleClick,\n mousedown: this.handleMouseDown,\n mouseenter: this.handleMouseEnter,\n mouseleave: this.handleMouseLeave\n },\n additionalProps: {\n formattedValue: cell.formattedValue,\n id: cell.id,\n isFocused: cell.isFocused,\n isSelected: cell.isSelected,\n isInRange: cell.isInRange,\n isWeekend: cell.isWeekend,\n isRangeStart: cell.isRangeStart,\n isRangeMid: cell.isRangeMid,\n isRangeEnd: cell.isRangeEnd,\n isRangeSplitStart: cell.isRangeSplitStart,\n isRangeSplitEnd: cell.isRangeSplitEnd,\n isToday: cell.isToday,\n title: cell.title,\n value: cell.value,\n isDisabled: !cell.isInRange,\n view: this.$props.activeView,\n key: uniqueID\n }\n });\n }, this);\n };\n\n return h(\"tbody\", {\n \"class\": 'k-calendar-tbody',\n role: 'rowgroup',\n attrs: this.v3 ? undefined : {\n role: 'rowgroup'\n }\n }, [currentData.map(function (row, idx) {\n return h(\"tr\", {\n \"class\": 'k-calendar-tr',\n role: \"row\",\n attrs: this.v3 ? undefined : {\n role: \"row\"\n },\n key: idx\n }, [this.weekNumber && buildWeekNumber.call(this, row, idx), buildRow.call(this, row)]);\n }, this)]);\n }\n};\nvar ViewVue3 = View;\nexport { View, ViewVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar inject = allVue.inject;\nimport { cloneDate } from '@progress/kendo-date-math';\nimport { provideIntlService } from '@progress/kendo-vue-intl';\nvar DEFAULT_FETCH_MONTHS_COUNT = 1; // import { Virtualization, ScrollActionArguments } from '../../virtualization/Virtualization';\n\nimport { View } from './View';\nimport { shiftWeekNames } from '../../utils';\nimport { CalendarViewEnum } from '../models';\nimport { classNames } from '@progress/kendo-vue-common';\nvar VIEWS_COUNT = 5;\nvar ViewList = {\n name: 'KendoViewList',\n inheritAttrs: false,\n inject: {\n kendoIntlService: {\n default: null\n }\n },\n props: {\n allowReverse: Boolean,\n hasFocusedDate: Boolean,\n activeView: {\n type: Number,\n required: true\n },\n bottomOffset: {\n type: Number\n },\n cell: [String, Function, Object],\n cellUID: {\n type: String,\n required: true\n },\n dates: Array,\n focusedDate: {\n type: Date,\n required: true\n },\n isActive: {\n type: Boolean,\n default: undefined\n },\n max: {\n type: Date,\n required: true\n },\n min: {\n type: Date,\n required: true\n },\n selectionRange: Object,\n showWeekNumbers: {\n type: Boolean,\n default: false\n },\n smoothScroll: {\n type: Boolean,\n default: true\n },\n take: {\n type: Number,\n default: VIEWS_COUNT\n },\n value: {\n type: [Date, Array, Object]\n },\n views: {\n type: Number,\n default: DEFAULT_FETCH_MONTHS_COUNT\n },\n viewHeight: Number,\n viewOffset: Number,\n bus: Object,\n dom: Object,\n weekCell: [String, Function, Object],\n service: Object\n },\n data: function data() {\n return {\n lastViewsCount: 0,\n valueHasUpdated: false\n };\n },\n computed: {\n weekNames: {\n get: function get() {\n this._intl = provideIntlService(this);\n var weekNames = shiftWeekNames(this._intl.dateFormatNames({\n nameType: 'short',\n type: 'days'\n }), this._intl.firstDay());\n return this.weekNumber ? [''].concat(weekNames) : weekNames;\n }\n },\n weekNumber: {\n get: function get() {\n return Boolean(this.$props.showWeekNumbers && this.$props.activeView === CalendarViewEnum.month);\n }\n },\n animate: {\n get: function get() {\n return Boolean(this.$props.smoothScroll && this.animateToIndex);\n }\n }\n },\n created: function created() {\n this.lastView = this.$props.activeView;\n this.lastFocus = this.$props.focusedDate;\n this.animateToIndex = true;\n this.shouldScroll = false; // this.$data.skip = this.$props.service.skip(this.$props.focusedDate, this.$props.min);\n // this.$data.index = this.$props.service.skip(this.$props.focusedDate, this.$props.min);\n },\n updated: function updated() {\n this.shouldScroll = false;\n this.lastView = this.$props.activeView;\n this.$data.lastViewsCount = this.$props.views; // this.lastFocus = this.$props.focusedDate;\n\n this.indexToScroll = undefined;\n },\n methods: {\n handleFocus: function handleFocus(event) {\n this.$emit('listfocus', event);\n },\n handleBlur: function handleBlur(event) {\n this.$emit('listblur', event);\n },\n handleKeyDown: function handleKeyDown(event) {\n this.$emit('listkeydown', event);\n },\n handleVirtualizationMount: function handleVirtualizationMount(_virtualization) {// this.virtualization = virtualization;\n // if (this.virtualization && this.table) {\n // this.table.style.transform = `translateY(${this.viewOffset}px)`;\n // const viewDate = dateInRange(this.$props.focusedDate, this.$props.min, this.$props.max);\n // const indexToScroll = this.$props.service.skip(viewDate, this.$props.min);\n // // this.virtualization.scrollToIndex(indexToScroll);\n // }\n },\n calculateHeights: function calculateHeights() {\n if (!this.$props.dom) {\n return;\n }\n\n var scrollableHeight = this.$props.activeView === CalendarViewEnum.month ? this.$props.dom.scrollableContentHeight : this.$props.dom.scrollableYearContentHeight;\n this._bottomOffset = scrollableHeight - this.$props.dom.viewHeight(this.$props.activeView);\n this._viewOffset = -1 * this.$props.dom.headerHeight;\n this._viewHeight = this.$props.dom.viewHeight(this.$props.activeView) || 1;\n },\n getTake: function getTake(skip, total) {\n return Math.min(total - skip, this.$props.take);\n },\n handleScrollAction: function handleScrollAction() {// const skip = pageAction ? pageAction.skip : this.$data.skip;\n // if (this.$data.index !== index || this.$data.skip !== skip) {\n // this.$data.index = skip;\n // }\n // if (this.table && scrollAction) {\n // const translate = `translateY(${scrollAction.offset}px)`;\n // this.table.style.transform = translate;\n // }\n },\n handleTodayClick: function handleTodayClick(event) {\n this.shouldScroll = true;\n this.handleDateChange(event, true);\n },\n handleMouseDown: function handleMouseDown(event) {\n var args = {\n event: event.event,\n value: cloneDate(event.value),\n target: this\n };\n this.$emit('listmousedown', args);\n },\n handleDateChange: function handleDateChange(event, isTodayClick) {\n if (isTodayClick === void 0) {\n isTodayClick = false;\n }\n\n var args = {\n event: event.event,\n value: cloneDate(event.value),\n target: this,\n isTodayClick: isTodayClick\n };\n this.$emit('change', args);\n },\n handleWeekCellClick: function handleWeekCellClick(event) {\n this.$emit('weekcellclick', event);\n },\n handleWeekNameClick: function handleWeekNameClick(event, value) {\n var args = {\n value: value,\n event: event\n };\n this.$emit('weeknameclick', args);\n },\n handleCellEnter: function handleCellEnter(event) {\n this.$emit('cellenter', event);\n },\n rotateSelectionRange: function rotateSelectionRange(selectionRange) {\n if (selectionRange.start === null || selectionRange.end === null) {\n return selectionRange;\n }\n\n var needRotate = selectionRange.end < selectionRange.start;\n return {\n start: needRotate ? selectionRange.end : selectionRange.start,\n end: needRotate ? selectionRange.start : selectionRange.end\n };\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoIntlService = inject('kendoIntlService', {});\n return {\n v3: v3,\n kendoIntlService: kendoIntlService\n };\n },\n mounted: function mounted() {\n this._calendarView = this.$refs.calendarView;\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var selectionRange = this.$props.allowReverse ? this.rotateSelectionRange(this.$props.selectionRange) : this.$props.selectionRange;\n var rootClassNames = classNames('k-calendar-view', 'k-hstack k-align-items-start k-justify-content-center', {\n 'k-calendar-monthview': this.$props.activeView === CalendarViewEnum.month,\n 'k-calendar-yearview': this.$props.activeView === CalendarViewEnum.year,\n 'k-calendar-decadeview': this.$props.activeView === CalendarViewEnum.decade,\n 'k-calendar-centuryview': this.$props.activeView === CalendarViewEnum.century\n });\n var tableClassNames = classNames('k-calendar-table', 'k-content', 'k-calendar-content', {\n 'k-month': this.$props.activeView === CalendarViewEnum.month,\n 'k-year': this.$props.activeView === CalendarViewEnum.year,\n 'k-decade': this.$props.activeView === CalendarViewEnum.decade,\n 'k-century': this.$props.activeView === CalendarViewEnum.century\n });\n\n var buildMonthView = function buildMonthView(weekNames) {\n var that = this;\n return h(\"thead\", {\n \"class\": 'k-calendar-thead'\n }, [h(\"tr\", {\n \"class\": 'k-calendar-tr k-calendar-weekdays'\n }, [weekNames.map(function (name, idx) {\n return h(\"th\", {\n \"class\": 'k-calendar-th',\n key: idx,\n onClick: function onClick(ev) {\n return that.handleWeekNameClick(ev, name);\n },\n on: this.v3 ? undefined : {\n \"click\": function onClick(ev) {\n return that.handleWeekNameClick(ev, name);\n }\n }\n }, [name]);\n }, this)])]);\n };\n\n var buildDates = function buildDates() {\n var cellUID = this.$props.cellUID;\n return this.$props.dates.map(function (vDate) {\n return h(\"table\", {\n role: \"grid\",\n attrs: this.v3 ? undefined : {\n role: \"grid\",\n \"aria-label\": this.$props.service.title(this.$props.focusedDate),\n \"aria-live\": 'polite',\n \"aria-activedescendant\": cellUID + this.$props.focusedDate.getTime(),\n tabIndex: this.$attrs.tabIndex\n },\n \"aria-label\": this.$props.service.title(this.$props.focusedDate),\n \"aria-live\": 'polite',\n \"aria-activedescendant\": cellUID + this.$props.focusedDate.getTime(),\n tabIndex: this.$attrs.tabIndex,\n \"class\": tableClassNames,\n onKeydown: this.handleKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.handleKeyDown\n }\n }, [this.$props.activeView === CalendarViewEnum.month && buildMonthView.call(this, this.weekNames), // @ts-ignore function children\n h(View, {\n key: vDate.getTime(),\n activeView: this.$props.activeView,\n attrs: this.v3 ? undefined : {\n activeView: this.$props.activeView,\n viewDate: vDate,\n min: this.$props.min,\n max: this.$props.max,\n cellUID: cellUID,\n isActive: this.$props.isActive,\n focusedDate: this.$props.focusedDate,\n cell: this.$props.cell,\n selectionRange: selectionRange,\n selectedDate: this.$props.value,\n showWeekNumbers: this.weekNumber,\n bus: this.$props.bus,\n service: this.$props.service,\n weekCell: this.$props.weekCell\n },\n viewDate: vDate,\n min: this.$props.min,\n max: this.$props.max,\n cellUID: cellUID,\n isActive: this.$props.isActive,\n focusedDate: this.$props.focusedDate,\n cell: this.$props.cell,\n selectionRange: selectionRange,\n selectedDate: this.$props.value,\n showWeekNumbers: this.weekNumber,\n onChange: this.handleDateChange,\n on: this.v3 ? undefined : {\n \"change\": this.handleDateChange,\n \"weekcellclick\": this.handleWeekCellClick,\n \"cellenter\": this.handleCellEnter,\n \"viewmousedown\": this.handleMouseDown\n },\n onWeekcellclick: this.handleWeekCellClick,\n onCellenter: this.handleCellEnter,\n onViewmousedown: this.handleMouseDown,\n bus: this.$props.bus,\n service: this.$props.service,\n weekCell: this.$props.weekCell\n })]);\n }, this);\n };\n\n return h(\"div\", {\n \"class\": rootClassNames,\n onFocusin: this.handleFocus,\n on: this.v3 ? undefined : {\n \"focusin\": this.handleFocus,\n \"focusout\": this.handleBlur\n },\n onFocusout: this.handleBlur\n }, [buildDates.call(this)]);\n }\n};\nvar ViewListVue3 = ViewList;\nexport { ViewList, ViewListVue3 };","/**\n * @hidden\n */\nexport var MIDNIGHT_DATE = new Date(1980, 0, 1);\n/**\n * @hidden\n */\nexport var MIN_DATE = new Date(1900, 0, 1);\n/**\n * @hidden\n */\nexport var MAX_DATE = new Date(2099, 11, 31);\n/**\n * @hidden\n */\nexport var MIN_TIME = new Date(1980, 0, 1);\n/**\n * @hidden\n */\nexport var MAX_TIME = new Date(1980, 0, 1, 23, 59, 59);\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * The `CalendarCell` component is internally used for rendering the items in the current view. Also be used as a custom `cell` of the [Calendar]({% slug api_dateinputs_native_calendarprops %}#toc-cell).\n *\n * * [Customizing the cells inside the Calendar view]({% slug custom_rendering_calendar_native %}#toc-cells-inside-the-view)\n */\n\nvar CalendarHeaderTitle = {\n name: 'KendoHeaderTitle',\n // @ts-ignore\n emits: {\n 'click': null\n },\n props: {\n id: String,\n value: String,\n view: Number\n },\n methods: {\n handleClick: function handleClick(event) {\n this.$emit('click', event);\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n\n /**\n * @return\n * Returns a `` element with the [`value`]({% slug api_dateinputs_calendarheadertitleprops %}#toc-value) of the title as a child.\n */\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n return h(\"button\", {\n value: this.$props.value,\n attrs: this.v3 ? undefined : {\n value: this.$props.value,\n id: this.$props.id,\n tabindex: 0\n },\n id: this.$props.id,\n onClick: this.handleClick,\n on: this.v3 ? undefined : {\n \"click\": this.handleClick\n },\n tabindex: 0\n }, [defaultSlot]);\n }\n};\nvar CalendarHeaderTitleVue3 = CalendarHeaderTitle;\nexport { CalendarHeaderTitle, CalendarHeaderTitleVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar inject = allVue.inject;\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { getDate } from '@progress/kendo-date-math';\nimport { CalendarHeaderTitle } from './CalendarHeaderTitle';\nimport { messages, today, prevView, nextView } from '../../messages';\nimport { Action } from '../models';\nimport { getToday, isInRange, dateInRange, MAX_DATE } from '../../utils';\nimport { MIN_DATE } from '../../defaults';\nimport { classNames, Keys, getTemplate } from '@progress/kendo-vue-common';\n/**\n * @hidden\n */\n\nvar Header = {\n name: 'KendoHeader',\n inheritAttrs: false,\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n props: {\n activeView: {\n type: Number,\n required: true\n },\n currentDate: {\n type: Date,\n required: true\n },\n focusedDate: {\n type: Date,\n required: true\n },\n headerTitle: {\n type: [String, Object, Function],\n default: function _default() {\n return undefined;\n }\n },\n max: {\n type: Date,\n default: function _default() {\n return MAX_DATE;\n }\n },\n min: {\n type: Date,\n default: function _default() {\n return MIN_DATE;\n }\n },\n bus: Object,\n service: Object,\n rangeLength: {\n type: Number,\n default: 1\n },\n tabIndex: {\n type: Number,\n default: 0\n }\n },\n computed: {\n navigate: {\n get: function get() {\n return this.$props.bus.canMoveUp(this.$props.activeView);\n }\n },\n todayIsInRange: {\n get: function get() {\n return isInRange(getToday(), getDate(this.$props.min), getDate(this.$props.max));\n }\n }\n },\n methods: {\n getTitle: function getTitle() {\n if (!this.$props.currentDate) {\n return '';\n }\n\n var take = this.$props.rangeLength - 1;\n var title = this.$props.service.title(this.$props.currentDate);\n var nextDate = this.$props.service.addToDate(this.$props.currentDate, take);\n\n if (take < 1 || !this.$props.service.isInRange(nextDate, this.$props.min, this.$props.max)) {\n return title;\n }\n\n return title + \" - \" + this.$props.service.title(nextDate);\n },\n handleTitleClick: function handleTitleClick(event) {\n if (!this.navigate) {\n return;\n }\n\n this.$props.bus.moveUp(this.$props.activeView, event);\n this.$emit('titleclick', event);\n },\n canNavigate: function canNavigate(action) {\n if (!this.$props.service) {\n return false;\n }\n\n var candidate = this.$props.service.move(this.$props.focusedDate, action);\n return this.$props.min <= candidate && candidate <= this.$props.max || this.$props.service.isInSameView(candidate, this.$props.min) || this.$props.service.isInSameView(candidate, this.$props.max);\n },\n move: function move(action) {\n return this.clampDate(this.$props.service.move(this.$props.focusedDate, action));\n },\n clampDate: function clampDate(value) {\n return dateInRange(value, this.$props.min, this.$props.max);\n },\n handleNextClick: function handleNextClick(event) {\n var args = {\n event: event,\n value: this.move(Action.NextView),\n target: this\n };\n this.$emit('nextclick', args);\n },\n handlePrevClick: function handlePrevClick(event) {\n var args = {\n event: event,\n value: this.move(Action.PrevView),\n target: this\n };\n this.$emit('prevclick', args);\n },\n handleTodayClick: function handleTodayClick(event) {\n if (!this.todayIsInRange) {\n return;\n }\n\n this.$props.bus.moveToBottom(this.$props.activeView);\n var args = {\n event: event,\n value: dateInRange(getToday(), this.$props.min, this.$props.max),\n target: this\n };\n this.$emit('todayclick', args);\n },\n todayKeyDown: function todayKeyDown(event) {\n var keyCode = event.keyCode;\n\n if (keyCode === Keys.enter) {\n this.handleTodayClick(event);\n }\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n this._localization = provideLocalizationService(this);\n\n var todayMessage = this._localization.toLanguageString(today, messages[today]);\n\n var title = this.getTitle();\n\n var prevViewTitle = this._localization.toLanguageString(prevView, messages[prevView]);\n\n var nextViewTittle = this._localization.toLanguageString(nextView, messages[nextView]);\n\n var isPrevDisabled = !this.canNavigate(Action.PrevView);\n var isNextDisabled = !this.canNavigate(Action.NextView);\n var titleClassNames = classNames('k-calendar-title', 'k-button k-flat', 'k-title', {\n 'k-state-disabled': !this.navigate\n });\n var todayClassNames = classNames('k-nav-today', {\n 'k-state-disabled': !this.todayIsInRange\n });\n var headerTitle;\n var headerTitleDefaultRendering = // @ts-ignore function children\n h(CalendarHeaderTitle, {\n value: title,\n attrs: this.v3 ? undefined : {\n value: title,\n view: this.$props.activeView\n },\n view: this.$props.activeView,\n \"class\": titleClassNames,\n onClick: this.handleTitleClick,\n on: this.v3 ? undefined : {\n \"click\": this.handleTitleClick\n }\n }, this.v3 ? function () {\n return [title];\n } : [title]);\n headerTitle = getTemplate.call(this, {\n h: h,\n template: this.$props.headerTitle,\n defaultRendering: headerTitleDefaultRendering\n });\n return h(\"div\", {\n \"class\": \"k-calendar-header k-hstack\"\n }, [headerTitle, h(\"span\", {\n \"class\": 'k-spacer'\n }), h(\"span\", {\n \"class\": 'k-calendar-nav k-hstack'\n }, [h(\"button\", {\n \"class\": {\n 'k-prev-view': true,\n 'k-button k-flat k-icon-button': true,\n 'k-state-disabled': isPrevDisabled\n },\n tabIndex: this.$props.tabIndex,\n attrs: this.v3 ? undefined : {\n tabIndex: this.$props.tabIndex,\n title: prevViewTitle,\n type: \"button\",\n \"aria-disabled\": isPrevDisabled\n },\n title: prevViewTitle,\n type: \"button\",\n onClick: this.handlePrevClick,\n on: this.v3 ? undefined : {\n \"click\": this.handlePrevClick\n },\n \"aria-disabled\": isPrevDisabled\n }, [h(\"span\", {\n \"class\": \"k-button-icon k-icon k-i-arrow-60-left\"\n })]), h(\"span\", {\n \"class\": todayClassNames,\n tabIndex: this.$props.tabIndex,\n attrs: this.v3 ? undefined : {\n tabIndex: this.$props.tabIndex\n },\n onKeydown: this.todayKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.todayKeyDown,\n \"click\": this.handleTodayClick\n },\n onClick: this.handleTodayClick\n }, [todayMessage]), h(\"button\", {\n \"class\": {\n 'k-next-view': true,\n 'k-button k-flat k-icon-button': true,\n 'k-state-disabled': isNextDisabled\n },\n tabIndex: this.$props.tabIndex,\n attrs: this.v3 ? undefined : {\n tabIndex: this.$props.tabIndex,\n title: nextViewTittle,\n type: \"button\",\n \"aria-disabled\": isNextDisabled\n },\n title: nextViewTittle,\n type: \"button\",\n onClick: this.handleNextClick,\n on: this.v3 ? undefined : {\n \"click\": this.handleNextClick\n },\n \"aria-disabled\": isNextDisabled\n }, [h(\"span\", {\n \"class\": \"k-button-icon k-icon k-i-arrow-60-right\"\n })])])]);\n }\n};\nvar HeaderVue3 = Header;\nexport { Header, HeaderVue3 };","import { isInRange } from '../../utils';\nimport { EMPTY_SELECTIONRANGE } from '../models';\nimport { getDate } from '@progress/kendo-date-math';\nvar calculateValue = function (min, max, stateValue, propValue) {\n return propValue !== undefined\n ? propValue !== null && isInRange(propValue, min, max)\n ? propValue\n : null\n : stateValue !== null && isInRange(stateValue, min, max)\n ? stateValue\n : null;\n};\nvar extractDateFromValue = function (min, max, value) {\n return value instanceof Date && !Array.isArray(value) && isInRange(getDate(value), min, max)\n ? getDate(value)\n : null;\n};\nvar extractMultipleFromValue = function (min, max, value) {\n return Array.isArray(value)\n ? value.filter(function (date) { return isInRange(date, min, max); }).map(function (date) { return getDate(date); })\n : null;\n};\nvar extractRangeFromValue = function (value) {\n return typeof value === 'object' && !(value instanceof Date) && value !== null && !Array.isArray(value)\n ? value\n : EMPTY_SELECTIONRANGE;\n};\nvar extractFocusedDate = function (single, multiple, range) {\n return single || (multiple && multiple[0]) || (range && range.start);\n};\nvar extractActiveRange = function (range, single) {\n return range.start === null && single === null\n ? 'start'\n : range.end === null\n ? 'end'\n : 'start';\n};\nexport { calculateValue, extractDateFromValue, extractMultipleFromValue, extractRangeFromValue, extractFocusedDate, extractActiveRange };\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar inject = allVue.inject;\nimport { classNames, guid, Keys, templateRendering, getListeners, validatePackage } from '@progress/kendo-vue-common';\nimport { cloneDate, getDate, isEqualDate } from '@progress/kendo-date-math';\nimport { provideIntlService } from '@progress/kendo-vue-intl';\nimport { packageMetadata } from '../../package-metadata';\nimport { ViewList } from './ViewList';\nimport { MIN_DATE, MAX_DATE } from '../../defaults';\nimport { CalendarViewEnum } from '../models';\nimport { getToday, dateInRange, viewInRange } from '../../utils';\nimport { BusViewService, DOMService, NavigationService } from '../services';\nimport { Header } from './Header';\nimport { calculateValue, extractDateFromValue, extractMultipleFromValue, extractRangeFromValue, extractFocusedDate, extractActiveRange } from '../utils';\nvar Calendar = {\n name: 'KendoCalendar',\n inject: {\n kendoIntlService: {\n default: null\n }\n },\n model: {\n event: 'changemodel'\n },\n props: {\n activeRangeEnd: {\n type: String,\n default: undefined\n },\n allowReverse: {\n type: Boolean,\n default: false\n },\n cell: [String, Function, Object],\n className: String,\n defaultActiveView: {\n type: String,\n default: 'month'\n },\n modelValue: {\n type: [Date, Array, Object],\n default: undefined\n },\n defaultValue: {\n type: [Date, Array, Object],\n default: null\n },\n disabled: {\n type: Boolean,\n default: false\n },\n focusedDate: Date,\n id: {\n type: String,\n default: function _default() {\n return guid();\n }\n },\n headerTitle: [String, Function, Object],\n max: {\n type: Date,\n default: function _default() {\n return MAX_DATE;\n }\n },\n min: {\n type: Date,\n default: function _default() {\n return MIN_DATE;\n }\n },\n mode: String,\n navigation: {\n type: Boolean,\n default: true\n },\n smoothScroll: {\n type: Boolean,\n default: true\n },\n tabIndex: Number,\n value: [Date, Array, Object],\n views: {\n type: Number,\n default: 1\n },\n weekNumber: Boolean,\n weekCell: [String, Function, Object],\n topView: {\n type: String,\n default: 'century'\n },\n bottomView: {\n type: String,\n default: 'month'\n }\n },\n data: function data() {\n return {\n valueDuringOnChange: undefined,\n currentFocusedDate: null,\n currentActiveView: null,\n currentValue: null,\n cellUID: guid(),\n isActive: false,\n oldValue: null,\n didNavigationChange: false,\n currentActiveRangeEnd: undefined\n };\n },\n created: function created() {\n validatePackage(packageMetadata);\n var value = calculateValue(this.currentMin, this.currentMax, this.$props.defaultValue, this.$props.value || this.$props.modelValue);\n var selectedDate = extractDateFromValue(this.currentMin, this.currentMax, value);\n var selectedMultiple = extractMultipleFromValue(this.currentMin, this.currentMax, value);\n var selectedRange = extractRangeFromValue(value);\n var calculatedFocus = extractFocusedDate(selectedDate, selectedMultiple, selectedRange);\n this._hasMounted = false;\n this.$data.currentFocusedDate = dateInRange(this.$props.focusedDate || calculatedFocus || getToday(), this.currentMin, this.currentMax);\n this.$data.currentValue = value;\n this.$data.currentActiveView = viewInRange(CalendarViewEnum[this.$props.defaultActiveView], CalendarViewEnum[this.$props.bottomView], CalendarViewEnum[this.$props.topView]);\n this.$data.currentActiveRangeEnd = extractActiveRange(selectedRange, selectedDate);\n this._dates = [];\n this._calculateFocusFromValue = false;\n this._lastView = this.$props.activeView || this.$data.currentActiveView;\n this._lastViewsCount = this.$props.views;\n this._dom = new DOMService();\n this._bus = new BusViewService(this.handleViewChange);\n this._navigation = new NavigationService(this._bus);\n this._oldValue = value;\n },\n watch: {\n value: function value(newValue, _oldValue) {\n this.$data.currentFocusedDate = newValue;\n },\n focusedDate: function focusedDate(newValue, _oldValue) {\n this.$data.currentFocusedDate = newValue;\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoIntlService = inject('kendoIntlService', {});\n return {\n v3: v3,\n kendoIntlService: kendoIntlService\n };\n },\n mounted: function mounted() {\n this.calendarViewList = this.v3 ? this.calendarViewListRef : this.$refs.calendarViewList;\n this._calculateFocusFromValue = true;\n },\n updated: function updated() {\n var stateValue = extractDateFromValue(this.currentMin, this.currentMax, this.computedValue());\n this._calculateFocusFromValue = Boolean(this._selectedDate && stateValue && this._selectedDate.getTime() && stateValue.getTime());\n this._lastView = this.$props.activeView || this.$data.currentActiveView;\n this._lastViewsCount = this.$props.views;\n this._oldValue = this.computedValue();\n\n if (!this.calendarViewList) {\n this.calendarViewList = this.v3 ? this.calendarViewListRef : this.$refs.calendarViewList;\n }\n },\n computed: {\n activeRange: {\n get: function get() {\n return this.$props.activeRangeEnd !== undefined ? this.$props.activeRangeEnd : this.$data.currentActiveRangeEnd;\n }\n },\n currentMin: function currentMin() {\n return getDate(this.$props.min);\n },\n currentMax: function currentMax() {\n return getDate(this.$props.max);\n }\n },\n methods: {\n element: function element() {\n return this.$el;\n },\n computedValue: function computedValue() {\n return this.$data.valueDuringOnChange !== undefined ? this.$data.valueDuringOnChange : this.$props.value !== undefined ? this.$props.value : this.$props.modelValue !== undefined ? this.$props.modelValue : this.$data.currentValue;\n },\n focus: function focus(event) {\n if (this.calendarViewList) {\n this.calendarViewList.$el.firstElementChild.focus(event);\n }\n },\n handleBlur: function handleBlur() {\n this.$data.isActive = false;\n },\n handleFocus: function handleFocus() {\n this.$data.isActive = true;\n },\n emitBlur: function emitBlur(event) {\n this.$emit('blur', event);\n },\n emitFocus: function emitFocus(event) {\n this.$emit('focus', event);\n },\n handleTodayClick: function handleTodayClick(event) {\n if (this.$props.disabled) {\n return;\n }\n\n this.$data.didNavigationChange = true;\n var focusedDate = cloneDate(event.value);\n this.$data.currentFocusedDate = focusedDate;\n this.$data.currentValue = focusedDate;\n this.triggerChange(focusedDate, event);\n },\n handleViewChange: function handleViewChange(_a) {\n var view = _a.view;\n this.$data.currentActiveView = view;\n },\n handlePrevClick: function handlePrevClick(event) {\n var focusedDate = cloneDate(event.value);\n this.focus();\n\n if (this.$props.disabled) {\n return;\n }\n\n this.$data.currentFocusedDate = focusedDate;\n },\n handleTitleClick: function handleTitleClick() {\n this.focus();\n },\n handleNextClick: function handleNextClick(event) {\n var focusedDate = cloneDate(event.value);\n this.focus();\n\n if (this.$props.disabled) {\n return;\n }\n\n this.$data.currentFocusedDate = focusedDate;\n },\n handleCellEnter: function handleCellEnter(value) {\n if (this.$props.mode === 'range') {\n this.$data.currentFocusedDate = value;\n }\n },\n generateRange: function generateRange(candidate, value) {\n var end = value.end,\n start = value.start;\n var shouldSwap = value.start !== null && candidate.getTime() <= value.start.getTime();\n\n if (!this.$props.allowReverse && shouldSwap) {\n return {\n start: candidate,\n end: this._selectedRange.start\n };\n }\n\n return this.activeRange !== 'end' ? {\n start: candidate,\n end: end\n } : {\n start: start || this._selectedDate,\n end: candidate\n };\n },\n clampRange: function clampRange(value) {\n return {\n start: value,\n end: null\n };\n },\n handleWeekCellClick: function handleWeekCellClick(event) {\n this.$emit('weekcellclick', event);\n },\n handleWeekNameClick: function handleWeekNameClick(event) {\n this.$emit('weeknameclick', event);\n },\n handleDateChange: function handleDateChange(event) {\n var focusedDate = cloneDate(event.value);\n\n var canNavigateDown = this._bus.canMoveDown(this.$data.currentActiveView);\n\n if (this.$props.disabled) {\n return;\n }\n\n if (canNavigateDown) {\n if (event.isTodayClick) {\n this._bus.moveToBottom(this.$data.currentActiveView);\n } else {\n this._bus.moveDown(this.$data.currentActiveView, event.event);\n\n this.$data.currentFocusedDate = focusedDate;\n return;\n }\n }\n\n var value;\n\n switch (this.$props.mode) {\n case 'single':\n value = cloneDate(event.value);\n break;\n\n case 'multiple':\n if (Array.isArray(this._selectedMultiple)) {\n var result = this._selectedMultiple.slice();\n\n var index_1 = -1;\n result.forEach(function (date, idx) {\n if (isEqualDate(date, event.value)) {\n index_1 = idx;\n }\n });\n index_1 !== -1 ? result.splice(index_1, 1) : result.push(cloneDate(event.value));\n value = result.slice();\n } else {\n if (this._selectedDate) {\n value = [cloneDate(this._selectedDate), cloneDate(event.value)];\n } else {\n value = [cloneDate(event.value)];\n }\n }\n\n break;\n\n case 'range':\n var hasSelection = this._selectedRange.start !== null && this._selectedRange.end !== null && this.activeRange === 'start';\n value = hasSelection ? this.clampRange(event.value) : this.generateRange(event.value, this._selectedRange);\n this.$data.currentActiveRangeEnd = this.activeRange !== 'end' ? 'end' : 'start';\n break;\n\n default:\n value = cloneDate(event.value);\n break;\n }\n\n this.$data.currentValue = value;\n this.triggerChange(value, event);\n },\n triggerChange: function triggerChange(value, event) {\n this.$data.valueDuringOnChange = value;\n var args = {\n event: event.event,\n value: value,\n component: this,\n target: {\n name: this.$props.name,\n value: value,\n valueAsDate: value\n }\n };\n this.$emit('change', args);\n this.$emit('changemodel', value);\n this.$emit('update:modelValue', value);\n this.$data.valueDuringOnChange = undefined;\n },\n handleMouseDown: function handleMouseDown(event) {\n var focusedDate = cloneDate(event.value);\n\n if (this.$props.disabled || this.$data.currentActiveView !== 0) {\n return;\n }\n\n this.$data.currentFocusedDate = focusedDate;\n },\n tableKeyDown: function tableKeyDown(event) {\n var keyCode = event.keyCode;\n this.$emit('keydown', event);\n\n if (keyCode === Keys.enter) {\n var args = {\n event: event,\n value: this._focusedDate,\n component: this,\n target: {\n name: this.$props.name,\n value: this._focusedDate,\n valueAsDate: this._focusedDate\n }\n };\n this.handleDateChange(args);\n } else {\n var candidate = dateInRange(this._navigation.move(this._focusedDate, this._navigation.action(event), this.$data.currentActiveView, this._service, event), this.currentMin, this.currentMax);\n\n if (isEqualDate(this._focusedDate, candidate)) {\n return;\n }\n\n this._calculateFocusFromValue = false;\n this.$data.currentFocusedDate = candidate;\n }\n\n event.preventDefault();\n },\n isValueEqual: function isValueEqual(newValue, oldValue) {\n if (newValue instanceof Date && oldValue instanceof Date) {\n return isEqualDate(newValue, oldValue); // @ts-ignore\n } else if (newValue instanceof Object && oldValue instanceof Object) {\n if (newValue && oldValue && // @ts-ignore\n isEqualDate(newValue.start, oldValue.start) && isEqualDate(newValue.end, oldValue.end)) {\n return true;\n } else {\n return false;\n }\n } else if (newValue instanceof Array && oldValue instanceof Array) {\n if (newValue && oldValue && // @ts-ignore\n newValue.length === oldValue.length) {\n return true;\n } else {\n return false;\n }\n }\n\n return false;\n },\n rangeWithFocused: function rangeWithFocused(range, focusedDate) {\n return {\n start: range.start,\n end: range.end === null && range.start !== null && this.$data.isActive ? focusedDate.end : range.end\n };\n }\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var views = this.$props.views;\n var currentValue = this.computedValue();\n var currentFocusedDate = this.$data.currentFocusedDate;\n var didValueChange = currentValue !== null && this._oldValue !== null ? !this.isValueEqual(currentValue, this._oldValue) : currentValue !== this._oldValue;\n this._selectedDate = extractDateFromValue(this.currentMin, this.currentMax, currentValue);\n this._selectedMultiple = extractMultipleFromValue(this.currentMin, this.currentMax, currentValue);\n var cell = templateRendering.call(this, this.$props.cell, getListeners.call(this));\n var weekCell = templateRendering.call(this, this.$props.weekCell, getListeners.call(this));\n var headerTitle = templateRendering.call(this, this.$props.headerTitle, getListeners.call(this));\n var activeView = viewInRange(this.$data.currentActiveView, CalendarViewEnum[this.$props.bottomView], CalendarViewEnum[this.$props.topView]);\n this._selectedDate = extractDateFromValue(this.currentMin, this.currentMax, currentValue);\n this._selectedMultiple = extractMultipleFromValue(this.currentMin, this.currentMax, currentValue);\n this._selectedRange = extractRangeFromValue(currentValue);\n var calculatedFocus = extractFocusedDate(this._selectedDate, this._selectedMultiple, this._selectedRange);\n var currentDateInRange = dateInRange(didValueChange && calculatedFocus !== null ? calculatedFocus : currentFocusedDate, this.currentMin, this.currentMax);\n\n if (currentDateInRange instanceof Date) {\n this._focusedDate = getDate(currentDateInRange);\n } else if (calculatedFocus) {\n this._focusedDate = calculatedFocus;\n }\n\n var visualizedRange = this.rangeWithFocused(this._selectedRange, currentFocusedDate);\n this._intl = provideIntlService(this);\n\n this._bus.configure(CalendarViewEnum[this.$props.bottomView], CalendarViewEnum[this.$props.topView]);\n\n this._service = this._bus.service(activeView, this._intl);\n var rootClassNames = classNames('k-widget k-calendar', 'k-calendar-range', {\n 'k-state-disabled': this.$props.disabled,\n 'k-week-number': this.$props.weekNumber\n }, this.$props.className);\n var didViewChange = this._lastView !== this.$data.currentActiveView;\n\n var isDateInList = this._dates && this._service.isInArray(this._focusedDate, this._dates);\n\n var didViewsCountChange = this._lastViewsCount !== this.$props.views;\n\n if (!isDateInList || didViewChange || didViewsCountChange) {\n this._dates = this._service.datesList(this._focusedDate, views);\n }\n\n var activeDate = cloneDate(this._dates && this._dates[0] ? this._dates[0] : undefined);\n var calendarBody = [this.$props.navigation && // @ts-ignore function children\n h(Header, {\n tabIndex: !this.$props.disabled ? this.$props.tabIndex || 0 : undefined // key={`.kendo.calendar.header.${this.$data.currentFocusedDate.getTime()}`}\n ,\n attrs: this.v3 ? undefined : {\n tabIndex: !this.$props.disabled ? this.$props.tabIndex || 0 : undefined,\n activeView: this.$data.currentActiveView,\n currentDate: activeDate,\n focusedDate: this._focusedDate,\n min: this.currentMin,\n max: this.currentMax,\n rangeLength: this.$props.views,\n bus: this._bus,\n service: this._service,\n headerTitle: headerTitle\n },\n activeView: this.$data.currentActiveView,\n currentDate: activeDate,\n focusedDate: this._focusedDate,\n min: this.currentMin,\n max: this.currentMax,\n rangeLength: this.$props.views,\n onTodayclick: this.handleTodayClick,\n on: this.v3 ? undefined : {\n \"todayclick\": this.handleTodayClick,\n \"nextclick\": this.handleNextClick,\n \"prevclick\": this.handlePrevClick,\n \"titleclick\": this.handleTitleClick\n },\n onNextclick: this.handleNextClick,\n onPrevclick: this.handlePrevClick,\n onTitleclick: this.handleTitleClick,\n bus: this._bus,\n service: this._service,\n headerTitle: headerTitle\n }), // @ts-ignore function children\n h(ViewList // key={`.kendo.calendar.viewlist.${this.$data.currentFocusedDate.getTime()}`}\n , {\n allowReverse: this.$props.allowReverse,\n attrs: this.v3 ? undefined : {\n allowReverse: this.$props.allowReverse,\n isActive: this.$data.isActive,\n tabIndex: !this.$props.disabled ? this.$props.tabIndex || 0 : undefined,\n activeView: this.$data.currentActiveView,\n focusedDate: this._focusedDate,\n min: this.currentMin,\n max: this.currentMax,\n bus: this._bus,\n dates: this._dates,\n shouldScroll: this.$data.didNavigationChange,\n service: this._service,\n cell: cell,\n weekCell: weekCell,\n dom: this._dom,\n views: this.$props.views,\n selectionRange: visualizedRange,\n smoothScroll: this.$props.smoothScroll,\n showWeekNumbers: this.$props.weekNumber,\n value: this._selectedMultiple || this._selectedDate,\n cellUID: this.$data.cellUID\n },\n isActive: this.$data.isActive,\n tabIndex: !this.$props.disabled ? this.$props.tabIndex || 0 : undefined,\n ref: this.v3 ? function (el) {\n _this.calendarViewListRef = el;\n } : 'calendarViewList',\n activeView: this.$data.currentActiveView,\n focusedDate: this._focusedDate,\n min: this.currentMin,\n max: this.currentMax,\n bus: this._bus,\n dates: this._dates,\n shouldScroll: this.$data.didNavigationChange,\n service: this._service,\n cell: cell,\n weekCell: weekCell,\n dom: this._dom,\n views: this.$props.views,\n selectionRange: visualizedRange,\n smoothScroll: this.$props.smoothScroll,\n showWeekNumbers: this.$props.weekNumber,\n onChange: this.handleDateChange,\n on: this.v3 ? undefined : {\n \"change\": this.handleDateChange,\n \"weekcellclick\": this.handleWeekCellClick,\n \"weeknameclick\": this.handleWeekNameClick,\n \"listmousedown\": this.handleMouseDown,\n \"cellenter\": this.handleCellEnter,\n \"listkeydown\": this.tableKeyDown,\n \"listfocus\": this.handleFocus,\n \"listblur\": this.handleBlur\n },\n onWeekcellclick: this.handleWeekCellClick,\n onWeeknameclick: this.handleWeekNameClick,\n onListmousedown: this.handleMouseDown,\n onCellenter: this.handleCellEnter,\n onListkeydown: this.tableKeyDown,\n onListfocus: this.handleFocus,\n onListblur: this.handleBlur,\n value: this._selectedMultiple || this._selectedDate,\n cellUID: this.$data.cellUID\n })];\n return h(\"div\", {\n \"aria-disabled\": this.$props.disabled,\n attrs: this.v3 ? undefined : {\n \"aria-disabled\": this.$props.disabled,\n id: this.$props.id\n },\n \"class\": rootClassNames,\n id: this.$props.id,\n onFocusout: this.emitBlur,\n on: this.v3 ? undefined : {\n \"focusout\": this.emitBlur,\n \"focusin\": this.emitFocus\n },\n onFocusin: this.emitFocus\n }, [calendarBody]);\n }\n};\nvar CalendarVue3 = Calendar;\nexport { Calendar, CalendarVue3 };","/**\n * @hidden\n */\nvar Mask = /** @class */ (function () {\n function Mask() {\n this.symbols = '';\n }\n return Mask;\n}());\nexport { Mask };\n","/**\n * @hidden\n */\nexport var defaultFormat = 'd';\n/**\n * @hidden\n */\nexport var defaultFormatPlaceholder = 'wide';\n/**\n * @hidden\n */\nexport var padZero = function (length) { return new Array(Math.max(length, 0)).fill('0').join(''); };\n/**\n * @hidden\n */\nexport var approximateStringMatching = function (oldTextOrigin, oldFormat, newTextOrigin, selectionStart) {\n /*\n Remove the right part of the cursor.\n oldFormat = oldFormat.substring(0, caret + oldText.length - newText.length);\n */\n var oldTextSeparator = oldTextOrigin[selectionStart + oldTextOrigin.length - newTextOrigin.length];\n var oldText = oldTextOrigin.substring(0, selectionStart + oldTextOrigin.length - newTextOrigin.length);\n var newText = newTextOrigin.substring(0, selectionStart);\n var diff = [];\n /* Handle the typing of a single character over the same selection. */\n if (oldText === newText && selectionStart > 0) {\n diff.push([oldFormat[selectionStart - 1], newText[selectionStart - 1]]);\n return diff;\n }\n if (oldText.indexOf(newText) === 0 &&\n (newText.length === 0 || oldFormat[newText.length - 1] !== oldFormat[newText.length])) {\n /* Handle Delete/Backspace. */\n var deletedSymbol = '';\n /*\n The whole text is replaced by the same character.\n A nasty patch is required to keep the selection in the first segment.\n */\n if (newText.length === 1) {\n diff.push([oldFormat[0], newText[0]]);\n }\n for (var i = newText.length; i < oldText.length; i++) {\n if (oldFormat[i] !== deletedSymbol && oldFormat[i] !== '_') {\n deletedSymbol = oldFormat[i];\n diff.push([deletedSymbol, '']);\n }\n }\n return diff;\n }\n /*\n Handle the insertion of the text (the new text is longer than the previous one).\n Handle the typing over a literal as well.\n */\n if (newText.indexOf(oldText) === 0 || oldFormat[selectionStart - 1] === '_') {\n var symbol = oldFormat[0];\n for (var i = Math.max(0, oldText.length - 1); i < oldFormat.length; i++) {\n if (oldFormat[i] !== '_') {\n symbol = oldFormat[i];\n break;\n }\n }\n return [[symbol, newText[selectionStart - 1]]];\n }\n /* Handle the entering of a space or a separator for navigating to the next item. */\n if (newText[newText.length - 1] === ' ' || newText[newText.length - 1] === oldTextSeparator) {\n return [[oldFormat[selectionStart - 1], '_']];\n }\n /* Handle typing over a correctly selected part. */\n return [[oldFormat[selectionStart - 1], newText[selectionStart - 1]]];\n};\n/**\n * @hidden\n */\nexport var dateSymbolMap = function (map, part) { map[part.pattern[0]] = part.type; return map; };\n/**\n * @hidden\n */\nexport var isInRange = function (candidate, min, max) { return (candidate === null || !((min && min > candidate) || (max && max < candidate))); };\n/**\n * @hidden\n */\nexport var invalidClasses = ['k-state-invalid'];\n/** @hidden */\nexport var wrapperClasses = ['k-widget', 'k-dateinput'];\n","import { addMonths, cloneDate, createDate, isEqual, getDate, lastDayOfMonth } from '@progress/kendo-date-math';\nimport { Mask } from './mask';\nimport { dateSymbolMap } from './../utils';\n/**\n * @hidden\n */\nvar KendoDate = /** @class */ (function () {\n function KendoDate(intlProvider, formatPlaceholder, format) {\n this.year = true;\n this.month = true;\n this.date = true;\n this.hours = true;\n this.minutes = true;\n this.seconds = true;\n this.milliseconds = true;\n this.leadingZero = null;\n this.typedMonthPart = '';\n this.knownParts = 'adHhmMsEy';\n this.symbols = {\n 'E': 'E',\n 'H': 'H',\n 'M': 'M',\n 'a': 'a',\n 'd': 'd',\n 'h': 'h',\n 'm': 'm',\n 's': 's',\n 'y': 'y'\n };\n this._value = getDate(new Date());\n this.intlProvider = intlProvider;\n this.formatPlaceholder = formatPlaceholder;\n this.format = format;\n this.monthNames = this.allFormatedMonths();\n }\n Object.defineProperty(KendoDate.prototype, \"intl\", {\n get: function () {\n return this.intlProvider();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(KendoDate.prototype, \"value\", {\n get: function () {\n return this._value;\n },\n enumerable: false,\n configurable: true\n });\n KendoDate.prototype.setValue = function (value) {\n if (!value) {\n this._value = getDate(new Date());\n this.modifyExisting(false);\n }\n else if (!isEqual(value, this._value)) {\n this._value = cloneDate(value);\n this.modifyExisting(true);\n }\n };\n KendoDate.prototype.hasValue = function () {\n var _this = this;\n var pred = function (a, p) { return a || p.type !== 'literal' && p.type !== 'dayperiod' && _this.getExisting(p.pattern[0]); };\n return this.intl.splitDateFormat(this.format).reduce(pred, false);\n };\n KendoDate.prototype.getDateObject = function () {\n for (var i = 0; i < this.knownParts.length; i++) {\n if (!this.getExisting(this.knownParts[i])) {\n return null;\n }\n }\n return cloneDate(this.value);\n };\n KendoDate.prototype.getTextAndFormat = function () {\n return this.merge(this.intl.formatDate(this.value, this.format), this.dateFormatString(this.value, this.format));\n };\n KendoDate.prototype.modifyExisting = function (value) {\n var sampleFormat = this.dateFormatString(this.value, this.format).symbols;\n for (var i = 0; i < sampleFormat.length; i++) {\n this.setExisting(sampleFormat[i], value);\n }\n };\n KendoDate.prototype.getExisting = function (symbol) {\n switch (symbol) {\n case 'y': return this.year;\n case 'M':\n case 'L': return this.month;\n case 'd': return this.date;\n case 'E': return this.date && this.month && this.year;\n case 'h':\n case 'H': return this.hours;\n case 'm': return this.minutes;\n case 's': return this.seconds;\n default: return true;\n }\n };\n KendoDate.prototype.setExisting = function (symbol, value) {\n switch (symbol) {\n case 'y':\n // allow 2/29 dates\n this.year = value;\n if (value === false) {\n this._value.setFullYear(2000);\n }\n break;\n case 'M':\n // make sure you can type 31 in the day part\n this.month = value;\n if (value === false) {\n this._value.setMonth(0);\n }\n break;\n case 'd':\n this.date = value;\n break;\n case 'h':\n case 'H':\n this.hours = value;\n break;\n case 'm':\n this.minutes = value;\n break;\n case 's':\n this.seconds = value;\n break;\n default: return;\n }\n };\n KendoDate.prototype.modifyPart = function (symbol, offset) {\n var newValue = cloneDate(this.value);\n switch (symbol) {\n case 'y':\n newValue.setFullYear(newValue.getFullYear() + offset);\n break;\n case 'M':\n newValue = addMonths(this.value, offset);\n break;\n case 'd':\n case 'E':\n newValue.setDate(newValue.getDate() + offset);\n break;\n case 'h':\n case 'H':\n newValue.setHours(newValue.getHours() + offset);\n break;\n case 'm':\n newValue.setMinutes(newValue.getMinutes() + offset);\n break;\n case 's':\n newValue.setSeconds(newValue.getSeconds() + offset);\n break;\n case 'a':\n newValue.setHours(newValue.getHours() + (12 * offset));\n break;\n default: break;\n }\n this.setExisting(symbol, true);\n this._value = newValue;\n };\n KendoDate.prototype.parsePart = function (symbol, currentChar) {\n var _a;\n this.resetLeadingZero();\n if (!currentChar) {\n this.setExisting(symbol, false);\n return { value: null };\n }\n var baseDate = this.intl.formatDate(this.value, this.format);\n var dateParts = this.dateFormatString(this.value, this.format);\n var baseFormat = dateParts.symbols;\n var replaced = false;\n var prefix = '';\n var current = '';\n var suffix = '';\n for (var i = 0; i < baseDate.length; i++) {\n if (baseFormat[i] === symbol) {\n current += this.getExisting(symbol) ? baseDate[i] : '0';\n replaced = true;\n }\n else if (!replaced) {\n prefix += baseDate[i];\n }\n else {\n suffix += baseDate[i];\n }\n }\n var parsedDate = null;\n var month = this.matchMonth(currentChar);\n while (current.length > 0 && current.charAt(0) === '0') {\n current = current.slice(1);\n }\n if (current.length >= 4) {\n current = '';\n }\n for (var i = 0; i < 2; i++) {\n var middle = current + currentChar;\n var middleNumber = parseInt(middle, 10);\n parsedDate = this.intl.parseDate(prefix + middle + suffix, this.format);\n if (!parsedDate && !isNaN(middleNumber) && !isNaN(parseInt(currentChar, 10))) {\n if (symbol === 'M' && !month) {\n var monthNumber = middleNumber - 1;\n if (monthNumber > -1 && monthNumber < 12) {\n parsedDate = cloneDate(this.value);\n parsedDate.setMonth(monthNumber);\n if (parsedDate.getMonth() !== monthNumber) {\n parsedDate = lastDayOfMonth(addMonths(parsedDate, -1));\n }\n }\n }\n if (symbol === 'y') {\n parsedDate = createDate(parseInt(middle, 10), this.month ? this.value.getMonth() : 0, this.date ? this.value.getDate() : 1, this.hours ? this.value.getHours() : 0, this.minutes ? this.value.getMinutes() : 0, this.seconds ? this.value.getSeconds() : 0, this.milliseconds ? this.value.getMilliseconds() : 0);\n if (this.date && parsedDate.getDate() !== this.value.getDate()) {\n parsedDate = lastDayOfMonth(addMonths(parsedDate, -1));\n }\n }\n }\n if (parsedDate) {\n this._value = parsedDate;\n this.setExisting(symbol, true);\n return { value: this.value };\n }\n current = '';\n }\n if (month) {\n parsedDate = this.intl.parseDate(prefix + month + suffix, this.format);\n if (parsedDate) {\n this._value = parsedDate;\n this.setExisting(symbol, true);\n return { value: this.value };\n }\n }\n if (currentChar === '0') {\n this.leadingZero = !this.isAbbrMonth(dateParts.partMap, symbol) ? (_a = {}, _a[symbol] = true, _a) : null;\n this.setExisting(symbol, false);\n }\n return { value: null };\n };\n KendoDate.prototype.symbolMap = function (symbol) {\n return (this.intl.splitDateFormat(this.format)).reduce(dateSymbolMap, {})[symbol];\n };\n KendoDate.prototype.resetLeadingZero = function () {\n var hasLeadingZero = this.leadingZero !== null;\n this.leadingZero = null;\n return hasLeadingZero;\n };\n KendoDate.prototype.isAbbrMonth = function (parts, symbol) {\n var pattern = this.partPattern(parts, symbol);\n return pattern.type === 'month' && pattern.names;\n };\n KendoDate.prototype.partPattern = function (parts, symbol) {\n return parts.filter(function (part) { return part.pattern.indexOf(symbol) !== -1; })[0];\n };\n KendoDate.prototype.matchMonth = function (typedChar) {\n this.typedMonthPart += typedChar.toLowerCase();\n if (this.monthNames.length === 0) {\n return '';\n }\n while (this.typedMonthPart.length > 0) {\n for (var i = 0; i < this.monthNames.length; i++) {\n if (this.monthNames[i].toLowerCase().indexOf(this.typedMonthPart) === 0) {\n return this.monthNames[i];\n }\n }\n var monthAsNum = parseInt(this.typedMonthPart, 10);\n /* ensure they exact match */\n if (monthAsNum >= 1 && monthAsNum <= 12 && monthAsNum.toString() === this.typedMonthPart) {\n return this.monthNames[monthAsNum - 1];\n }\n this.typedMonthPart = this.typedMonthPart.substring(1, this.typedMonthPart.length);\n }\n return '';\n };\n KendoDate.prototype.allFormatedMonths = function () {\n var dateFormatParts = this.intl.splitDateFormat(this.format);\n for (var i = 0; i < dateFormatParts.length; i++) {\n if (dateFormatParts[i].type === 'month' && dateFormatParts[i].names) {\n return this.intl.dateFormatNames(dateFormatParts[i].names);\n }\n }\n return [];\n };\n KendoDate.prototype.dateFormatString = function (date, format) {\n var dateFormatParts = this.intl.splitDateFormat(format);\n var parts = [];\n var partMap = [];\n for (var i = 0; i < dateFormatParts.length; i++) {\n var partLength = this.intl.formatDate(date, { pattern: dateFormatParts[i].pattern }).length;\n while (partLength > 0) {\n parts.push(this.symbols[dateFormatParts[i].pattern[0]] || '_');\n partMap.push(dateFormatParts[i]);\n partLength--;\n }\n }\n var returnValue = new Mask();\n returnValue.symbols = parts.join('');\n returnValue.partMap = partMap;\n return returnValue;\n };\n KendoDate.prototype.merge = function (text, mask) {\n // Important: right to left.\n var resultText = '';\n var resultFormat = '';\n var format = mask.symbols;\n for (var r = format.length - 1; r >= 0; r--) {\n if (this.knownParts.indexOf(format[r]) === -1 || this.getExisting(format[r])) {\n resultText = text[r] + resultText;\n resultFormat = format[r] + resultFormat;\n }\n else {\n var currentSymbol = format[r];\n while (r >= 0 && currentSymbol === format[r]) {\n r--;\n }\n r++;\n if (this.leadingZero && this.leadingZero[currentSymbol]) {\n resultText = '0' + resultText;\n }\n else {\n resultText = this.dateFieldName(mask.partMap[r]) + resultText;\n }\n while (resultFormat.length < resultText.length) {\n resultFormat = format[r] + resultFormat;\n }\n }\n }\n return { text: resultText, format: resultFormat };\n };\n KendoDate.prototype.dateFieldName = function (part) {\n var formatPlaceholder = this.formatPlaceholder || 'wide';\n if (formatPlaceholder[part.type]) {\n return formatPlaceholder[part.type];\n }\n if (formatPlaceholder === 'formatPattern') {\n return part.pattern;\n }\n return this.intl.dateFieldName(Object.assign(part, { nameType: formatPlaceholder }));\n };\n return KendoDate;\n}());\nexport { KendoDate };\n","/**\n * @hidden\n */\nexport var TIME_PART = {\n dayperiod: 'dayperiod',\n hour: 'hour',\n millisecond: 'millisecond',\n minute: 'minute',\n second: 'second'\n};\n","import { cloneDate, addDays } from '@progress/kendo-date-math';\nimport { TIME_PART } from './models/TimePart';\nimport { MIDNIGHT_DATE, setTime } from '../utils';\nvar setter = function (method) { return function (date, value) {\n var clone = cloneDate(date);\n clone[method](value);\n return clone;\n}; };\nvar defaultGetters = [\n { type: TIME_PART.hour, getter: function (value) { return value.getHours(); } },\n { type: TIME_PART.minute, getter: function (value) { return value.getMinutes(); } },\n { type: TIME_PART.second, getter: function (value) { return value.getSeconds(); } },\n { type: TIME_PART.millisecond, getter: function (value) { return value.getMilliseconds(); } }\n];\nvar left = function (getter) { return function (origin, _) { return getter(origin); }; };\nvar right = function (getter) { return function (_, candidate) { return getter(candidate); }; };\nvar convertToObject = function (parts) { return parts.reduce(function (obj, p) { obj[p.type] = p.type; return obj; }, {}); };\nvar getterByPart = function (parts) { return function (g) { return parts[g.type] ? right(g.getter) : left(g.getter); }; };\nvar gettersFactory = function (getters) { return function (parts) { return (getters.map(getterByPart(convertToObject(parts)))); }; };\nvar snapValue = function (getter, step, min, type) { return function (date) {\n var value = getter(date);\n var minValue = getter(min);\n if (type === 'hour') {\n return value - ((value - minValue) % step);\n }\n if (date.getTime() <= min.getTime()\n && value !== 0\n && value <= minValue) {\n return (Math.ceil(value / step)) * step;\n }\n return value - (value % step);\n}; };\nvar snappersFactory = function (getters) { return function (steps, min) { return (getters.map(function (g) {\n var step = Math.floor(steps[g.type]);\n return step ? snapValue(g.getter, step, min, g.type) : g.getter;\n})); }; };\n/**\n * @hidden\n */\nexport var generateGetters = gettersFactory(defaultGetters);\n/**\n * @hidden\n */\nexport var generateSnappers = snappersFactory(defaultGetters);\n/**\n * @hidden\n */\nexport var valueMerger = function (getters) { return function (origin, candidate) {\n origin.setHours.apply(origin, getters.map(function (g) { return g(origin, candidate); }));\n return origin;\n}; };\n/**\n * @hidden\n */\nexport var snapTime = function (snappers) { return function (candidate) {\n var date = cloneDate(candidate);\n date.setHours.apply(date, snappers.map(function (s) { return s(date); }));\n return date;\n}; };\n/**\n * @hidden\n */\nexport var setHours = setter('setHours');\n/**\n * @hidden\n */\nexport var setMinutes = setter('setMinutes');\n/**\n * @hidden\n */\nexport var setSeconds = setter('setSeconds');\n/**\n * @hidden\n */\nexport var getNow = function () { return new Date(); };\n/**\n * @hidden\n */\nexport var range = function (start, end, step) {\n if (step === void 0) { step = 1; }\n var result = [];\n for (var i = start; i < end; i = i + step) {\n result.push(i);\n }\n return result;\n};\nvar normalizeTimes = function (candidate, min, max) { return ({\n candidateValue: setTime(MIDNIGHT_DATE, candidate),\n maxValue: addDays(setTime(MIDNIGHT_DATE, max), min.getHours() < max.getHours() ? 0 : 1),\n minValue: setTime(MIDNIGHT_DATE, min)\n}); };\n/**\n * @hidden\n */\nexport var timeInRange = function (candidate, min, max) {\n if (!candidate || !min || !max) {\n return candidate;\n }\n var _a = normalizeTimes(candidate, min, max), candidateValue = _a.candidateValue, minValue = _a.minValue, maxValue = _a.maxValue;\n if (candidateValue < minValue) {\n return setTime(candidate, min);\n }\n if (candidateValue > maxValue) {\n return setTime(candidate, max);\n }\n return candidate;\n};\n/**\n * @hidden\n */\nexport var isInTimeRange = function (candidate, min, max) {\n if (!candidate || !min || !max) {\n return true;\n }\n var _a = normalizeTimes(candidate, min, max), candidateValue = _a.candidateValue, minValue = _a.minValue, maxValue = _a.maxValue;\n return minValue <= candidateValue && candidateValue <= maxValue;\n};\n/**\n * @hidden\n */\nexport var isInRange = function (candidate, min, max) {\n if (candidate === null) {\n return true;\n }\n var _a = normalizeTimes(candidate, min, max), candidateValue = _a.candidateValue, minValue = _a.minValue, maxValue = _a.maxValue;\n return minValue <= candidateValue && candidateValue <= maxValue;\n};\n/**\n * @hidden\n */\nexport var isSmallerThanMin = function (val, min) {\n if (val === null || min === null) {\n return false;\n }\n var normalizedValue = setTime(MIDNIGHT_DATE, val);\n var normalizedMin = setTime(MIDNIGHT_DATE, min);\n return normalizedValue.getTime() < normalizedMin.getHours();\n};\n/**\n * @hidden\n */\nexport var isBiggerThanMax = function (val, max) {\n if (val === null || max === null) {\n return false;\n }\n var normalizedValue = setTime(MIDNIGHT_DATE, val);\n var normalizedMax = setTime(MIDNIGHT_DATE, max);\n return normalizedMax.getTime() < normalizedValue.getHours();\n};\n","var __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nvar inject = allVue.inject;\nimport { isEqual, cloneDate } from '@progress/kendo-date-math';\nimport { provideIntlService, provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { KendoDate } from './models';\nimport { guid, noop, validatePackage, canUseDOM } from '@progress/kendo-vue-common';\nimport { packageMetadata } from '../package-metadata';\nimport { approximateStringMatching, defaultFormat, defaultFormatPlaceholder, isInRange, wrapperClasses } from './utils';\nimport { MAX_DATE, MIN_DATE } from './../utils';\nimport { messages, increaseValue, decreaseValue } from './../messages';\nimport { isInTimeRange } from '../timepicker/utils';\nimport { MIN_TIME, MAX_TIME } from '../defaults';\nimport { FloatingLabel } from '@progress/kendo-vue-labels';\nvar VALIDATION_MESSAGE = 'Please enter a valid value!';\nvar DateInput = {\n name: 'DateInput',\n model: {\n event: 'changemodel'\n },\n inject: {\n kendoIntlService: {\n default: null\n },\n kendoLocalizationService: {\n default: null\n }\n },\n // @ts-ignore\n emits: {\n 'change': null,\n 'changemodel': null,\n 'update:modelValue': null,\n 'focus': null,\n 'blur': null\n },\n props: {\n modelValue: Date,\n value: Date,\n defaultValue: Date,\n format: {\n type: [String, Object],\n default: function _default() {\n return defaultFormat;\n }\n },\n formatPlaceholder: {\n type: [String, Object],\n default: function _default() {\n return defaultFormatPlaceholder;\n }\n },\n tabIndex: Number,\n title: String,\n steps: Object,\n placeholder: String,\n max: {\n type: Date,\n default: function _default() {\n return cloneDate(MAX_DATE);\n }\n },\n min: {\n type: Date,\n default: function _default() {\n return cloneDate(MIN_DATE);\n }\n },\n maxTime: {\n type: Date,\n default: function _default() {\n return cloneDate(MAX_TIME);\n }\n },\n minTime: {\n type: Date,\n default: function _default() {\n return cloneDate(MIN_TIME);\n }\n },\n disabled: {\n type: Boolean,\n default: false\n },\n spinners: {\n type: Boolean,\n default: false\n },\n name: String,\n dir: String,\n label: String,\n id: String,\n validationMessage: {\n type: String,\n default: VALIDATION_MESSAGE\n },\n required: {\n type: Boolean,\n default: false\n },\n validityStyles: {\n type: Boolean,\n default: true\n },\n validate: Boolean,\n valid: {\n type: Boolean,\n default: undefined\n }\n },\n data: function data() {\n return {\n kendoDate: null,\n currentFormat: undefined,\n valueDuringOnChange: undefined,\n hasMounted: false,\n isEmpty: undefined,\n lastSelectedSymbol: undefined,\n isFocused: false\n };\n },\n created: function created() {\n validatePackage(packageMetadata);\n var _a = this.$props,\n formatPlaceholder = _a.formatPlaceholder,\n format = _a.format,\n value = _a.value,\n defaultValue = _a.defaultValue;\n this.kendoDate = new KendoDate(this.intl, formatPlaceholder, format);\n this.kendoDate.setValue(null);\n this._emptyText = this.kendoDate.getTextAndFormat().text;\n this.kendoDate.setValue(value || defaultValue || null);\n this._element = null;\n this._inputId = guid();\n },\n computed: {\n computedValue: {\n get: function get() {\n if (this.$data.valueDuringOnChange !== undefined) {\n return this.$data.valueDuringOnChange;\n }\n\n return this.kendoDate && this.kendoDate.getDateObject();\n }\n },\n wrapperClassNames: {\n get: function get() {\n var isValid = !this.$data.hasMounted || !this.$props.validityStyles || this.validity().valid;\n var disabled = this.$props.disabled;\n return {\n 'k-dateinput-wrap': true,\n 'k-state-disabled': disabled,\n 'k-state-invalid': !isValid && isValid !== undefined,\n 'k-state-focused': this.isFocused,\n 'k-rtl': this.$props.dir === 'rtl'\n };\n }\n }\n },\n methods: {\n selection: function selection() {\n var returnValue = {\n start: 0,\n end: 0\n };\n var element = this.element();\n\n if (element !== null && element.selectionStart !== undefined) {\n returnValue = {\n start: element.selectionStart,\n end: element.selectionEnd\n };\n }\n\n return returnValue;\n },\n element: function element() {\n return this._element;\n },\n focus: function focus(e) {\n if (this._element) {\n this._element.focus(e);\n }\n },\n handleFocus: function handleFocus(e) {\n this.$data.isFocused = true;\n this.$emit('focus', e);\n },\n handleBlur: function handleBlur(e) {\n this.$data.isFocused = false;\n this.$emit('blur', e);\n },\n intl: function intl() {\n return provideIntlService(this);\n },\n setValidity: function setValidity() {\n var element = this.element();\n\n if (element && element.setCustomValidity) {\n element.setCustomValidity(this.validity().valid ? '' : this.$props.validationMessage);\n }\n },\n spinnersMouseDown: function spinnersMouseDown(event) {\n var element = this.element();\n /* do not steal focus from input when changing value with spinners */\n\n event.preventDefault();\n /* manually focus the input in case the user clicks the spinners first */\n\n if (element && canUseDOM && document.activeElement !== element) {\n element.focus({\n preventScroll: true\n });\n }\n },\n elementChange: function elementChange(event) {\n var element = this.element();\n\n if (!element || !this.kendoDate) {\n return;\n }\n\n var _a = this.kendoDate.getTextAndFormat(),\n text = _a.text,\n currentFormat = _a.format;\n\n this.$data.currentFormat = currentFormat;\n var dateBeforeChange = this.computedValue;\n var diff = approximateStringMatching(text, this.$data.currentFormat, element.value, this.selection().start);\n var navigationOnly = diff.length === 1 && diff[0][1] === '_';\n\n if (!navigationOnly) {\n for (var i = 0; i < diff.length; i++) {\n this.kendoDate.parsePart(diff[i][0], diff[i][1]);\n }\n }\n\n if (diff.length && diff[0][0] !== '_') {\n this.setSelection(this.selectionBySymbol(diff[0][0]));\n }\n\n if (navigationOnly) {\n this.switchDateSegment(1);\n }\n\n this.triggerChange(event, dateBeforeChange);\n },\n elementClick: function elementClick(_) {\n this.setSelection(this.selectionByIndex(this.selection().start));\n },\n wheel: function wheel(event) {\n var element = this.element();\n\n if (canUseDOM && document.activeElement !== element) {\n return;\n }\n\n if (event.deltaY < 0) {\n event.preventDefault();\n this.increasePart(event);\n }\n\n if (event.deltaY > 0) {\n event.preventDefault();\n this.decreasePart(event);\n }\n },\n increasePart: function increasePart(event) {\n event.preventDefault();\n this.modifyDateSegmentValue(1, event);\n },\n decreasePart: function decreasePart(event) {\n event.preventDefault();\n this.modifyDateSegmentValue(-1, event);\n },\n elementKeyDown: function elementKeyDown(event) {\n if (event.altKey) {\n return;\n }\n\n switch (event.keyCode) {\n case 37:\n /*\n * Key: `Left Arrow`\n * Action: Switches to previous logical* segment.\n * (*) https://www.w3.org/International/articles/inline-bidi-markup/uba-basics\n */\n this.switchDateSegment(-1);\n break;\n\n case 38:\n /*\n * Key: `Up Arrow`\n * Action: Increases the currently selected segment value.\n */\n this.modifyDateSegmentValue(1, event);\n break;\n\n case 39:\n /*\n * Key: `Right Arrow`\n * Action: Switches to the next logical segment.\n */\n this.switchDateSegment(1);\n break;\n\n case 40:\n /*\n * Key: `Down Arrow`\n * Action: Decreases the currently selected segment value.\n */\n this.modifyDateSegmentValue(-1, event);\n break;\n\n default:\n /*\n * Key: any\n * Action: Does not prevent the default behavior.\n */\n return;\n }\n\n event.preventDefault();\n },\n setSelection: function setSelection(selection) {\n var element = this.element();\n this.$data.lastSelectedSymbol = this.$data.currentFormat[selection.start];\n window.requestAnimationFrame(function () {\n if (element && canUseDOM && document.activeElement === element) {\n element.setSelectionRange(selection.start, selection.end);\n }\n });\n },\n triggerChange: function triggerChange(event, oldValue) {\n this.$data.valueDuringOnChange = this.computedValue;\n\n if (!isEqual(oldValue, this.computedValue)) {\n // isEqual works with null\n this.$emit('change', {\n event: event,\n value: this.computedValue,\n component: this,\n target: {\n name: this.$props.name,\n value: this.$data.valueDuringOnChange,\n valueAsDate: this.$data.valueDuringOnChange\n },\n validity: this.validity()\n });\n this.$emit('changemodel', this.computedValue);\n this.$emit('update:modelValue', this.computedValue);\n }\n\n this.$data.valueDuringOnChange = undefined;\n },\n selectionBySymbol: function selectionBySymbol(symbol) {\n var start = -1;\n var end = 0;\n\n for (var i = 0; i < this.$data.currentFormat.length; i++) {\n if (this.$data.currentFormat[i] === symbol) {\n end = i + 1;\n\n if (start === -1) {\n start = i;\n }\n }\n }\n\n if (start < 0) {\n start = 0;\n }\n\n return {\n start: start,\n end: end\n };\n },\n selectionByIndex: function selectionByIndex(index) {\n var selection = {\n start: index,\n end: index\n };\n\n for (var i = index, j = index - 1; i < this.$data.currentFormat.length || j >= 0; i++, j--) {\n if (i < this.$data.currentFormat.length && this.$data.currentFormat[i] !== '_') {\n selection = this.selectionBySymbol(this.$data.currentFormat[i]);\n break;\n }\n\n if (j >= 0 && this.$data.currentFormat[j] !== '_') {\n selection = this.selectionBySymbol(this.$data.currentFormat[j]);\n break;\n }\n }\n\n return selection;\n },\n switchDateSegment: function switchDateSegment(offset) {\n var _a = this.selection(),\n selectionStart = _a.start,\n selectionEnd = _a.end;\n\n if (selectionStart < selectionEnd && this.$data.currentFormat[selectionStart] !== this.$data.currentFormat[selectionEnd - 1]) {\n this.setSelection(this.selectionByIndex(offset > 0 ? selectionStart : selectionEnd - 1));\n return;\n }\n\n var previousFormatSymbol = this.$data.currentFormat[selectionStart];\n var a = selectionStart + offset;\n\n while (a > 0 && a < this.$data.currentFormat.length) {\n if (this.$data.currentFormat[a] !== previousFormatSymbol && this.$data.currentFormat[a] !== '_') {\n break;\n }\n\n a += offset;\n }\n\n if (this.$data.currentFormat[a] === '_') {\n // no known symbol is found\n return;\n }\n\n var b = a;\n\n while (b >= 0 && b < this.$data.currentFormat.length) {\n if (this.$data.currentFormat[b] !== this.$data.currentFormat[a]) {\n break;\n }\n\n b += offset;\n }\n\n if (a > b && (b + 1 !== selectionStart || a + 1 !== selectionEnd)) {\n this.setSelection({\n start: b + 1,\n end: a + 1\n });\n } else if (a < b && (a !== selectionStart || b !== selectionEnd)) {\n this.setSelection({\n start: a,\n end: b\n });\n }\n },\n modifyDateSegmentValue: function modifyDateSegmentValue(offset, event) {\n if (!this.kendoDate) {\n return;\n }\n\n var oldValue = this.computedValue;\n var symbol = this.$data.currentFormat[this.selection().start];\n var currentStepSymbol = this.kendoDate.symbolMap(symbol);\n var step = ((this.$props.steps || {})[currentStepSymbol] || 1) * offset;\n this.kendoDate.modifyPart(symbol, step);\n this.setSelection(this.selectionBySymbol(symbol));\n this.triggerChange(event, oldValue);\n },\n validity: function validity() {\n var inRange = isInRange(this.computedValue, this.$props.min, this.$props.max) && isInTimeRange(this.computedValue, this.$props.minTime, this.$props.maxTime);\n var customError = this.$props.validationMessage !== undefined;\n var isValid = (!this.$props.required || this.computedValue !== null) && inRange;\n var valid = this.$props.valid !== undefined ? this.$props.valid : isValid;\n return {\n customError: customError,\n rangeOverflow: this.computedValue && this.$props.max.getTime() < this.computedValue.getTime() || false,\n rangeUnderflow: this.computedValue && this.computedValue.getTime() < this.$props.min.getTime() || false,\n valid: valid,\n valueMissing: this.computedValue === null\n };\n }\n },\n mounted: function mounted() {\n this._element = this.v3 ? this.inputRef : this.$refs.input;\n this.setValidity();\n this.$data.hasMounted = true;\n },\n updated: function updated() {\n if (this.$data.lastSelectedSymbol) {\n this.setSelection(this.selectionBySymbol(this.$data.lastSelectedSymbol));\n }\n\n this.setValidity();\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var inputRef = ref(null);\n var kendoIntlService = inject('kendoIntlService', {});\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n inputRef: inputRef,\n kendoIntlService: kendoIntlService,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var localizationService = provideLocalizationService(this);\n var _a = this.$props,\n formatPlaceholder = _a.formatPlaceholder,\n format = _a.format,\n value = _a.value,\n modelValue = _a.modelValue,\n min = _a.min,\n max = _a.max,\n name = _a.name,\n label = _a.label,\n id = _a.id,\n defaultValue = _a.defaultValue;\n this.kendoDate.format = format;\n this.kendoDate.formatPlaceholder = formatPlaceholder;\n var currentValue = value !== undefined ? value : modelValue;\n\n if (currentValue !== undefined && this.computedValue !== currentValue) {\n this.kendoDate.setValue(currentValue);\n }\n\n var _b = this.kendoDate.getTextAndFormat(),\n currentText = _b.text,\n currentFormat = _b.format;\n\n this.$data.currentFormat = currentFormat;\n this.$data.isEmpty = currentText === this._emptyText;\n var showPlaceHolder = this.$props.placeholder !== undefined && this.$data.isEmpty && !this.$data.isFocused;\n var textToDisplay = !showPlaceHolder ? currentText : null;\n var inputId = id || this._inputId;\n var isValid = !this.$props.validityStyles || this.validity().valid;\n\n var wrapperClassesInstance = __spreadArrays(wrapperClasses);\n\n if (this.$props.className) {\n wrapperClassesInstance.push(this.$props.className);\n }\n\n var dateinput = h(\"span\", {\n dir: this.$props.dir,\n attrs: this.v3 ? undefined : {\n dir: this.$props.dir\n },\n \"class\": wrapperClassesInstance.join(' ')\n }, [h(\"span\", {\n \"class\": this.wrapperClassNames\n }, [h(\"input\", {\n role: \"spinbutton\",\n attrs: this.v3 ? undefined : {\n role: \"spinbutton\",\n tabIndex: this.$props.tabIndex,\n disabled: this.$props.disabled,\n title: this.$props.title !== undefined ? this.$props.title : currentText,\n type: \"text\",\n spellcheck: false,\n autoComplete: \"off\",\n autoCorrect: \"off\",\n id: inputId,\n placeholder: this.$props.placeholder,\n name: name,\n \"aria-valuenow\": this.computedValue !== null ? this.computedValue.getTime() : undefined,\n \"aria-valuemin\": min === null ? undefined : min.getTime(),\n \"aria-valuemax\": max === null ? undefined : max.getTime(),\n \"aria-valuetext\": currentText\n },\n tabIndex: this.$props.tabIndex,\n disabled: this.$props.disabled,\n title: this.$props.title !== undefined ? this.$props.title : currentText,\n type: \"text\",\n spellcheck: false,\n autoComplete: \"off\",\n autoCorrect: \"off\",\n \"class\": \"k-input\",\n id: inputId,\n placeholder: this.$props.placeholder,\n onWheel: this.wheel,\n on: this.v3 ? undefined : {\n \"wheel\": this.wheel,\n \"click\": this.elementClick,\n \"input\": this.elementChange,\n \"keydown\": this.elementKeyDown,\n \"change\": noop,\n \"focusin\": this.handleFocus,\n \"focusout\": this.handleBlur\n },\n onClick: this.elementClick,\n onInput: this.elementChange,\n onKeydown: this.elementKeyDown,\n onChange: noop,\n onFocusin: this.handleFocus,\n onFocusout: this.handleBlur,\n value: this.v3 ? textToDisplay : null,\n domProps: this.v3 ? undefined : {\n \"value\": textToDisplay\n },\n name: name,\n \"aria-valuenow\": this.computedValue !== null ? this.computedValue.getTime() : undefined,\n \"aria-valuemin\": min === null ? undefined : min.getTime(),\n \"aria-valuemax\": max === null ? undefined : max.getTime(),\n \"aria-valuetext\": currentText,\n ref: this.v3 ? function (el) {\n _this.inputRef = el;\n } : 'input'\n }), this.$props.children, this.$props.spinners && h(\"span\", {\n \"class\": \"k-select\",\n onMousedown: this.spinnersMouseDown,\n on: this.v3 ? undefined : {\n \"mousedown\": this.spinnersMouseDown\n }\n }, [h(\"span\", {\n \"class\": \"k-link k-link-increase\",\n \"aria-label\": localizationService.toLanguageString(increaseValue, messages[increaseValue]),\n attrs: this.v3 ? undefined : {\n \"aria-label\": localizationService.toLanguageString(increaseValue, messages[increaseValue]),\n title: localizationService.toLanguageString(increaseValue, messages[increaseValue])\n },\n title: localizationService.toLanguageString(increaseValue, messages[increaseValue]),\n onClick: this.increasePart,\n on: this.v3 ? undefined : {\n \"click\": this.increasePart\n }\n }, [h(\"span\", {\n \"class\": \"k-icon k-i-arrow-n\"\n })]), h(\"span\", {\n \"class\": \"k-link k-link-decrease\",\n \"aria-label\": localizationService.toLanguageString(decreaseValue, messages[decreaseValue]),\n attrs: this.v3 ? undefined : {\n \"aria-label\": localizationService.toLanguageString(decreaseValue, messages[decreaseValue]),\n title: localizationService.toLanguageString(decreaseValue, messages[decreaseValue])\n },\n title: localizationService.toLanguageString(decreaseValue, messages[decreaseValue]),\n onClick: this.decreasePart,\n on: this.v3 ? undefined : {\n \"click\": this.decreasePart\n }\n }, [h(\"span\", {\n \"class\": \"k-icon k-i-arrow-s\"\n })])])])]);\n return label ? // @ts-ignore function children\n h(FloatingLabel, {\n label: label,\n attrs: this.v3 ? undefined : {\n label: label,\n editorId: inputId,\n editorValue: textToDisplay,\n editorPlaceholder: this.$props.placeholder,\n editorValid: isValid,\n editorDisabled: this.$props.disabled\n },\n editorId: inputId,\n editorValue: textToDisplay,\n editorPlaceholder: this.$props.placeholder,\n editorValid: isValid,\n editorDisabled: this.$props.disabled\n }, this.v3 ? function () {\n return [dateinput];\n } : [dateinput]) : dateinput;\n }\n};\nvar DateInputVue3 = DateInput;\nexport { DateInput, DateInputVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * Represents the default `toggleButton` component.\n */\n\nvar ToggleButton = {\n // @ts-ignore\n emits: {\n 'click': null,\n 'mousedown': null,\n 'mouseup': null\n },\n props: {\n id: String,\n tabIndex: {\n type: Number,\n default: undefined\n },\n title: String\n },\n methods: {\n handleMouseDown: function handleMouseDown(e) {\n this.$emit('mousedown', e);\n },\n handleMouseUp: function handleMouseUp(e) {\n this.$emit('mouseup', e);\n },\n handleClick: function handleClick(e) {\n this.$emit('click', e);\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n return h(\"a\", {\n id: this.$props.id,\n attrs: this.v3 ? undefined : {\n id: this.$props.id,\n role: \"button\",\n tabindex: this.$props.tabIndex,\n title: this.$props.title,\n \"aria-label\": this.$props.title\n },\n role: \"button\",\n \"class\": 'k-select',\n tabindex: this.$props.tabIndex,\n title: this.$props.title,\n \"aria-label\": this.$props.title,\n onMousedown: this.handleMouseDown,\n on: this.v3 ? undefined : {\n \"mousedown\": this.handleMouseDown,\n \"click\": this.handleClick,\n \"mouseup\": this.handleMouseUp\n },\n onClick: this.handleClick,\n onMouseup: this.handleMouseUp\n }, [defaultSlot]);\n }\n};\nvar ToggleButtonVue3 = ToggleButton;\nexport { ToggleButton, ToggleButtonVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * Represents the default `pickerWrap` component\n */\n\nvar PickerWrap = {\n props: {\n id: String\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n return h(\"span\", {\n id: this.$props.id,\n attrs: this.v3 ? undefined : {\n id: this.$props.id\n },\n \"class\": 'k-picker-wrap'\n }, [defaultSlot]);\n }\n};\nvar PickerWrapVue3 = PickerWrap;\nexport { PickerWrap, PickerWrapVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nvar inject = allVue.inject;\nimport { Popup } from '@progress/kendo-vue-popup';\nimport { getDate, cloneDate } from '@progress/kendo-date-math';\nimport { classNames, guid, Keys, templateRendering, getListeners, getTemplate, validatePackage, canUseDOM } from '@progress/kendo-vue-common';\nimport { packageMetadata } from '../package-metadata';\nimport { DateInput } from '../dateinput/DateInput';\nimport { Calendar } from '../calendar/components/Calendar';\nimport { MIN_DATE, MAX_DATE, setTime } from '../utils';\nimport { isInDateRange } from '../utils';\nimport { messages, toggleCalendar } from '../messages';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { ToggleButton } from './ToggleButton';\nimport { PickerWrap } from '../common/PickerWrap';\nimport { FloatingLabel } from '@progress/kendo-vue-labels'; // tslint:enable:max-line-length\n\nvar DatePicker = {\n name: 'DatePicker',\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n model: {\n event: 'changemodel'\n },\n // @ts-ignore\n emits: {\n 'change': null,\n 'changemodel': null,\n 'update:modelValue': null,\n 'iconclick': null,\n 'focus': null,\n 'blur': null\n },\n props: {\n defaultShow: {\n type: Boolean,\n default: false\n },\n modelValue: {\n type: Date,\n default: undefined\n },\n defaultValue: {\n type: Date,\n default: undefined\n },\n disabled: {\n type: Boolean,\n default: false\n },\n dateInput: {\n type: [String, Object, Function],\n default: function _default() {\n return undefined;\n }\n },\n calendar: {\n type: [String, Object, Function],\n default: function _default() {\n return undefined;\n }\n },\n toggleButton: {\n type: [String, Object, Function],\n default: function _default() {\n return undefined;\n }\n },\n label: String,\n placeholder: String,\n popup: {\n type: [String, Object, Function],\n default: function _default() {\n return undefined;\n }\n },\n pickerWrap: {\n type: [String, Object, Function],\n default: function _default() {\n return undefined;\n }\n },\n focusedDate: Date,\n format: {\n type: [Object, String],\n default: function _default() {\n return 'd';\n }\n },\n formatPlaceholder: [Object, String],\n id: String,\n max: {\n type: Date,\n default: function _default() {\n return cloneDate(MAX_DATE);\n }\n },\n min: {\n type: Date,\n default: function _default() {\n return cloneDate(MIN_DATE);\n }\n },\n name: String,\n popupSettings: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n show: {\n type: Boolean,\n default: undefined\n },\n tabIndex: {\n type: Number,\n default: 0\n },\n title: {\n type: String,\n default: function _default() {\n return '';\n }\n },\n value: Date,\n weekNumber: Boolean,\n width: [Number, String],\n validityStyles: {\n type: Boolean,\n default: true\n },\n validationMessage: String,\n required: Boolean,\n validate: Boolean,\n valid: {\n type: Boolean,\n default: undefined\n }\n },\n data: function data() {\n return {\n isFocused: false,\n currentValue: undefined,\n currentShow: undefined,\n valueDuringOnChange: undefined,\n showDuringOnChange: undefined,\n shouldFocusDateInput: false\n };\n },\n created: function created() {\n validatePackage(packageMetadata);\n this._popupId = guid();\n this._anchor = guid();\n this._wrapper = null;\n this._dateInput = null;\n this._calendar = null;\n this.$data.currentValue = this.$props.defaultValue;\n this.$data.currentShow = this.$props.defaultShow;\n },\n mounted: function mounted() {\n this._wrapper = this.v3 ? this.wrapperRef : this.$refs.wrapper;\n this._dateInput = this.v3 ? this.dateInputRef : this.$refs.dateInput;\n\n if (this.$refs.calendar || this.calendarRef) {\n this._calendar = this.v3 ? this.calendarRef : this.$refs.calendar;\n }\n\n if (this.computedShow) {\n // If defaultShow is true during the initial render, the popup is not aligned.\n this.$forceUpdate();\n }\n\n if (this._dateInput && this._dateInput.$el) {\n this._dateInput.$el.setAttribute('aria-haspopup', 'true'); // this._dateInput.$el.setAttribute('aria-expanded', `${this.$data.currentShow}`);\n\n }\n\n if (this.$el) {\n this.$el.setAttribute('aria-expanded', \"\" + this.computedShow);\n }\n },\n updated: function updated() {\n if (this.$el) {\n this.$el.setAttribute('aria-expanded', \"\" + this.computedShow);\n }\n\n if (this.$refs.calendar || this.calendarRef) {\n this._calendar = this.v3 ? this.calendarRef : this.$refs.calendar;\n }\n\n if (this.computedShow) {\n if (this._calendar && this._calendar.$el && !this._oldShow) {\n this._calendar.focus({\n preventScroll: true\n });\n }\n } else {\n if (this._dateInput && this._dateInput.$el && this.$data.shouldFocusDateInput) {\n this._dateInput.focus({\n preventScroll: true\n });\n }\n }\n\n this.$data.shouldFocusDateInput = false;\n },\n watch: {\n show: function show(_newShow, oldShow) {\n this._oldShow = oldShow;\n },\n currentShow: function currentShow(_newShow, oldShow) {\n this._oldShow = oldShow;\n }\n },\n computed: {\n computedValue: {\n get: function get() {\n var value = this.$data.valueDuringOnChange !== undefined ? this.$data.valueDuringOnChange : this.$props.value !== undefined ? this.$props.value : this.$props.modelValue !== undefined ? this.$props.modelValue : this.$data.currentValue;\n return value !== null ? cloneDate(value) : null;\n }\n },\n computedShow: {\n get: function get() {\n return this.$data.showDuringOnChange !== undefined ? this.$data.showDuringOnChange : this.$props.show !== undefined ? this.$props.show : this.$data.currentShow;\n }\n },\n wrapperClassNames: {\n get: function get() {\n var disabled = this.$props.disabled;\n return {\n 'k-state-disabled': disabled,\n 'k-state-focused': this.$data.isFocused\n };\n }\n }\n },\n methods: {\n focus: function focus() {\n if (this._dateInput) {\n this._dateInput.focus();\n }\n },\n handleFocus: function handleFocus(event) {\n this._oldShow = this.computedShow;\n\n if (this._wrapper) {\n this.$data.isFocused = true;\n }\n\n this.$emit('focus', event);\n },\n handleBlur: function handleBlur(event) {\n if (this._wrapper) {\n this.$data.isFocused = false;\n }\n\n this.createBlurTimeout();\n this.$emit('blur', event);\n },\n calendarBlur: function calendarBlur() {\n this.$emit('blur', event);\n clearTimeout(this._blurTimeout);\n this.createBlurTimeout();\n },\n calendarFocus: function calendarFocus() {\n this.$emit('focus', event);\n clearTimeout(this._blurTimeout);\n },\n createBlurTimeout: function createBlurTimeout() {\n var _this = this;\n\n this._blurTimeout = setTimeout(function () {\n if (_this._dateInput && canUseDOM && document.activeElement !== _this._dateInput._element) {\n _this.setShow(false);\n }\n }, 200);\n },\n validity: function validity() {\n var value = this.computedValue;\n var inRange = isInDateRange(value, this.$props.min, this.$props.max);\n var customError = this.$props.validationMessage !== undefined;\n var isValid = (!this.$props.required || value !== null) && inRange;\n var valid = this.$props.valid !== undefined ? this.$props.valid : isValid;\n return {\n customError: customError,\n rangeOverflow: value && this.$props.max.getTime() < value.getTime() || false,\n rangeUnderflow: value && value.getTime() < this.$props.min.getTime() || false,\n valid: valid,\n valueMissing: value === null\n };\n },\n nextValue: function nextValue(nextProps, nextState) {\n return nextProps.value !== undefined ? nextProps.value : nextState.value;\n },\n nextShow: function nextShow(nextProps, nextState) {\n return nextProps.show !== undefined ? nextProps.show : nextState.show;\n },\n setShow: function setShow(show) {\n if (this.computedShow === show) {\n return;\n }\n\n this.$data.currentShow = show;\n },\n mergeTime: function mergeTime(value) {\n return this.computedValue && value ? setTime(value, this.computedValue) : value;\n },\n handleInputValueChange: function handleInputValueChange(event) {\n this.handleValueChange(event.value, event);\n },\n handleCalendarValueChange: function handleCalendarValueChange(event) {\n var value = this.mergeTime(event.value);\n this.handleValueChange(value, event);\n },\n getDateInputText: function getDateInputText() {\n return this.computedValue ? true : this._dateInput ? this._dateInput._element.value : '';\n },\n handleValueChange: function handleValueChange(value, event) {\n this.$data.currentValue = cloneDate(value || undefined);\n this.$data.currentShow = false;\n this.$data.valueDuringOnChange = value;\n this.$data.showDuringOnChange = false;\n this.$data.shouldFocusDateInput = true;\n this.$emit('change', {\n event: event.event,\n value: this.computedValue,\n show: this.computedShow,\n component: this,\n target: {\n name: this.$props.name,\n value: this.computedValue,\n valueAsDate: this.computedValue\n },\n validity: this.validity()\n });\n this.$emit('changemodel', this.computedValue);\n this.$emit('update:modelValue', this.computedValue);\n this.$data.valueDuringOnChange = undefined;\n this.$data.showDuringOnChange = undefined;\n },\n handleIconClick: function handleIconClick(event) {\n event.stopPropagation();\n event.preventDefault();\n\n if (this.$props.disabled) {\n return;\n }\n\n this.$data.shouldFocusDateInput = true;\n this.setShow(!this.computedShow);\n this.$emit('iconclick', event);\n },\n handleIconMouseDown: function handleIconMouseDown(event) {\n event.stopPropagation();\n event.preventDefault();\n },\n handleKeyDown: function handleKeyDown(event) {\n var altKey = event.altKey,\n keyCode = event.keyCode;\n\n if (keyCode === Keys.tab && event.target !== this._dateInput._element) {\n event.preventDefault();\n this.$data.shouldFocusDateInput = true;\n this.setShow(false);\n return;\n }\n\n if (keyCode === Keys.esc) {\n this.$data.shouldFocusDateInput = true;\n this.setShow(false);\n return;\n }\n\n if (altKey && (keyCode === Keys.up || keyCode === Keys.down)) {\n event.preventDefault();\n event.stopPropagation();\n this.$data.shouldFocusDateInput = keyCode === Keys.up;\n this.setShow(keyCode === Keys.down);\n }\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var listRef = ref(null);\n var kendoAnchorRef = ref(null);\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n listRef: listRef,\n kendoAnchorRef: kendoAnchorRef,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var _a = this.$props,\n disabled = _a.disabled,\n tabIndex = _a.tabIndex,\n title = _a.title,\n id = _a.id,\n format = _a.format,\n formatPlaceholder = _a.formatPlaceholder,\n min = _a.min,\n max = _a.max,\n weekNumber = _a.weekNumber,\n focusedDate = _a.focusedDate,\n className = _a.className,\n width = _a.width,\n name = _a.name,\n validationMessage = _a.validationMessage,\n required = _a.required,\n validityStyles = _a.validityStyles;\n var _b = this.$props.popupSettings,\n popupClass = _b.popupClass,\n animate = _b.animate,\n appendTo = _b.appendTo;\n var show = this.computedShow;\n var value = this.computedValue;\n var sanitizedValue = value && getDate(value);\n var isValid = !this.$props.validityStyles || this.validity().valid;\n var rootClassName = classNames('k-widget k-datepicker', {\n 'k-state-invalid': !isValid\n }, className);\n var popupClassNames = classNames('k-calendar-container k-group k-reset', popupClass);\n var toggleButton = this.$props.toggleButton ? templateRendering.call(this, this.$props.toggleButton, getListeners.call(this)) : undefined;\n var toggleButtonDefaultRendering = // @ts-ignore function children\n h(ToggleButton, {\n onMousedown: this.handleIconMouseDown,\n on: this.v3 ? undefined : {\n \"mousedown\": this.handleIconMouseDown,\n \"click\": this.handleIconClick\n },\n onClick: this.handleIconClick,\n title: provideLocalizationService(this).toLanguageString(toggleCalendar, messages[toggleCalendar]),\n attrs: this.v3 ? undefined : {\n title: provideLocalizationService(this).toLanguageString(toggleCalendar, messages[toggleCalendar])\n },\n \"class\": \"k-select\"\n }, this.v3 ? function () {\n return [h(\"span\", {\n \"class\": \"k-icon k-i-calendar\"\n })];\n } : [h(\"span\", {\n \"class\": \"k-icon k-i-calendar\"\n })]);\n var toggleButtonRendering = getTemplate.call(this, {\n h: h,\n template: toggleButton,\n defaultRendering: toggleButtonDefaultRendering,\n defaultSlots: h(\"span\", {\n \"class\": \"k-icon k-i-calendar\"\n }),\n additionalListeners: {\n click: this.handleIconClick\n }\n });\n var dateInput = this.$props.dateInput ? templateRendering.call(this, this.$props.dateInput, getListeners.call(this)) : undefined;\n var dateInputDefaultRendering = // @ts-ignore\n h(DateInput, {\n ref: this.v3 ? function (el) {\n _this.dateInputRef = el;\n } : 'dateInput',\n placeholder: this.$props.placeholder,\n attrs: this.v3 ? undefined : {\n placeholder: this.$props.placeholder,\n disabled: disabled,\n format: format,\n formatPlaceholder: formatPlaceholder,\n id: id,\n max: max,\n min: min,\n name: name,\n required: required,\n tabIndex: !show ? tabIndex : -1,\n title: title,\n valid: this.validity().valid,\n validationMessage: validationMessage,\n validityStyles: validityStyles,\n value: value\n },\n disabled: disabled,\n format: format,\n formatPlaceholder: formatPlaceholder,\n id: id,\n max: max,\n min: min,\n name: name,\n onChange: this.handleInputValueChange,\n on: this.v3 ? undefined : {\n \"change\": this.handleInputValueChange\n },\n required: required,\n tabIndex: !show ? tabIndex : -1,\n title: title,\n valid: this.validity().valid,\n validationMessage: validationMessage,\n validityStyles: validityStyles,\n value: value\n });\n var dateInputRendering = getTemplate.call(this, {\n h: h,\n template: dateInput,\n defaultRendering: dateInputDefaultRendering\n });\n var pickerWrap = this.$props.pickerWrap ? templateRendering.call(this, this.$props.pickerWrap, getListeners.call(this)) : undefined;\n var pickerWrapDefaultRendering = // @ts-ignore function children\n h(PickerWrap, {\n ref: this.v3 ? function (el) {\n _this.wrapperRef = el;\n } : 'wrapper',\n \"class\": this.wrapperClassNames\n }, this.v3 ? function () {\n return [dateInputRendering, toggleButtonRendering];\n } : [dateInputRendering, toggleButtonRendering]);\n var pickerWrapRendering = getTemplate.call(this, {\n h: h,\n template: pickerWrap,\n defaultRendering: pickerWrapDefaultRendering,\n defaultSlots: [dateInputRendering, toggleButtonRendering]\n });\n var calendar = this.$props.calendar ? templateRendering.call(this, this.$props.calendar, getListeners.call(this)) : undefined;\n var calendarDefaultRendering = // @ts-ignore\n h(Calendar, {\n ref: this.v3 ? function (el) {\n _this.calendarRef = el;\n } : 'calendar',\n onKeydown: this.handleKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.handleKeyDown,\n \"focus\": this.calendarFocus,\n \"blur\": this.calendarBlur,\n \"change\": this.handleCalendarValueChange\n },\n onFocus: this.calendarFocus,\n onBlur: this.calendarBlur,\n disabled: disabled,\n attrs: this.v3 ? undefined : {\n disabled: disabled,\n value: sanitizedValue,\n min: min,\n max: max,\n weekNumber: weekNumber,\n focusedDate: focusedDate\n },\n value: sanitizedValue,\n min: min,\n max: max,\n weekNumber: weekNumber,\n focusedDate: focusedDate,\n onChange: this.handleCalendarValueChange\n });\n var calendarRendering = getTemplate.call(this, {\n h: h,\n template: calendar,\n defaultRendering: calendarDefaultRendering\n });\n var popup = this.$props.popup ? templateRendering.call(this, this.$props.popup, getListeners.call(this)) : undefined;\n var popupDefaultRendering = // @ts-ignore function children\n h(Popup, {\n show: show,\n attrs: this.v3 ? undefined : {\n show: show,\n anchor: this._anchor,\n id: this._popupId,\n anchorAlign: {\n horizontal: 'left',\n vertical: 'bottom'\n },\n popupAlign: {\n horizontal: 'left',\n vertical: 'top'\n },\n animate: animate,\n appendTo: appendTo\n },\n anchor: this._anchor,\n \"class\": popupClassNames,\n id: this._popupId,\n anchorAlign: {\n horizontal: 'left',\n vertical: 'bottom'\n },\n popupAlign: {\n horizontal: 'left',\n vertical: 'top'\n },\n animate: animate,\n appendTo: appendTo\n }, this.v3 ? function () {\n return [calendarRendering];\n } : [calendarRendering]);\n var popupRendering = getTemplate.call(this, {\n h: h,\n template: popup,\n defaultRendering: popupDefaultRendering,\n defaultSlots: calendarRendering\n });\n var datepicker = h(\"span\", {\n ref: this.v3 ? function (el) {\n _this.kendoAnchorRef = el;\n } : this._anchor,\n role: \"group\",\n attrs: this.v3 ? undefined : {\n role: \"group\",\n \"aria-expanded\": this.computedShow\n },\n \"aria-expanded\": this.computedShow,\n \"class\": rootClassName,\n onKeydown: this.handleKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.handleKeyDown,\n \"focusin\": this.handleFocus,\n \"focusout\": this.handleBlur\n },\n onFocusin: this.handleFocus,\n onFocusout: this.handleBlur\n }, [pickerWrapRendering, popupRendering]);\n return this.$props.label ? // @ts-ignore function children\n h(FloatingLabel, {\n label: this.$props.label,\n attrs: this.v3 ? undefined : {\n label: this.$props.label,\n editorId: id,\n editorValid: isValid,\n editorValue: this.getDateInputText(),\n editorPlaceholder: this.$props.placeholder,\n editorDisabled: this.$props.disabled\n },\n editorId: id,\n editorValid: isValid,\n editorValue: this.getDateInputText(),\n editorPlaceholder: this.$props.placeholder,\n editorDisabled: this.$props.disabled,\n style: {\n width: width\n }\n }, this.v3 ? function () {\n return [datepicker];\n } : [datepicker]) : datepicker;\n }\n};\nvar DatePickerVue3 = DatePicker;\nexport { DatePicker, DatePickerVue3 };","var __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\n/**\n * @hidden\n */\nvar update = function (arr, idx, value) { return (__spreadArrays(arr.slice(0, idx + 1), (arr.slice(idx + 1).map(function (x) { return x + value; })))); };\n/**\n * @hidden\n */\nvar RowHeightService = /** @class */ (function () {\n function RowHeightService(total, rowHeight, detailRowHeight) {\n if (total === void 0) { total = 0; }\n this.total = total;\n this.rowHeight = rowHeight;\n this.detailRowHeight = detailRowHeight;\n this.offsets = [];\n this.heights = [];\n var agg = 0;\n for (var idx = 0; idx < total; idx++) {\n this.offsets.push(agg);\n agg += rowHeight;\n this.heights.push(rowHeight);\n }\n }\n RowHeightService.prototype.height = function (rowIndex) {\n return this.heights[rowIndex];\n };\n RowHeightService.prototype.expandDetail = function (rowIndex) {\n if (this.height(rowIndex) === this.rowHeight) {\n this.updateRowHeight(rowIndex, this.detailRowHeight);\n }\n };\n RowHeightService.prototype.collapseDetail = function (rowIndex) {\n if (this.height(rowIndex) > this.rowHeight) {\n this.updateRowHeight(rowIndex, this.detailRowHeight * -1);\n }\n };\n RowHeightService.prototype.index = function (position) {\n for (var i = 0; i < this.offsets.length; i++) {\n if (position === this.offsets[i]) {\n return i;\n }\n if (position < this.offsets[i]) {\n return i - 1;\n }\n }\n return this.total - 1;\n };\n RowHeightService.prototype.offset = function (rowIndex) {\n return this.offsets[rowIndex];\n };\n RowHeightService.prototype.totalHeight = function () {\n return this.heights.reduce(function (prev, curr) { return prev + curr; }, 0);\n };\n RowHeightService.prototype.updateRowHeight = function (rowIndex, value) {\n this.heights[rowIndex] += value;\n this.offsets = update(this.offsets, rowIndex, value);\n };\n return RowHeightService;\n}());\nexport { RowHeightService };\n","var normalize = function (x) { return Math.max(x, 0); };\n/**\n * @hidden\n */\nvar ScrollAction = /** @class */ (function () {\n function ScrollAction(offset) {\n this.offset = offset;\n }\n return ScrollAction;\n}());\nexport { ScrollAction };\n/**\n * @hidden\n */\nvar PageAction = /** @class */ (function () {\n function PageAction(skip) {\n this.skip = skip;\n }\n return PageAction;\n}());\nexport { PageAction };\n/**\n * @hidden\n */\nvar ScrollerService = /** @class */ (function () {\n function ScrollerService(onScrollAction, onPageAction) {\n this.onScrollAction = onScrollAction;\n this.onPageAction = onPageAction;\n this.firstLoaded = 0;\n this.bottomOffset = 0;\n this.topOffset = 0;\n }\n ScrollerService.prototype.create = function (rowHeightService, skip, take, total, topOffset, bottomOffset, direction) {\n if (topOffset === void 0) { topOffset = 0; }\n if (bottomOffset === void 0) { bottomOffset = 0; }\n if (direction === void 0) { direction = 'vertical'; }\n this.rowHeightService = rowHeightService;\n this.firstLoaded = skip;\n this.lastLoaded = skip + take;\n this.take = take;\n this.total = total;\n this.lastScrollTop = 0;\n this.topOffset = topOffset;\n this.bottomOffset = bottomOffset;\n this.direction = direction;\n var offsetBufferRows = this.rowsForHeight(topOffset);\n var skipWithOffset = normalize(skip - offsetBufferRows);\n this.onScrollAction(new ScrollAction(this.rowOffset(skipWithOffset)));\n this.onPageAction(new PageAction(skipWithOffset));\n };\n ScrollerService.prototype.onScroll = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollTop = _a.scrollTop, offsetHeight = _a.offsetHeight, offsetWidth = _a.offsetWidth;\n var scrollPosition = this.direction === 'vertical' ? scrollTop : scrollLeft;\n var offsetSize = this.direction === 'vertical' ? offsetHeight : offsetWidth;\n if (this.lastScrollTop === scrollPosition) {\n return;\n }\n var up = this.lastScrollTop >= scrollPosition;\n this.lastScrollTop = scrollPosition;\n var firstItemIndex = this.rowHeightService.index(normalize(scrollPosition - this.topOffset));\n var lastItemIndex = this.rowHeightService.index(normalize(scrollPosition + offsetSize - this.bottomOffset));\n if (!up && lastItemIndex >= this.lastLoaded && this.lastLoaded < this.total) {\n this.firstLoaded = firstItemIndex;\n this.onScrollAction(new ScrollAction(this.rowOffset(firstItemIndex)));\n this.lastLoaded = Math.min(this.firstLoaded + this.take, this.total);\n this.onPageAction(new PageAction(this.firstLoaded));\n }\n if (up && firstItemIndex <= this.firstLoaded) {\n var nonVisibleBuffer = Math.floor(this.take * 0.3);\n this.firstLoaded = normalize(firstItemIndex - nonVisibleBuffer);\n this.onScrollAction(new ScrollAction(this.rowOffset(this.firstLoaded)));\n this.lastLoaded = Math.min(this.firstLoaded + this.take, this.total);\n this.onPageAction(new PageAction(this.firstLoaded));\n }\n };\n ScrollerService.prototype.rowOffset = function (index) {\n return this.rowHeightService.offset(index) + this.topOffset;\n };\n ScrollerService.prototype.rowsForHeight = function (height) {\n return Math.ceil(height / this.rowHeightService.height(0));\n };\n return ScrollerService;\n}());\nexport { ScrollerService };\n","var _a, _b; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar inject = allVue.inject;\nimport { cloneDate } from '@progress/kendo-date-math';\nimport { canUseDOM, Keys, noop } from '@progress/kendo-vue-common';\nimport { provideIntlService } from '@progress/kendo-vue-intl';\nimport { Virtualization } from '../virtualization/Virtualization';\nimport { TIME_PART } from './models';\nimport { SecondsService, MinutesService, HoursService, DayPeriodService, DOMService } from './services';\nimport { MAX_TIME, MIDNIGHT_DATE } from '../utils';\nvar SCROLL_THRESHOLD = 2; // < 2px threshold\n\nvar SNAP_THRESHOLD = 0.05; // % of the item height\n\nvar SKIP = 0;\nvar getters = (_a = {}, _a[Keys.end] = function (data, _) {\n return data[data.length - 1];\n}, _a[Keys.home] = function (data, _) {\n return data[0];\n}, _a[Keys.up] = function (data, index) {\n return data[index - 1];\n}, _a[Keys.down] = function (data, index) {\n return data[index + 1];\n}, _a);\nvar services = (_b = {}, _b[TIME_PART.dayperiod] = DayPeriodService, _b[TIME_PART.hour] = HoursService, _b[TIME_PART.minute] = MinutesService, _b[TIME_PART.second] = SecondsService, _b);\nvar TimeList = {\n name: 'KendoTimeList',\n // @ts-ignore\n emits: {\n 'change': null,\n 'focus': null,\n 'blur': null\n },\n props: {\n id: Number,\n boundRange: {\n type: Boolean,\n default: false\n },\n max: {\n type: Date,\n default: function _default() {\n return MAX_TIME;\n }\n },\n min: {\n type: Date,\n default: function _default() {\n return MIDNIGHT_DATE;\n }\n },\n part: Object,\n step: {\n type: Number,\n default: 1\n },\n value: Date,\n smoothScroll: {\n type: Boolean,\n default: true\n }\n },\n inject: {\n kendoIntlService: {\n default: null\n }\n },\n data: function data() {\n return {\n animateToIndex: false\n };\n },\n created: function created() {\n this.topOffset = undefined;\n this.dom = new DOMService();\n },\n computed: {\n animate: function animate() {\n return Boolean(this.$props.smoothScroll && this.animateToIndex);\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n this.virtualization = this.$refs.virtualization; // Async calculation of height to avoid animation cancellation\n\n Promise.resolve().then(function () {\n if (!_this.$el) {\n return;\n } // @ts-ignore\n\n\n _this.dom.calculateHeights(_this.$el);\n\n _this.$forceUpdate();\n });\n },\n updated: function updated() {\n if (!this.$refs.virtualization) {\n return;\n }\n\n this.virtualization = this.$refs.virtualization;\n var index = this.service.selectedIndex(this.$props.value);\n this.virtualization[this.animate ? 'animateToIndex' : 'scrollToIndex'](index);\n this.animateToIndex = true;\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoIntlService = inject('kendoIntlService', {});\n return {\n v3: v3,\n kendoIntlService: kendoIntlService\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this2 = this;\n\n var h = gh || createElement;\n\n if (!this.$props.part.type || !services[this.$props.part.type]) {\n return;\n }\n\n this.calculateHeights();\n this.intl = provideIntlService(this);\n this.service = new services[this.$props.part.type](this.intl);\n this.configureServices();\n var data = this.service.data(this.$props.value);\n var transform = 'translateY(' + this.topOffset + 'px)';\n var total = this.service.total(this.$props.value);\n\n var list = function list() {\n return h(\"ul\", {\n style: {\n transform: transform,\n msTransform: transform\n },\n \"class\": \"k-reset\"\n }, [data.map(function (item, idx) {\n var _this = this;\n\n return h(\"li\", {\n key: idx,\n \"class\": \"k-item\",\n onClick: function onClick() {\n _this.handleChange(item);\n },\n on: this.v3 ? undefined : {\n \"click\": function onClick() {\n _this.handleChange(item);\n }\n }\n }, [h(\"span\", [item.text])]);\n }, this)]);\n };\n\n return h(\"div\", {\n \"class\": \"k-time-list\",\n id: String(this.$props.id || ''),\n attrs: this.v3 ? undefined : {\n id: String(this.$props.id || ''),\n tabIndex: this.$props.disabled ? -1 : 0\n },\n tabIndex: this.$props.disabled ? -1 : 0,\n onKeydown: this.handleKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.handleKeyDown,\n \"focusin\": this.handleFocus,\n \"focusout\": this.handleBlur,\n \"mouseover\": this.handleMouseOver\n },\n onFocusin: this.handleFocus,\n onFocusout: this.handleBlur,\n onMouseover: this.handleMouseOver\n }, [this.dom.didCalculate ? // @ts-ignore function children\n h(Virtualization, {\n bottomOffset: this.bottomOffset,\n attrs: this.v3 ? undefined : {\n bottomOffset: this.bottomOffset,\n itemHeight: this.itemHeight,\n maxScrollDifference: this.listHeight,\n role: \"presentation\",\n skip: SKIP,\n tabIndex: -1,\n take: total,\n topOffset: this.topOffset,\n total: total\n },\n \"class\": 'k-time-container',\n itemHeight: this.itemHeight,\n maxScrollDifference: this.listHeight,\n onScrollaction: this.handleScrollAction,\n on: this.v3 ? undefined : {\n \"scrollaction\": this.handleScrollAction\n },\n ref: 'virtualization',\n role: \"presentation\",\n skip: SKIP,\n tabIndex: -1,\n take: total,\n topOffset: this.topOffset,\n total: total\n }, this.v3 ? function () {\n return [list.call(_this2)];\n } : [list.call(_this2)]) : h(\"div\", {\n \"class\": \"k-time-container\"\n }, [list.call(this)])]);\n },\n methods: {\n focus: function focus(args) {\n var _this = this;\n\n Promise.resolve().then(function () {\n if (!_this.$el) {\n return;\n } // @ts-ignore\n\n\n _this.$el.focus(args);\n });\n },\n itemOffset: function itemOffset(scrollTop) {\n if (!this.virtualization) {\n return -1;\n }\n\n var valueIndex = this.service.selectedIndex(this.$props.value);\n var activeIndex = this.virtualization.activeIndex();\n var offset = this.virtualization.itemOffset(activeIndex);\n var distance = Math.abs(Math.ceil(scrollTop) - offset);\n\n if (valueIndex === activeIndex && distance < SCROLL_THRESHOLD) {\n return offset;\n }\n\n var scrollUp = valueIndex > activeIndex;\n var moveToNext = scrollUp && distance >= this.bottomThreshold || !scrollUp && distance > this.topThreshold;\n return moveToNext ? this.virtualization.itemOffset(activeIndex + 1) : offset;\n },\n calculateHeights: function calculateHeights() {\n if (!this.dom.didCalculate) {\n return;\n }\n\n this.itemHeight = this.dom.itemHeight;\n this.listHeight = this.dom.timeListHeight;\n this.topOffset = (this.listHeight - this.itemHeight) / 2;\n this.bottomOffset = this.listHeight - this.itemHeight;\n this.topThreshold = this.itemHeight * SNAP_THRESHOLD;\n this.bottomThreshold = this.itemHeight * (1 - SNAP_THRESHOLD);\n },\n configureServices: function configureServices(props) {\n var _a = props || this.$props,\n min = _a.min,\n max = _a.max,\n value = _a.value;\n\n var _b = this.service.limitRange(min || this.$props.min, max || this.$props.max, value || this.$props.value),\n newMin = _b[0],\n newMax = _b[1];\n\n this.service.configure(this.serviceSettings({\n min: newMin,\n max: newMax\n }));\n },\n serviceSettings: function serviceSettings(settings) {\n var defaults = {\n boundRange: this.$props.boundRange,\n insertUndividedMax: false,\n min: cloneDate(this.$props.min),\n max: cloneDate(this.$props.max),\n part: this.$props.part,\n step: this.$props.step\n };\n var result = Object.assign({}, defaults, settings);\n result.boundRange = result.part.type !== 'hour' || this.$props.boundRange;\n return result;\n },\n handleScrollAction: function handleScrollAction(_a) {\n var target = _a.target,\n animationInProgress = _a.animationInProgress;\n\n if (!this.virtualization) {\n return;\n }\n\n if (target && !animationInProgress) {\n this.animateToIndex = false;\n var index = this.virtualization.itemIndex(this.itemOffset(target.scrollTop));\n var dataItem = this.service.data(this.$props.value)[index];\n this.handleChange(dataItem);\n }\n },\n handleFocus: function handleFocus(event) {\n this.$emit('focus', event);\n },\n handleBlur: function handleBlur(event) {\n this.$emit('blur', event);\n },\n handleMouseOver: function handleMouseOver() {\n if (!this.$el) {\n return;\n }\n\n if (canUseDOM && document.activeElement !== this.$el) {\n // @ts-ignore\n this.$el.focus({\n preventScroll: true\n });\n }\n },\n handleKeyDown: function handleKeyDown(event) {\n var keyCode = event.keyCode;\n\n if (keyCode === Keys.down || keyCode === Keys.up || keyCode === Keys.end || keyCode === Keys.home) {\n event.preventDefault();\n }\n\n var getter = getters[event.keyCode] || noop;\n var dataItem = getter(this.service.data(this.$props.value), this.service.selectedIndex(this.$props.value));\n\n if (dataItem) {\n this.handleChange(dataItem);\n }\n },\n handleChange: function handleChange(dataItem) {\n var candidate = this.service.apply(this.$props.value, dataItem.value);\n\n if (this.$props.value.getTime() === candidate.getTime()) {\n return;\n }\n\n this.currentValue = candidate;\n this.$emit('change', candidate);\n }\n }\n};\nvar TimeListVue3 = TimeList;\nexport { TimeList, TimeListVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar inject = allVue.inject;\nimport { cloneDate } from '@progress/kendo-date-math';\nimport { canUseDOM, classNames, Keys } from '@progress/kendo-vue-common';\nimport { provideIntlService, provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { messages, now, selectNow } from '../messages';\nimport { TimeList } from './TimeList';\nimport { MIDNIGHT_DATE, MIN_TIME, MAX_TIME } from '../utils';\nimport { TIME_PART } from './models/TimePart';\nimport { generateSnappers, getNow, isInTimeRange, snapTime, timeInRange } from './utils';\nvar formatRegExp = new RegExp(TIME_PART.hour + \"|\" + TIME_PART.minute + \"|\" + TIME_PART.second + \"|\" + TIME_PART.dayperiod + \"|literal\");\n/**\n * @hidden\n */\n\nexport var Direction;\n\n(function (Direction) {\n Direction[Direction[\"Left\"] = 0] = \"Left\";\n Direction[Direction[\"Right\"] = 1] = \"Right\";\n})(Direction || (Direction = {}));\n\nvar TimePart = {\n name: 'KendoTimePart',\n props: {\n cancelButton: {\n type: Boolean,\n default: true\n },\n disabled: {\n type: Boolean,\n default: false\n },\n format: {\n type: String,\n default: function _default() {\n return 'hh:mm a';\n }\n },\n max: {\n type: Date,\n default: function _default() {\n return MAX_TIME;\n }\n },\n min: {\n type: Date,\n default: function _default() {\n return MIN_TIME;\n }\n },\n nowButton: {\n type: Boolean,\n default: true\n },\n steps: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n smoothScroll: {\n type: Boolean,\n default: true\n },\n tabIndex: Number,\n value: {\n type: Date,\n default: function _default() {\n return null;\n }\n }\n },\n // @ts-ignore\n emits: {\n 'change': null,\n 'focus': null,\n 'blur': null\n },\n created: function created() {\n this.timeLists = [];\n this.snapTime = snapTime(generateSnappers(this.$props.steps, this.$props.min));\n this.activeListIndex = -1;\n this.hasActiveButton = this.hasActiveButton.bind(this);\n },\n inject: {\n kendoIntlService: {\n default: null\n },\n kendoLocalizationService: {\n default: null\n }\n },\n data: function data() {\n return {\n activeListIndex: null\n };\n },\n computed: {\n element: function element() {\n return this._element;\n },\n computedValue: function computedValue() {\n return timeInRange(this.snapTime(cloneDate(this.$props.value || MIDNIGHT_DATE)), this.computedMin, this.computedMax);\n },\n intl: function intl() {\n return provideIntlService(this);\n },\n computedMin: function computedMin() {\n return this.snapTime(this.$props.min);\n },\n computedMax: function computedMax() {\n return this.snapTime(this.$props.max);\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n this._nowButton = this.$refs.nowButton;\n this.dateFormatParts.forEach(function (item, idx) {\n if (item.type !== 'literal') {\n _this.timeLists.push(_this.$refs['timeList' + idx]);\n }\n });\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoIntlService = inject('kendoIntlService', {});\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n kendoIntlService: kendoIntlService,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n format = _a.format,\n smoothScroll = _a.smoothScroll,\n disabled = _a.disabled;\n this.snapTime = snapTime(generateSnappers(this.$props.steps, this.computedMin));\n this.dateFormatParts = this.intl.splitDateFormat(format).filter(this.timeFormatFilter);\n var rootClassName = classNames({\n 'k-state-disabled': disabled\n }, 'k-time-part');\n var localizationService = provideLocalizationService(this);\n var selectNowMessage = localizationService.toLanguageString(selectNow, messages[selectNow]);\n return h(\"div\", {\n \"class\": rootClassName\n }, [h(\"div\", {\n \"class\": \"k-time-header\"\n }, [h(\"span\", {\n \"class\": \"k-title\"\n }, [this.intl.formatDate(this.computedValue, this.dateFormatParts.reduce(this.timeFormatReducer, ''))]), this.showNowButton() && h(\"button\", {\n ref: 'nowButton',\n \"class\": \"k-button k-flat k-time-now\",\n title: selectNowMessage,\n attrs: this.v3 ? undefined : {\n title: selectNowMessage,\n \"aria-label\": selectNowMessage,\n tabIndex: disabled ? -1 : 0\n },\n \"aria-label\": selectNowMessage,\n onClick: this.onNowClick,\n on: this.v3 ? undefined : {\n \"click\": this.onNowClick\n },\n tabIndex: disabled ? -1 : 0\n }, [localizationService.toLanguageString(now, messages[now])])]), h(\"div\", {\n \"class\": \"k-time-list-container\",\n onKeydown: this.handleKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.handleKeyDown\n }\n }, [h(\"span\", {\n \"class\": \"k-time-highlight\"\n }), this.dateFormatParts.map(function (part, idx) {\n var _this = this;\n\n return part.type !== 'literal' ? h(\"div\", {\n key: idx,\n \"class\": classNames('k-time-list-wrapper', {\n 'k-state-focused': idx === this.activeListIndex\n }),\n role: \"presentation\",\n attrs: this.v3 ? undefined : {\n role: \"presentation\",\n tabIndex: -1\n },\n tabIndex: -1\n }, [h(\"span\", {\n \"class\": \"k-title\",\n onMousedown: function onMousedown(e) {\n e.preventDefault();\n },\n on: this.v3 ? undefined : {\n \"mousedown\": function onMousedown(e) {\n e.preventDefault();\n }\n }\n }, [this.intl.dateFieldName(part)]), // @ts-ignore function children\n h(TimeList, {\n min: this.computedMin,\n attrs: this.v3 ? undefined : {\n min: this.computedMin,\n max: this.computedMax,\n boundRange: this.$props.boundRange,\n part: part,\n step: part.type ? this.$props.steps[part.type] : 1,\n smoothScroll: smoothScroll,\n id: idx,\n value: this.computedValue,\n disabled: disabled\n },\n max: this.computedMax,\n boundRange: this.$props.boundRange,\n part: part,\n step: part.type ? this.$props.steps[part.type] : 1,\n smoothScroll: smoothScroll,\n ref: 'timeList' + idx,\n id: idx,\n onFocus: function onFocus(event) {\n _this.handleListFocus(event, idx);\n },\n on: this.v3 ? undefined : {\n \"focus\": function onFocus(event) {\n _this.handleListFocus(event, idx);\n },\n \"blur\": this.handleListBlur,\n \"change\": this.handleChange\n },\n onBlur: this.handleListBlur,\n onChange: this.handleChange,\n value: this.computedValue,\n disabled: disabled\n })]) : h(\"div\", {\n key: idx,\n \"class\": \"k-time-separator\"\n }, [part.pattern]);\n }, this)])]);\n },\n methods: {\n onNowClick: function onNowClick(event) {\n this.$emit('nowclick', event);\n },\n focus: function focus(args) {\n var _this = this;\n\n this.$nextTick(function () {\n var timeList = _this.timeLists[0];\n\n if (!_this.hasActiveButton() && timeList && timeList.$el) {\n timeList.focus(args);\n }\n });\n },\n timeFormatReducer: function timeFormatReducer(acc, current) {\n return acc + current.pattern;\n },\n timeFormatFilter: function timeFormatFilter(part, index, all) {\n var prevItem = index >= 1 && all[index - 1];\n\n if (!prevItem) {\n return formatRegExp.test(part.type || '');\n }\n\n if (prevItem && part.type === 'literal') {\n return formatRegExp.test(prevItem.type || '');\n }\n\n return formatRegExp.test(part.type || '');\n },\n hasActiveButton: function hasActiveButton() {\n return canUseDOM && document.activeElement === this._nowButton;\n },\n focusList: function focusList(dir) {\n if (!this.timeLists.length) {\n return;\n }\n\n this.timeLists.reduce(this.listReducer, []).map(function (state) {\n return dir === Direction.Right ? state.next : state.prev;\n }).map(function (list) {\n return list && list.$el && list.$el.focus({\n preventScroll: true\n });\n });\n },\n listReducer: function listReducer(state, list, idx, all) {\n if (state.length || list.$props.id !== this.activeListIndex) {\n return state;\n }\n\n return [{\n next: all[idx + 1] || list,\n prev: all[idx - 1] || list\n }];\n },\n showNowButton: function showNowButton() {\n return !this.hasSteps() && this.$props.nowButton && isInTimeRange(getNow(), this.computedMin, this.computedMax);\n },\n hasSteps: function hasSteps() {\n var _this = this;\n\n var keys = Object.keys(this.$props.steps);\n return keys.length !== keys.reduce(function (acc, k) {\n return acc + _this.$props.steps[k];\n }, 0);\n },\n handleKeyDown: function handleKeyDown(event) {\n var keyCode = event.keyCode;\n\n switch (keyCode) {\n case Keys.left:\n event.preventDefault();\n this.focusList(Direction.Left);\n return;\n\n case Keys.right:\n event.preventDefault();\n this.focusList(Direction.Right);\n return;\n\n default:\n return;\n }\n },\n handleListBlur: function handleListBlur(event) {\n this.$emit('blur', event);\n },\n handleListFocus: function handleListFocus(event, idx) {\n this.$emit('focus', event);\n this.activeListIndex = idx;\n },\n handleChange: function handleChange(candidate) {\n this.$emit('change', candidate);\n }\n }\n};\nvar TimePartVue3 = TimePart;\nexport { TimePart, TimePartVue3 };","import { cloneDate } from '@progress/kendo-date-math';\nvar setHours = function (date, hours) {\n var clone = cloneDate(date);\n clone.setHours(hours);\n return clone;\n};\nvar isAM = function (value) { return value !== null && value < 12; };\nvar isPM = function (value) { return value !== null && (!value || value > 11); };\nvar inRange = function (value, min, max) { return ((!min && !max) || (value >= min && value <= max)); };\nvar inReverseRange = function (value, min, max) { return ((!min && !max) || value >= min || value <= max); };\n/**\n * @hidden\n */\nvar DayPeriodService = /** @class */ (function () {\n function DayPeriodService(intl) {\n this.intl = intl;\n }\n /**\n * @hidden\n */\n DayPeriodService.prototype.apply = function (value, candidate) {\n var hour = value.getHours();\n var hourAM = isAM(hour);\n var candidateAM = isAM(candidate.getHours());\n if ((hourAM && candidateAM) || (!hourAM && !candidateAM)) {\n return value;\n }\n var _a = this.normalizedRange(), min = _a[0], _b = _a[1], max = _b === void 0 ? 24 : _b;\n var result = hour + (candidateAM ? -12 : 12);\n return setHours(value, Math.min(Math.max(min, result), (max || 24)));\n };\n /**\n * @hidden\n */\n DayPeriodService.prototype.configure = function (settings) {\n var _a = settings.min, min = _a === void 0 ? this.min : _a, _b = settings.max, max = _b === void 0 ? this.max : _b, _c = settings.part, part = _c === void 0 ? this.part : _c;\n this.min = min;\n this.max = max;\n this.part = part;\n };\n /**\n * @hidden\n */\n DayPeriodService.prototype.data = function (_) {\n var names = this.part.names;\n if (!names) {\n return [];\n }\n var data = [];\n var _a = this.normalizedRange(), min = _a[0], max = _a[1];\n var dayPeriod = this.intl.dateFormatNames(names);\n if (isAM(min)) {\n data.push({ text: dayPeriod.am, value: setHours(this.min, min) });\n }\n if (isPM(max)) {\n data.push({ text: dayPeriod.pm, value: setHours(this.min, Math.max(12, max)) });\n }\n return this.min.getHours() !== min ? data.reverse() : data;\n };\n /**\n * @hidden\n */\n DayPeriodService.prototype.isRangeChanged = function (_, __) {\n return false;\n };\n /**\n * @hidden\n */\n DayPeriodService.prototype.limitRange = function (min, max, _) {\n return [min, max];\n };\n /**\n * @hidden\n */\n DayPeriodService.prototype.total = function () {\n var _a = this.normalizedRange(), min = _a[0], max = _a[1];\n if (!min && !max) {\n return 2;\n }\n if (min > 11 || max < 12) {\n return 1;\n }\n return 2;\n };\n /**\n * @hidden\n */\n DayPeriodService.prototype.selectedIndex = function (value) {\n if (!this.valueInList(value)) {\n return -1;\n }\n var index = Math.floor(value.getHours() / 12);\n return this.min.getHours() === this.normalizedRange()[0] ? index : (index === 0 ? 1 : 0);\n };\n /**\n * @hidden\n */\n DayPeriodService.prototype.valueInList = function (value) {\n var reverse = this.min.getHours() !== this.normalizedRange()[0];\n var isInRange = reverse ? inReverseRange : inRange;\n return isInRange(value.getHours(), this.min.getHours(), this.max.getHours());\n };\n DayPeriodService.prototype.normalizedRange = function () {\n var minHour = this.min.getHours();\n var maxHour = this.max.getHours();\n return [\n Math.min(minHour, maxHour),\n Math.max(minHour, maxHour)\n ];\n };\n return DayPeriodService;\n}());\nexport { DayPeriodService };\n","import { domContainerFactory as containerFactory } from '../../utils';\nimport { canUseDOM } from '@progress/kendo-vue-common';\n/**\n * @hidden\n */\nvar DOMService = /** @class */ (function () {\n function DOMService() {\n this.didCalculate = false;\n }\n DOMService.prototype.ensureHeights = function () {\n if (this.timeListHeight !== undefined) {\n return;\n }\n this.calculateHeights();\n };\n DOMService.prototype.calculateHeights = function (container) {\n if (!canUseDOM) {\n return;\n }\n var div = containerFactory('div');\n var ul = containerFactory('ul');\n var li = containerFactory('li');\n var listItem = function () { return li('02', 'k-item'); };\n var list = function () { return ul([listItem()], 'k-reset'); };\n var scrollable = function () { return (div([list()], 'k-time-container k-content k-scrollable')); };\n var timeListWrapper = function () {\n return div([div([scrollable()], 'k-time-list')], 'k-time-list-wrapper', { left: '-10000px', position: 'absolute' });\n };\n var timeWrapper = timeListWrapper();\n var listContainer = container && container.querySelector('.k-time-container');\n var hostContainer = listContainer || document.body;\n var wrapper = hostContainer.appendChild(timeWrapper);\n this.timeListHeight = wrapper.querySelector('.k-scrollable').offsetHeight;\n this.itemHeight = wrapper.querySelector('li').offsetHeight;\n hostContainer.removeChild(wrapper);\n this.didCalculate = true;\n };\n return DOMService;\n}());\nexport { DOMService };\n","import { getDate, isEqual } from '@progress/kendo-date-math';\nimport { MIDNIGHT_DATE } from '../../utils';\nimport { range, setHours } from '../utils';\nvar HOURS_IN_DAY = 24;\nvar clampToRange = function (rangeValue) { return function (value) { return value % rangeValue; }; };\nvar clamp = clampToRange(HOURS_IN_DAY);\nvar stepper = function (start, step) { return function (idx) { return clamp(start + (idx * step)); }; };\nvar distanceFromMin = function (value, min) { return clamp(HOURS_IN_DAY + value - min); };\nvar limit = function (borderValue) { return function (barrier, value) {\n var useBarrier = !value || getDate(barrier).getTime() === getDate(value).getTime();\n return useBarrier ? barrier : setHours(barrier, borderValue);\n}; };\nvar limitDown = limit(0);\nvar limitUp = limit(HOURS_IN_DAY - 1);\n/**\n * @hidden\n */\nvar HoursService = /** @class */ (function () {\n function HoursService(intl) {\n this.intl = intl;\n this.boundRange = false;\n this.insertUndividedMax = false;\n }\n HoursService.prototype.apply = function (value, candidate) {\n return setHours(value, candidate.getHours());\n };\n HoursService.prototype.configure = function (settings) {\n var _this = this;\n var _a = settings.boundRange, boundRange = _a === void 0 ? this.boundRange : _a, _b = settings.insertUndividedMax, insertUndividedMax = _b === void 0 ? this.insertUndividedMax : _b, _c = settings.min, min = _c === void 0 ? this.min : _c, _d = settings.max, max = _d === void 0 ? this.max : _d, part = settings.part, _e = settings.step, step = _e === void 0 ? this.step : _e;\n this.boundRange = boundRange;\n this.insertUndividedMax = insertUndividedMax;\n this.toListItem = function (hour) {\n var date = setHours(MIDNIGHT_DATE, hour);\n return {\n text: _this.intl.formatDate(date, part.pattern),\n value: date\n };\n };\n this.min = min;\n this.max = max;\n this.step = step;\n };\n HoursService.prototype.data = function (selectedValue) {\n var _this = this;\n var min = this.range(selectedValue)[0];\n var getHour = stepper(min, this.step);\n var convertToItem = function (idx) { return (_this.toListItem(getHour(idx))); };\n var data = range(0, this.countFromMin(selectedValue)).map(convertToItem);\n this.addLast(data);\n if (selectedValue) {\n this.addMissing(data, selectedValue);\n }\n return data;\n };\n HoursService.prototype.isRangeChanged = function (min, max) {\n return !isEqual(this.min, min) || !isEqual(this.max, max);\n };\n HoursService.prototype.limitRange = function (min, max, value) {\n return this.boundRange ? [limitDown(min, value), limitUp(max, value)] : [min, max];\n };\n HoursService.prototype.total = function (value) {\n var last = this.insertUndividedMax && this.isLastMissing(value) ? 1 : 0;\n var missing = this.isMissing(value) ? 1 : 0;\n return this.countFromMin(value) + missing + last;\n };\n HoursService.prototype.selectedIndex = function (value) {\n return Math.ceil(this.divideByStep(value));\n };\n HoursService.prototype.valueInList = function (value) {\n if (!value) {\n return true;\n }\n var matchMax = this.insertUndividedMax && this.lastHour(value) === value.getHours();\n return matchMax || !this.isMissing(value);\n };\n HoursService.prototype.addLast = function (data, value) {\n if (this.insertUndividedMax && this.isLastMissing(value)) {\n data.push(this.toListItem(this.lastHour(value)));\n }\n return data;\n };\n HoursService.prototype.addMissing = function (data, value) {\n if (this.valueInList(value)) {\n return data;\n }\n var missingItem = this.toListItem(value.getHours());\n data.splice(this.selectedIndex(value), 0, missingItem);\n return data;\n };\n HoursService.prototype.countFromMin = function (value) {\n var _a = this.range(value), min = _a[0], max = _a[1];\n return Math.floor(distanceFromMin(max, min) / this.step) + 1; /* include min */\n };\n HoursService.prototype.isMissing = function (value) {\n if (!value) {\n return false;\n }\n return this.selectedIndex(value) !== this.divideByStep(value);\n };\n HoursService.prototype.isLastMissing = function (value) {\n return this.isMissing(setHours(this.max, this.lastHour(value)));\n };\n HoursService.prototype.divideByStep = function (value) {\n return distanceFromMin(value.getHours(), this.min.getHours()) / this.step;\n };\n HoursService.prototype.lastHour = function (value) {\n return this.range(value)[1];\n };\n HoursService.prototype.range = function (value) {\n var _a = this.limitRange(this.min, this.max, value), min = _a[0], max = _a[1];\n return [min.getHours(), max.getHours()];\n };\n return HoursService;\n}());\nexport { HoursService };\n","import { isEqual } from '@progress/kendo-date-math';\nimport { MIDNIGHT_DATE } from '../../utils';\nimport { range, setMinutes } from '../utils';\nvar MINUTES_IN_HOUR = 60;\nvar clampToRange = function (rangeValue) { return function (value) { return value % rangeValue; }; };\nvar clamp = clampToRange(MINUTES_IN_HOUR);\nvar stepper = function (start, step) { return function (idx) { return clamp(start + (idx * step)); }; };\nvar distanceFromMin = function (value, min) { return clamp(MINUTES_IN_HOUR + value - min); };\nvar limit = function (borderValue) { return function (barrier, value) {\n var useBarrier = !value || barrier.getHours() === value.getHours();\n return useBarrier ? barrier : setMinutes(barrier, borderValue);\n}; };\nvar limitDown = limit(0);\nvar limitUp = limit(MINUTES_IN_HOUR - 1);\n/**\n * @hidden\n */\nvar MinutesService = /** @class */ (function () {\n function MinutesService(intl) {\n this.intl = intl;\n this.insertUndividedMax = false;\n }\n MinutesService.prototype.apply = function (value, candidate) {\n return setMinutes(value, candidate.getMinutes());\n };\n MinutesService.prototype.configure = function (settings) {\n var _this = this;\n var _a = settings.insertUndividedMax, insertUndividedMax = _a === void 0 ? this.insertUndividedMax : _a, _b = settings.min, min = _b === void 0 ? this.min : _b, _c = settings.max, max = _c === void 0 ? this.max : _c, part = settings.part, _d = settings.step, step = _d === void 0 ? this.step : _d;\n this.insertUndividedMax = insertUndividedMax;\n this.toListItem = function (minute) {\n var date = setMinutes(MIDNIGHT_DATE, minute);\n return {\n text: _this.intl.formatDate(date, part.pattern),\n value: date\n };\n };\n this.min = min;\n this.max = max;\n this.step = step;\n };\n MinutesService.prototype.data = function (selectedValue) {\n var _this = this;\n var min = this.range(selectedValue)[0];\n var getMinute = stepper(min, this.step);\n var convertToItem = function (idx) { return (_this.toListItem(getMinute(idx))); };\n var data = range(0, this.countFromMin(selectedValue)).map(convertToItem);\n this.addLast(data);\n if (selectedValue) {\n this.addMissing(data, selectedValue);\n }\n return data;\n };\n MinutesService.prototype.isRangeChanged = function (min, max) {\n return !isEqual(this.min, min) || !isEqual(this.max, max);\n };\n MinutesService.prototype.limitRange = function (min, max, value) {\n return [limitDown(min, value), limitUp(max, value)];\n };\n MinutesService.prototype.total = function (value) {\n var last = this.insertUndividedMax && this.isLastMissing(value) ? 1 : 0;\n var missing = this.isMissing(value) ? 1 : 0;\n return this.countFromMin(value) + missing + last;\n };\n MinutesService.prototype.selectedIndex = function (value) {\n return Math.ceil(this.divideByStep(value));\n };\n MinutesService.prototype.valueInList = function (value) {\n if (!value) {\n return true;\n }\n var matchMax = this.insertUndividedMax && this.lastMinute(value) === value.getMinutes();\n return matchMax || !this.isMissing(value);\n };\n MinutesService.prototype.addLast = function (data, value) {\n if (this.insertUndividedMax && this.isLastMissing(value)) {\n data.push(this.toListItem(this.lastMinute(value)));\n }\n return data;\n };\n MinutesService.prototype.addMissing = function (data, value) {\n if (this.valueInList(value)) {\n return data;\n }\n var missingItem = this.toListItem(value.getMinutes());\n data.splice(this.selectedIndex(value), 0, missingItem);\n return data;\n };\n MinutesService.prototype.countFromMin = function (value) {\n var _a = this.range(value), min = _a[0], max = _a[1];\n return Math.floor(distanceFromMin(max, min) / this.step) + 1; /* include min */\n };\n MinutesService.prototype.isMissing = function (value) {\n if (!value) {\n return false;\n }\n return this.selectedIndex(value) !== this.divideByStep(value);\n };\n MinutesService.prototype.isLastMissing = function (value) {\n return this.isMissing(setMinutes(this.max, this.lastMinute(value)));\n };\n MinutesService.prototype.divideByStep = function (value) {\n return distanceFromMin(value.getMinutes(), this.min.getMinutes()) / this.step;\n };\n MinutesService.prototype.lastMinute = function (value) {\n return this.range(value)[1];\n };\n MinutesService.prototype.range = function (value) {\n var _a = this.limitRange(this.min, this.max, value), min = _a[0], max = _a[1];\n return [min.getMinutes(), max.getMinutes()];\n };\n return MinutesService;\n}());\nexport { MinutesService };\n","import { isEqual } from '@progress/kendo-date-math';\nimport { MIDNIGHT_DATE } from '../../utils';\nimport { range, setSeconds } from '../utils';\nvar SECONDS_IN_HOUR = 60;\nvar clampToRange = function (rangeValue) { return function (value) { return value % rangeValue; }; };\nvar clamp = clampToRange(SECONDS_IN_HOUR);\nvar stepper = function (start, step) { return function (idx) { return clamp(start + (idx * step)); }; };\nvar distanceFromMin = function (value, min) { return clamp(SECONDS_IN_HOUR + value - min); };\nvar limit = function (borderValue) { return function (barrier, value) {\n var useBarrier = !value ||\n (barrier.getMinutes() === value.getMinutes() && barrier.getHours() === value.getHours());\n return useBarrier ? barrier : setSeconds(barrier, borderValue);\n}; };\nvar limitDown = limit(0);\nvar limitUp = limit(SECONDS_IN_HOUR - 1);\n/**\n * @hidden\n */\nvar SecondsService = /** @class */ (function () {\n function SecondsService(intl) {\n this.intl = intl;\n this.insertUndividedMax = false;\n }\n SecondsService.prototype.apply = function (value, candidate) {\n return setSeconds(value, candidate.getSeconds());\n };\n SecondsService.prototype.configure = function (settings) {\n var _this = this;\n var _a = settings.insertUndividedMax, insertUndividedMax = _a === void 0 ? this.insertUndividedMax : _a, _b = settings.min, min = _b === void 0 ? this.min : _b, _c = settings.max, max = _c === void 0 ? this.max : _c, part = settings.part, _d = settings.step, step = _d === void 0 ? this.step : _d;\n this.insertUndividedMax = insertUndividedMax;\n this.toListItem = function (minute) {\n var date = setSeconds(MIDNIGHT_DATE, minute);\n return {\n text: _this.intl.formatDate(date, part.pattern),\n value: date\n };\n };\n this.min = min;\n this.max = max;\n this.step = step;\n };\n SecondsService.prototype.data = function (selectedValue) {\n var _this = this;\n var min = this.range(selectedValue)[0];\n var getSecond = stepper(min, this.step);\n var convertToItem = function (idx) { return (_this.toListItem(getSecond(idx))); };\n var data = range(0, this.countFromMin(selectedValue)).map(convertToItem);\n this.addLast(data);\n if (selectedValue) {\n this.addMissing(data, selectedValue);\n }\n return data;\n };\n SecondsService.prototype.isRangeChanged = function (min, max) {\n return !isEqual(this.min, min) || !isEqual(this.max, max);\n };\n SecondsService.prototype.limitRange = function (min, max, value) {\n return [limitDown(min, value), limitUp(max, value)];\n };\n SecondsService.prototype.total = function (value) {\n var last = this.insertUndividedMax && this.isLastMissing(value) ? 1 : 0;\n var missing = this.isMissing(value) ? 1 : 0;\n return this.countFromMin(value) + missing + last;\n };\n SecondsService.prototype.selectedIndex = function (value) {\n return Math.ceil(this.divideByStep(value));\n };\n SecondsService.prototype.valueInList = function (value) {\n if (!value) {\n return true;\n }\n var matchMax = this.insertUndividedMax && this.lastSecond(value) === value.getSeconds();\n return matchMax || !this.isMissing(value);\n };\n SecondsService.prototype.divideByStep = function (value) {\n return distanceFromMin(value.getSeconds(), this.min.getSeconds()) / this.step;\n };\n SecondsService.prototype.addLast = function (data, value) {\n if (this.insertUndividedMax && this.isLastMissing(value)) {\n data.push(this.toListItem(this.lastSecond(value)));\n }\n return data;\n };\n SecondsService.prototype.addMissing = function (data, value) {\n if (this.valueInList(value)) {\n return data;\n }\n var missingItem = this.toListItem(value.getSeconds());\n data.splice(this.selectedIndex(value), 0, missingItem);\n return data;\n };\n SecondsService.prototype.countFromMin = function (value) {\n var _a = this.range(value), min = _a[0], max = _a[1];\n return Math.floor(distanceFromMin(max, min) / this.step) + 1; /* include min */\n };\n SecondsService.prototype.isMissing = function (value) {\n if (!value) {\n return false;\n }\n return this.selectedIndex(value) !== this.divideByStep(value);\n };\n SecondsService.prototype.isLastMissing = function (value) {\n return this.isMissing(setSeconds(this.max, this.lastSecond(value)));\n };\n SecondsService.prototype.lastSecond = function (value) {\n return this.range(value)[1];\n };\n SecondsService.prototype.range = function (value) {\n var _a = this.limitRange(this.min, this.max, value), min = _a[0], max = _a[1];\n return [min.getSeconds(), max.getSeconds()];\n };\n return SecondsService;\n}());\nexport { SecondsService };\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar inject = allVue.inject;\nimport { cloneDate } from '@progress/kendo-date-math';\nimport { canUseDOM, classNames, Keys } from '@progress/kendo-vue-common';\nimport { provideIntlService, provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { messages, timePickerCancel, timePickerSet } from '../messages';\nimport { MIN_TIME, MAX_TIME, MIDNIGHT_DATE } from '../utils';\nimport { generateGetters, getNow, valueMerger } from './utils';\nimport { TimePart } from './TimePart';\n/**\n * @hidden\n */\n\nexport var Direction;\n\n(function (Direction) {\n Direction[Direction[\"Left\"] = 0] = \"Left\";\n Direction[Direction[\"Right\"] = 1] = \"Right\";\n})(Direction || (Direction = {}));\n\nvar TimeSelector = {\n name: 'KendoTimeSelector',\n // @ts-ignore\n emits: {\n 'change': null,\n 'focus': null,\n 'blur': null\n },\n props: {\n cancelButton: {\n type: Boolean,\n default: true\n },\n boundRange: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n format: {\n type: String,\n default: function _default() {\n return 't';\n }\n },\n max: {\n type: Date,\n default: function _default() {\n return MAX_TIME;\n }\n },\n min: {\n type: Date,\n default: function _default() {\n return MIN_TIME;\n }\n },\n nowButton: Boolean,\n steps: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n smoothScroll: {\n type: Boolean,\n default: true\n },\n tabIndex: Number,\n value: {\n type: Date,\n default: function _default() {\n return null;\n }\n }\n },\n created: function created() {\n this.dateFormatParts = this.intl.splitDateFormat(this.$props.format);\n this.mergeValue = valueMerger(generateGetters(this.dateFormatParts));\n this.hasActiveButton = this.hasActiveButton.bind(this);\n this.currentState = this.$props.value || MIDNIGHT_DATE;\n this.currentValue = this.$props.value;\n },\n inject: {\n kendoIntlService: {\n default: null\n },\n kendoLocalizationService: {\n default: null\n }\n },\n data: function data() {\n return {\n currentState: null,\n currentValue: null,\n valueDuringOnChange: undefined\n };\n },\n computed: {\n computedValue: function computedValue() {\n var value = this.valueDuringOnChange !== undefined ? this.valueDuringOnChange : this.$props.value !== null ? this.$props.value : this.currentValue;\n return value !== null ? cloneDate(value) : null;\n },\n intl: function intl() {\n return provideIntlService(this);\n },\n current: function current() {\n return this.currentState !== null ? cloneDate(this.currentState) : null;\n }\n },\n mounted: function mounted() {\n this.timePart = this.$refs.timePart;\n this._acceptButton = this.$refs.acceptButton;\n this._cancelButton = this.$refs.cancelButton;\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoIntlService = inject('kendoIntlService', {});\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n kendoIntlService: kendoIntlService,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n format = _a.format,\n cancelButton = _a.cancelButton,\n disabled = _a.disabled,\n tabIndex = _a.tabIndex,\n smoothScroll = _a.smoothScroll,\n min = _a.min,\n max = _a.max,\n boundRange = _a.boundRange,\n nowButton = _a.nowButton,\n steps = _a.steps;\n var localizationService = provideLocalizationService(this);\n var cancelMessage = localizationService.toLanguageString(timePickerCancel, messages[timePickerCancel]);\n var setMessage = localizationService.toLanguageString(timePickerSet, messages[timePickerSet]);\n return h(\"div\", {\n tabIndex: !disabled ? tabIndex || 0 : undefined,\n attrs: this.v3 ? undefined : {\n tabIndex: !disabled ? tabIndex || 0 : undefined\n },\n \"class\": classNames('k-timeselector k-reset', {\n 'k-state-disabled': disabled\n }),\n onKeydown: this.handleKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.handleKeyDown\n }\n }, [// @ts-ignore function children\n h(TimePart, {\n ref: 'timePart',\n value: this.current,\n attrs: this.v3 ? undefined : {\n value: this.current,\n format: format,\n smoothScroll: smoothScroll,\n min: min,\n max: max,\n boundRange: boundRange,\n disabled: disabled,\n nowButton: nowButton,\n steps: steps\n },\n onChange: this.handleChange,\n on: this.v3 ? undefined : {\n \"change\": this.handleChange,\n \"nowclick\": this.handleNowClick,\n \"focus\": this.handleFocus,\n \"blur\": this.handleBlur\n },\n onNowclick: this.handleNowClick,\n format: format,\n smoothScroll: smoothScroll,\n min: min,\n max: max,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n boundRange: boundRange,\n disabled: disabled,\n nowButton: nowButton,\n steps: steps\n }), h(\"div\", {\n \"class\": \"k-time-footer k-action-buttons\"\n }, [cancelButton && h(\"button\", {\n ref: 'cancelButton',\n \"class\": \"k-button k-time-cancel\",\n onClick: this.handleReject,\n on: this.v3 ? undefined : {\n \"click\": this.handleReject\n },\n title: cancelMessage,\n attrs: this.v3 ? undefined : {\n title: cancelMessage,\n \"aria-label\": cancelMessage\n },\n \"aria-label\": cancelMessage\n }, [cancelMessage]), h(\"button\", {\n ref: 'acceptButton',\n \"class\": \"k-time-accept k-button k-primary\",\n onClick: this.handleAccept,\n on: this.v3 ? undefined : {\n \"click\": this.handleAccept\n },\n title: setMessage,\n attrs: this.v3 ? undefined : {\n title: setMessage,\n \"aria-label\": setMessage\n },\n \"aria-label\": setMessage\n }, [setMessage])])]);\n },\n methods: {\n handleBlur: function handleBlur(event) {\n this.$emit('blur', event);\n },\n handleFocus: function handleFocus(event) {\n this.$emit('focus', event);\n },\n focusActiveList: function focusActiveList() {\n if (!this.timePart) {\n return;\n }\n\n this.timePart.focus({\n preventScroll: true\n });\n },\n hasActiveButton: function hasActiveButton() {\n if (!this._acceptButton) {\n return false;\n }\n\n return canUseDOM && (document.activeElement === this._acceptButton || document.activeElement === this._cancelButton);\n },\n handleKeyDown: function handleKeyDown(event) {\n var keyCode = event.keyCode;\n this.$emit('keydown', event);\n\n switch (keyCode) {\n case Keys.enter:\n if (!this.hasActiveButton()) {\n this.handleAccept(event);\n }\n\n return;\n\n default:\n return;\n }\n },\n handleAccept: function handleAccept(event) {\n var value = this.mergeValue(cloneDate(this.computedValue || getNow()), this.timePart ? this.timePart.value : this.current);\n this.currentValue = value;\n this.valueDuringOnChange = value;\n this.$emit('change', {\n event: event,\n value: this.computedValue,\n target: this\n });\n this.valueDuringOnChange = undefined;\n },\n handleReject: function handleReject(event) {\n this.currentState = this.computedValue;\n this.$emit('reject', event);\n },\n handleNowClick: function handleNowClick(event) {\n var now = this.mergeValue(cloneDate(this.computedValue || getNow()), getNow());\n this.currentState = now;\n this.currentValue = now;\n this.valueDuringOnChange = now;\n this.$emit('change', {\n event: event,\n value: this.computedValue,\n target: this\n });\n this.valueDuringOnChange = undefined;\n },\n handleChange: function handleChange(candidate) {\n this.currentState = candidate;\n }\n }\n};\nvar TimeSelectorVue3 = TimeSelector;\nexport { TimeSelector, TimeSelectorVue3 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nvar inject = allVue.inject;\nimport { FloatingLabel } from '@progress/kendo-vue-labels';\nimport { Popup } from '@progress/kendo-vue-popup';\nimport { cloneDate } from '@progress/kendo-date-math';\nimport { classNames, guid, Keys, templateRendering, getListeners, getTemplate, canUseDOM } from '@progress/kendo-vue-common';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { messages, toggleTimeSelector, toggleClock } from '../messages';\nimport { DateInput } from '../dateinput/DateInput';\nimport { TimeSelector } from './TimeSelector';\nimport { MIDNIGHT_DATE, MIN_TIME, MAX_TIME, setTime } from '../utils';\nimport { isInRange, isSmallerThanMin, isBiggerThanMax } from './utils';\nimport { defaultFormatPlaceholder } from '../dateinput/utils';\nvar TimePicker = {\n name: 'KendoTimePicker',\n // @ts-ignore\n emits: {\n 'changemodel': null,\n 'update:modelValue': null,\n 'iconclick': null,\n 'change': null,\n 'focus': null,\n 'blur': null\n },\n model: {\n event: 'changemodel'\n },\n props: {\n cancelButton: {\n type: Boolean,\n default: true\n },\n nowButton: {\n type: Boolean,\n default: undefined\n },\n defaultShow: {\n type: Boolean,\n default: false\n },\n modelValue: {\n type: Date,\n default: undefined\n },\n defaultValue: {\n type: Date,\n default: function _default() {\n return null;\n }\n },\n dateInput: {\n type: [String, Object, Function],\n default: function _default() {\n return undefined;\n }\n },\n popup: {\n type: [String, Object, Function],\n default: function _default() {\n return undefined;\n }\n },\n disabled: {\n type: Boolean,\n default: false\n },\n format: {\n type: [String, Object],\n default: function _default() {\n return 't';\n }\n },\n formatPlaceholder: {\n type: [String, Object],\n default: function _default() {\n return defaultFormatPlaceholder;\n }\n },\n id: String,\n ariaLabelledBy: String,\n ariaDescribedBy: String,\n min: {\n type: Date,\n default: function _default() {\n return MIN_TIME;\n }\n },\n max: {\n type: Date,\n default: function _default() {\n return MAX_TIME;\n }\n },\n name: String,\n label: String,\n placeholder: String,\n popupSettings: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n show: {\n type: Boolean,\n default: undefined\n },\n tabIndex: {\n type: Number,\n default: 0\n },\n steps: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n smoothScroll: {\n type: Boolean,\n default: true\n },\n title: {\n type: String,\n default: function _default() {\n return '';\n }\n },\n value: {\n type: Date,\n default: function _default() {\n return undefined;\n }\n },\n width: [Number, String],\n validationMessage: String,\n required: {\n type: Boolean,\n default: false\n },\n validityStyles: {\n type: Boolean,\n default: true\n },\n validate: Boolean,\n valid: {\n type: Boolean,\n default: undefined\n }\n },\n created: function created() {\n this._anchor = guid();\n this._popupId = guid();\n this._element = null;\n this._wrapper = null;\n this._dateInput = null;\n this._timeSelector = null;\n this.shouldFocusDateInput = false;\n this.currentValue = this.$props.defaultValue;\n this.currentShow = this.$props.defaultShow;\n },\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n data: function data() {\n return {\n currentValue: null,\n currentShow: false,\n valueDuringOnChange: undefined,\n showDuringOnChange: undefined,\n isFocused: false\n };\n },\n computed: {\n timeSelector: function timeSelector() {\n return this._timeSelector;\n },\n computedValue: function computedValue() {\n var value = this.valueDuringOnChange !== undefined ? this.valueDuringOnChange : this.$props.value !== undefined ? this.$props.value : this.$props.modelValue !== undefined ? this.$props.modelValue : this.$data.currentValue;\n return value !== null ? cloneDate(value) : null;\n },\n computedShow: function computedShow() {\n return this.showDuringOnChange !== undefined ? this.showDuringOnChange : this.$props.show !== undefined ? this.$props.show : this.currentShow;\n }\n },\n watch: {\n show: function show(_newShow, oldShow) {\n this._oldShow = oldShow;\n },\n currentShow: function currentShow(_newShow, oldShow) {\n this._oldShow = oldShow;\n }\n },\n mounted: function mounted() {\n if (this.computedShow) {\n // If defaultShow is true during the initial render, the popup is not aligned.\n this.$forceUpdate();\n }\n\n this._dateInput = this.v3 ? this.dateInputRef : this.$refs.dateInput;\n this._timeSelector = this.$refs.timeSelector;\n this._wrapper = this.v3 ? this.kendoAnchorRef : this.$refs[this._anchor];\n\n if (this._dateInput && this._dateInput.element()) {\n this._dateInput.element().setAttribute('aria-haspopup', 'true');\n\n this._dateInput.element().setAttribute('aria-expanded', \"\" + this.computedShow);\n }\n },\n updated: function updated() {\n this._dateInput = this.v3 ? this.dateInputRef : this.$refs.dateInput;\n this._timeSelector = this.$refs.timeSelector;\n this._wrapper = this.v3 ? this.kendoAnchorRef : this.$refs[this._anchor];\n\n if (this._dateInput && this._dateInput.element()) {\n this._dateInput.element().setAttribute('aria-expanded', \"\" + this.computedShow);\n }\n\n if (this._timeSelector && this.computedShow && !this._oldShow) {\n this._timeSelector.focusActiveList();\n } else if (this._dateInput && this._dateInput.element() && !this.computedShow && this.shouldFocusDateInput) {\n this._dateInput.element().focus({\n preventScroll: true\n });\n }\n\n this.shouldFocusDateInput = false;\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoAnchorRef = ref(null);\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n kendoAnchorRef: kendoAnchorRef,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var _a = this.$props,\n disabled = _a.disabled,\n tabIndex = _a.tabIndex,\n title = _a.title,\n id = _a.id,\n placeholder = _a.placeholder,\n format = _a.format,\n formatPlaceholder = _a.formatPlaceholder,\n smoothScroll = _a.smoothScroll,\n width = _a.width,\n name = _a.name,\n steps = _a.steps,\n cancelButton = _a.cancelButton,\n nowButton = _a.nowButton,\n validationMessage = _a.validationMessage,\n required = _a.required,\n validityStyles = _a.validityStyles,\n ariaLabelledBy = _a.ariaLabelledBy,\n ariaDescribedBy = _a.ariaDescribedBy;\n var _b = this.$props.popupSettings,\n popupClass = _b.popupClass,\n appendTo = _b.appendTo,\n animate = _b.animate;\n var isValid = !this.$props.validityStyles || this.validity().valid;\n var rootClassName = classNames('k-widget k-timepicker');\n var wrapperClassNames = classNames('k-picker-wrap', {\n 'k-state-invalid': !isValid,\n 'k-state-disabled': disabled,\n 'k-state-focused': this.isFocused\n });\n var popupClassNames = classNames('k-group k-reset', popupClass);\n var localizationService = provideLocalizationService(this);\n var toggleClockMessage = localizationService.toLanguageString(toggleClock, messages[toggleClock]);\n var toggleTimeMessage = localizationService.toLanguageString(toggleTimeSelector, messages[toggleTimeSelector]);\n var dateInput = this.$props.dateInput ? templateRendering.call(this, this.$props.dateInput, getListeners.call(this)) : undefined;\n var dateInputDefaultRendering = // @ts-ignore function children\n h(DateInput, {\n ref: this.v3 ? function (el) {\n _this.dateInputRef = el;\n } : 'dateInput',\n placeholder: placeholder,\n attrs: this.v3 ? undefined : {\n placeholder: placeholder,\n disabled: disabled,\n format: format,\n formatPlaceholder: formatPlaceholder,\n id: id,\n ariaLabelledBy: ariaLabelledBy,\n ariaDescribedBy: ariaDescribedBy,\n max: this.normalizeTime(this.$props.max),\n min: this.normalizeTime(this.$props.min),\n name: name,\n required: required,\n steps: steps,\n tabIndex: !this.computedShow ? tabIndex : -1,\n title: title,\n valid: this.validity().valid,\n validationMessage: validationMessage,\n validityStyles: validityStyles,\n value: this.computedValue && this.normalizeTime(this.computedValue)\n },\n disabled: disabled,\n format: format,\n formatPlaceholder: formatPlaceholder,\n id: id,\n ariaLabelledBy: ariaLabelledBy,\n ariaDescribedBy: ariaDescribedBy,\n max: this.normalizeTime(this.$props.max),\n min: this.normalizeTime(this.$props.min),\n name: name,\n onChange: this.handleInputValueChange,\n on: this.v3 ? undefined : {\n \"change\": this.handleInputValueChange\n },\n required: required,\n steps: steps,\n tabIndex: !this.computedShow ? tabIndex : -1,\n title: title,\n valid: this.validity().valid,\n validationMessage: validationMessage,\n validityStyles: validityStyles,\n value: this.computedValue && this.normalizeTime(this.computedValue)\n });\n var timeSelector = // @ts-ignore function children\n h(TimeSelector, {\n ref: 'timeSelector',\n cancelButton: cancelButton,\n attrs: this.v3 ? undefined : {\n cancelButton: cancelButton,\n disabled: disabled,\n nowButton: nowButton,\n format: format,\n min: this.$props.min,\n max: this.$props.max,\n steps: steps,\n smoothScroll: smoothScroll,\n value: this.computedValue\n },\n disabled: disabled,\n nowButton: nowButton,\n format: format,\n min: this.$props.min,\n max: this.$props.max,\n steps: steps,\n smoothScroll: smoothScroll,\n value: this.computedValue,\n onChange: this.handleValueChange,\n on: this.v3 ? undefined : {\n \"change\": this.handleValueChange,\n \"reject\": this.handleValueReject,\n \"focus\": this.timeFocus,\n \"blur\": this.timeBlur,\n \"keydown\": this.handleKeyDown\n },\n onReject: this.handleValueReject,\n onFocus: this.timeFocus,\n onBlur: this.timeBlur,\n onKeydown: this.handleKeyDown\n });\n var dateInputRendering = getTemplate.call(this, {\n h: h,\n template: dateInput,\n defaultRendering: dateInputDefaultRendering\n });\n var popup = this.$props.popup ? templateRendering.call(this, this.$props.popup, getListeners.call(this)) : undefined;\n var popupDefaultRendering = // @ts-ignore function children\n h(Popup, {\n show: this.computedShow,\n attrs: this.v3 ? undefined : {\n show: this.computedShow,\n anchor: this._anchor,\n id: this._popupId,\n anchorAlign: {\n horizontal: 'left',\n vertical: 'bottom'\n },\n popupAlign: {\n horizontal: 'left',\n vertical: 'top'\n },\n appendTo: appendTo,\n animate: animate\n },\n anchor: this._anchor,\n \"class\": popupClassNames,\n id: this._popupId,\n anchorAlign: {\n horizontal: 'left',\n vertical: 'bottom'\n },\n popupAlign: {\n horizontal: 'left',\n vertical: 'top'\n },\n appendTo: appendTo,\n animate: animate\n }, this.v3 ? function () {\n return [timeSelector];\n } : [timeSelector]);\n var popupRendering = getTemplate.call(this, {\n h: h,\n template: popup,\n defaultRendering: popupDefaultRendering,\n defaultSlots: timeSelector\n });\n var timePicker = h(\"div\", {\n \"class\": rootClassName,\n onKeydown: this.handleKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.handleKeyDown,\n \"focusin\": this.handleFocus,\n \"focusout\": this.handleBlur\n },\n style: {\n width: width\n },\n onFocusin: this.handleFocus,\n onFocusout: this.handleBlur\n }, [h(\"span\", {\n ref: this.v3 ? function (el) {\n _this.kendoAnchorRef = el;\n } : this._anchor,\n \"class\": wrapperClassNames\n }, [dateInputRendering, h(\"span\", {\n role: \"button\",\n attrs: this.v3 ? undefined : {\n role: \"button\",\n title: toggleTimeMessage,\n \"aria-controls\": this._popupId,\n \"aria-label\": toggleClockMessage\n },\n onMousedown: this.handleIconMouseDown,\n on: this.v3 ? undefined : {\n \"mousedown\": this.handleIconMouseDown,\n \"click\": this.handleIconClick\n },\n onClick: this.handleIconClick,\n title: toggleTimeMessage,\n \"class\": \"k-select\",\n \"aria-controls\": this._popupId,\n \"aria-label\": toggleClockMessage\n }, [h(\"span\", {\n \"class\": \"k-icon k-i-clock\"\n })])]), popupRendering]);\n return this.$props.label ? // @ts-ignore function children\n h(FloatingLabel, {\n label: this.$props.label,\n attrs: this.v3 ? undefined : {\n label: this.$props.label,\n editorId: id,\n editorValid: isValid,\n editorValue: this.getDateInputText(),\n editorPlaceholder: this.$props.placeholder,\n editorDisabled: this.$props.disabled\n },\n editorId: id,\n editorValid: isValid,\n editorValue: this.getDateInputText(),\n editorPlaceholder: this.$props.placeholder,\n editorDisabled: this.$props.disabled,\n style: {\n width: width\n }\n }, this.v3 ? function () {\n return [timePicker];\n } : [timePicker]) : timePicker;\n },\n methods: {\n validity: function validity() {\n var value = this.computedValue && this.normalizeTime(this.computedValue);\n var min = this.normalizeTime(this.$props.min);\n var max = this.normalizeTime(this.$props.max);\n var inRange = isInRange(value, min, max);\n var customError = this.$props.validationMessage !== undefined;\n var isValid = (!this.$props.required || this.computedValue !== null) && inRange;\n var valid = this.$props.valid !== undefined ? this.$props.valid : isValid;\n return {\n customError: customError,\n rangeOverflow: isBiggerThanMax(value, max),\n rangeUnderflow: isSmallerThanMin(value, min),\n valid: valid,\n valueMissing: this.computedValue === null\n };\n },\n getDateInputText: function getDateInputText() {\n return this.computedValue ? true : this._dateInput ? this._dateInput._element.value : '';\n },\n focus: function focus() {\n if (this._dateInput) {\n this._dateInput.focus();\n }\n },\n normalizeTime: function normalizeTime(date) {\n return setTime(MIDNIGHT_DATE, date);\n },\n setShow: function setShow(show) {\n if (this.computedShow === show) {\n return;\n }\n\n this.currentShow = show;\n },\n mergeTime: function mergeTime(value) {\n return this.computedValue && value ? setTime(this.computedValue, value) : value;\n },\n handleInputValueChange: function handleInputValueChange(event) {\n var value = this.mergeTime(event.value);\n this.handleValueChange(__assign(__assign({}, event), {\n value: value\n }));\n },\n handleValueChange: function handleValueChange(event) {\n this.currentValue = cloneDate(event.value);\n this.currentShow = false;\n this.valueDuringOnChange = event.value;\n this.showDuringOnChange = false;\n this.shouldFocusDateInput = true;\n this.$emit('change', {\n event: event.event,\n value: this.computedValue,\n show: this.computedShow,\n component: this,\n target: {\n name: this.$props.name,\n value: this.computedValue,\n valueAsDate: this.computedValue\n }\n });\n this.$emit('changemodel', this.computedValue);\n this.$emit('update:modelValue', this.computedValue);\n this.valueDuringOnChange = undefined;\n this.showDuringOnChange = undefined;\n },\n handleFocus: function handleFocus(event) {\n this._oldShow = this.computedShow;\n this.isFocused = true;\n this.$emit('focus', event);\n },\n handleBlur: function handleBlur(event) {\n this.createBlurTimeout();\n this.$emit('blur', event);\n },\n timeBlur: function timeBlur(event) {\n this.$emit('blur', event);\n clearTimeout(this._blurTimeout);\n this.createBlurTimeout();\n },\n timeFocus: function timeFocus() {\n clearTimeout(this._blurTimeout);\n },\n createBlurTimeout: function createBlurTimeout() {\n var _this = this;\n\n this._blurTimeout = setTimeout(function () {\n _this.isFocused = false;\n\n if (_this._dateInput && canUseDOM && document.activeElement !== _this._dateInput.element() && document.activeElement && document.activeElement.className.indexOf('k-time-list') === -1) {\n _this.setShow(false);\n }\n }, 200);\n },\n handleValueReject: function handleValueReject(_) {\n this.setShow(false);\n },\n handleIconClick: function handleIconClick(event) {\n if (this.$props.disabled) {\n return;\n }\n\n this.shouldFocusDateInput = true;\n this.setShow(!this.computedShow);\n this.$emit('iconclick', event);\n },\n handleIconMouseDown: function handleIconMouseDown(event) {\n event.preventDefault();\n },\n handleKeyDown: function handleKeyDown(event) {\n var altKey = event.altKey,\n keyCode = event.keyCode;\n\n if (keyCode === Keys.tab && event.target !== this._dateInput._element) {\n event.preventDefault();\n this.shouldFocusDateInput = true;\n this.setShow(false);\n return;\n }\n\n if (keyCode === Keys.esc) {\n this.shouldFocusDateInput = true;\n this.setShow(false);\n return;\n }\n\n if (altKey && (keyCode === Keys.up || keyCode === Keys.down)) {\n event.preventDefault();\n event.stopPropagation();\n this.shouldFocusDateInput = keyCode === Keys.up;\n this.setShow(keyCode === Keys.down);\n }\n }\n }\n};\nvar TimePickerVue3 = TimePicker;\nexport { TimePicker, TimePickerVue3 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nvar inject = allVue.inject;\nimport { Popup } from '@progress/kendo-vue-popup';\nimport { cloneDate } from '@progress/kendo-date-math';\nimport { guid, Keys, canUseDOM } from '@progress/kendo-vue-common';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { validatePackage, templateRendering, getListeners, getTemplate } from '@progress/kendo-vue-common';\nimport { packageMetadata } from '../package-metadata';\nimport { DateInput } from '../dateinput/DateInput';\nimport { Calendar } from '../calendar/components/Calendar';\nimport { EMPTY_SELECTIONRANGE } from '../calendar/models';\nimport { MIN_DATE, MAX_DATE } from '../defaults';\nimport { swapStartEnd, start, end, separator, messages } from '../messages';\nvar WRAPPER_STYLES = {\n display: 'inline-block'\n}; // tslint:enable:max-line-length\n\nvar DateRangePicker = {\n name: 'KendoDateRangePicker',\n // @ts-ignore\n emits: {\n blur: null,\n change: null,\n 'changemodel': null,\n 'update:modelValue': null,\n focus: null,\n keydown: null\n },\n model: {\n event: 'changemodel'\n },\n props: {\n allowReverse: {\n type: Boolean,\n default: false\n },\n calendarSettings: Object,\n defaultShow: {\n type: Boolean,\n default: false\n },\n defaultValue: {\n type: Object,\n default: function _default() {\n return EMPTY_SELECTIONRANGE;\n }\n },\n modelValue: {\n type: Object,\n default: undefined\n },\n disabled: {\n type: Boolean,\n default: false\n },\n popup: [String, Object, Function],\n calendar: [String, Object, Function],\n startDateInput: [String, Object, Function],\n endDateInput: [String, Object, Function],\n endDateInputSettings: Object,\n focusedDate: Date,\n format: {\n type: [String, Object],\n default: function _default() {\n return 'd';\n }\n },\n id: String,\n ariaLabelledBy: String,\n ariaDescribedBy: String,\n max: {\n type: Date,\n default: function _default() {\n return MAX_DATE;\n }\n },\n min: {\n type: Date,\n default: function _default() {\n return MIN_DATE;\n }\n },\n popupSettings: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n show: {\n type: Boolean,\n default: undefined\n },\n startDateInputSettings: Object,\n swapButton: {\n type: Boolean,\n default: false\n },\n tabIndex: Number,\n value: {\n type: Object,\n default: function _default() {\n return undefined;\n }\n }\n },\n created: function created() {\n this._element = null;\n this._wrapper = null;\n this._calendar = null;\n this._startDateInput = null;\n this._endDateInput = null;\n this._popupId = guid();\n this._anchor = guid();\n this._startInputId = guid();\n this._endInputId = guid();\n this._calendarId = guid();\n validatePackage(packageMetadata);\n this.currentShow = this.$props.show || this.$props.defaultShow;\n this.currentValue = this.$props.value || this.$props.defaultValue;\n this.initialAnimation = this.currentShow;\n },\n mounted: function mounted() {\n this._calendar = this.v3 ? this.calendarRef : this.$refs.calendar;\n this._startDateInput = this.v3 ? this.startDateInputRef : this.$refs.startDateInput;\n this._endDateInput = this.v3 ? this.endDateInputRef : this.$refs.endDateInput;\n\n if (this.computedShow) {\n // If defaultShow is true during the initial render, the popup is not aligned.\n this.$forceUpdate();\n this.$nextTick(function () {\n this.initialAnimation = false;\n });\n }\n },\n updated: function updated() {\n this._calendar = this.v3 ? this.calendarRef : this.$refs.calendar;\n this._startDateInput = this.v3 ? this.startDateInputRef : this.$refs.startDateInput;\n this._endDateInput = this.v3 ? this.endDateInputRef : this.$refs.endDateInput;\n\n if (this.shouldFocusCalendar) {\n this.focusCalendarElement();\n }\n\n if (this.shouldFocusDateInput) {\n this.focusDateInputElement();\n }\n\n this.shouldFocusCalendar = false;\n this.shouldFocusDateInput = false;\n },\n data: function data() {\n return {\n currentShow: false,\n currentValue: null,\n valueDuringOnChange: undefined,\n shouldFocusDateInput: false,\n shouldFocusCalendar: false\n };\n },\n computed: {\n rootClassName: function rootClassName() {\n return {\n 'k-daterangepicker': true,\n 'k-state-disabled': this.$props.disabled\n };\n },\n computedValue: function computedValue() {\n var value = this.valueDuringOnChange !== undefined ? this.valueDuringOnChange : this.$props.value !== undefined ? this.$props.value : this.$props.modelValue !== undefined ? this.$props.modelValue : this.currentValue;\n return value || EMPTY_SELECTIONRANGE;\n },\n computedShow: function computedShow() {\n return this.$props.show !== undefined ? this.$props.show : this.currentShow;\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoAnchorRef = ref(null);\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n kendoAnchorRef: kendoAnchorRef,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var value = this.computedValue || EMPTY_SELECTIONRANGE;\n var startDateInputId = (this.$props.startDateInputSettings || {}).id || this._startInputId;\n var endDateInputId = (this.$props.endDateInputSettings || {}).id || this._endInputId;\n var localizationService = provideLocalizationService(this);\n var startMessage = localizationService.toLanguageString(start, messages[start]);\n var endMessage = localizationService.toLanguageString(end, messages[end]);\n var separatorMessage = localizationService.toLanguageString(separator, messages[separator]);\n var startDateInputRender = this.$props.startDateInput ? templateRendering.call(this, this.$props.startDateInput, getListeners.call(this)) : undefined;\n\n var startSettings = __assign({\n label: startMessage,\n format: this.$props.format,\n min: this.min,\n max: this.max,\n id: this._startInputId,\n disabled: this.$props.disabled,\n valid: this.$props.valid,\n ariaHasPopup: true,\n ariaExpanded: this.computedShow,\n value: value.start\n }, this.$props.startDateInputSettings);\n\n var startDateInputDefaultRendering = h(DateInput, __assign(__assign({\n ref: this.v3 ? function (el) {\n _this.startDateInputRef = el;\n } : 'startDateInput',\n attrs: this.v3 ? undefined : startSettings\n }, startSettings), {\n onChange: this.handleEndChange,\n on: this.v3 ? undefined : {\n 'change': this.handleEndChange\n }\n }));\n var startDateInputRendering = getTemplate.call(this, {\n h: h,\n template: startDateInputRender,\n defaultRendering: startDateInputDefaultRendering,\n additionalListeners: {\n change: this.handleStartChange\n }\n });\n var endDateInputRender = this.$props.endDateInput ? templateRendering.call(this, this.$props.endDateInput, getListeners.call(this)) : undefined;\n\n var endSettings = __assign({\n label: endMessage,\n format: this.$props.format,\n min: this.min,\n max: this.max,\n id: this._endInputId,\n disabled: this.$props.disabled,\n valid: this.$props.valid,\n ariaHasPopup: true,\n ariaExpanded: this.computedShow,\n value: value.end\n }, this.$props.endDateInputSettings);\n\n var endDateInputDefaultRendering = h(DateInput, __assign(__assign({\n ref: this.v3 ? function (el) {\n _this.endDateInputRef = el;\n } : 'endDateInput',\n attrs: this.v3 ? undefined : endSettings\n }, endSettings), {\n onChange: this.handleEndChange,\n on: this.v3 ? undefined : {\n 'change': this.handleEndChange\n }\n }));\n var endDateInputRendering = getTemplate.call(this, {\n h: h,\n template: endDateInputRender,\n defaultRendering: endDateInputDefaultRendering,\n additionalListeners: {\n change: this.handleEndChange\n }\n });\n var calendarRender = this.$props.calendar ? templateRendering.call(this, this.$props.calendar, getListeners.call(this)) : undefined;\n\n var calendarSettings = __assign({\n id: this._calendarId,\n min: this.min,\n max: this.max,\n views: 2,\n allowReverse: this.$props.allowReverse,\n mode: 'range',\n focusedDate: this.$props.focusedDate,\n disabled: this.$props.disabled,\n value: value\n }, this.$props.calendarSettings);\n\n var calendarDefaultRendering = h(Calendar, __assign({\n ref: this.v3 ? function (el) {\n _this.calendarRef = el;\n } : 'calendar',\n attrs: this.v3 ? undefined : calendarSettings,\n onKeydown: this.handleKeyDown,\n on: this.v3 ? undefined : {\n 'keydown': this.handleKeyDown,\n 'focus': this.calendarFocus,\n 'blur': this.calendarBlur,\n 'change': this.handleCalendarChange\n },\n onFocus: this.calendarFocus,\n onBlur: this.calendarBlur,\n onChange: this.handleCalendarChange\n }, calendarSettings));\n var calendarRendering = getTemplate.call(this, {\n h: h,\n template: calendarRender,\n defaultRendering: calendarDefaultRendering,\n additionalListeners: {\n change: this.handleCalendarChange,\n keydown: this.handleKeyDown,\n focus: this.calendarFocus,\n blur: this.calendarBlur\n }\n });\n var _a = this.$props.popupSettings,\n popupClass = _a.popupClass,\n animate = _a.animate;\n var popupRender = this.$props.popup ? templateRendering.call(this, this.$props.popup, getListeners.call(this)) : undefined;\n\n var popupSettings = __assign({\n show: this.computedShow,\n anchor: this._anchor,\n id: this._popupId,\n anchorAlign: {\n horizontal: 'left',\n vertical: 'bottom'\n },\n popupAlign: {\n horizontal: 'left',\n vertical: 'top'\n },\n animate: this.initialAnimation ? false : animate\n }, this.$props.popupSettings);\n\n var popupDefaultRendering = h(Popup, __assign({\n attrs: this.v3 ? undefined : popupSettings,\n 'class': popupClass\n }, popupSettings), this.v3 ? function () {\n return [calendarRendering];\n } : [calendarRendering]);\n var popupRendering = getTemplate.call(this, {\n h: h,\n template: popupRender,\n defaultRendering: popupDefaultRendering,\n defaultSlots: calendarRendering\n });\n var reverseButton = h(\"span\", {\n role: \"button\",\n attrs: this.v3 ? undefined : {\n role: \"button\",\n title: provideLocalizationService(this).toLanguageString(swapStartEnd, messages[swapStartEnd]),\n \"aria-controls\": startDateInputId + ' ' + endDateInputId,\n \"aria-label\": provideLocalizationService(this).toLanguageString(swapStartEnd, messages[swapStartEnd])\n },\n \"class\": \"k-select k-button k-flat\",\n title: provideLocalizationService(this).toLanguageString(swapStartEnd, messages[swapStartEnd]),\n onMousedown: this.handleReverseMouseDown,\n on: this.v3 ? undefined : {\n \"mousedown\": this.handleReverseMouseDown,\n \"click\": this.handleReverseClick\n },\n onClick: this.handleReverseClick,\n \"aria-controls\": startDateInputId + ' ' + endDateInputId,\n \"aria-label\": provideLocalizationService(this).toLanguageString(swapStartEnd, messages[swapStartEnd])\n }, [h(\"span\", {\n style: {\n transform: 'rotate(90deg)'\n },\n \"class\": \"k-icon k-i-arrows-swap\"\n })]);\n return h(\"span\", {\n \"class\": this.rootClassName,\n style: this.$props.style,\n id: this.$props.id,\n attrs: this.v3 ? undefined : {\n id: this.$props.id,\n \"aria-labelledby\": this.$props.ariaLabelledBy,\n \"aria-describedby\": this.$props.ariaDescribedBy,\n tabIndex: this.$props.tabIndex\n },\n \"aria-labelledby\": this.$props.ariaLabelledBy,\n \"aria-describedby\": this.$props.ariaDescribedBy,\n tabIndex: this.$props.tabIndex,\n onFocusin: this.handleFocus,\n on: this.v3 ? undefined : {\n \"focusin\": this.handleFocus,\n \"focusout\": this.handleBlur,\n \"keydown\": this.handleKeyDown\n },\n onFocusout: this.handleBlur,\n onKeydown: this.handleKeyDown\n }, [h(\"span\", {\n ref: this.v3 ? function (el) {\n _this.kendoAnchorRef = el;\n } : this._anchor,\n \"class\": \"k-daterangepicker-wrap\",\n style: WRAPPER_STYLES\n }, [startDateInputRendering, (this.$props.allowReverse || this.$props.calendarSettings && this.$props.calendarSettings.allowReverse) && this.$props.swapButton ? reverseButton : separatorMessage, endDateInputRendering]), popupRendering]);\n },\n methods: {\n focus: function focus() {\n var startInput = this.getStartInput();\n\n if (startInput) {\n startInput.focus();\n }\n },\n focusCalendarElement: function focusCalendarElement() {\n var calendar = this.getCalendar();\n\n if (calendar) {\n calendar.focus({\n preventScroll: true\n });\n }\n },\n focusDateInputElement: function focusDateInputElement() {\n var startInput = this.getStartInput();\n var endInput = this.getEndInput();\n\n if (!document || !startInput || !endInput) {\n return;\n }\n\n if ((this.computedValue.start === null || this.computedValue.end !== null) && document.activeElement !== endInput) {\n startInput.focus({\n preventScroll: true\n });\n } else if (document.activeElement !== startInput) {\n endInput.focus({\n preventScroll: true\n });\n }\n },\n calculateValue: function calculateValue(props, state) {\n var value = props.value !== undefined ? props.value : state.currentValue;\n return value || EMPTY_SELECTIONRANGE;\n },\n calculateShow: function calculateShow(nextProps, nextState) {\n return nextProps.show !== undefined ? nextProps.show : nextState.currentShow;\n },\n setShow: function setShow(show) {\n if (this.currentShow === show) {\n return;\n }\n\n this.currentShow = show;\n },\n handleReverseClick: function handleReverseClick(event) {\n var value = {\n start: this.computedValue.end,\n end: this.computedValue.start\n };\n var args = {\n event: event.event\n };\n this.handleChange(value, args);\n },\n handleReverseMouseDown: function handleReverseMouseDown(event) {\n event.preventDefault();\n },\n handleFocus: function handleFocus(event) {\n var startInput = this.getStartInput();\n var endInput = this.getEndInput();\n\n if (!this.shouldFocusDateInput) {\n this.setShow(true);\n }\n\n if (startInput) {\n startInput.classList.add('k-state-focused');\n }\n\n if (endInput) {\n endInput.classList.add('k-state-focused');\n }\n\n this.$emit('focus', event);\n },\n calendarBlur: function calendarBlur() {\n // this.$emit('blur', event);\n clearTimeout(this._blurTimeout);\n this.createBlurTimeout();\n },\n calendarFocus: function calendarFocus() {\n // this.$emit('focus', event);\n clearTimeout(this._blurTimeout);\n },\n createBlurTimeout: function createBlurTimeout() {\n var _this = this;\n\n this._blurTimeout = setTimeout(function () {\n var startInput = _this.getStartInput();\n\n var endInput = _this.getEndInput();\n\n if (startInput) {\n startInput.classList.remove('k-state-focused');\n }\n\n if (endInput) {\n endInput.classList.remove('k-state-focused');\n }\n\n if (startInput && endInput && canUseDOM && startInput && document.activeElement !== endInput) {\n _this.setShow(false);\n }\n }, 200);\n },\n getStartInput: function getStartInput() {\n return this._startDateInput && this._startDateInput.element ? this._startDateInput.element() : document.getElementById(this._startInputId);\n },\n getEndInput: function getEndInput() {\n return this._endDateInput && this._endDateInput.element ? this._endDateInput.element() : document.getElementById(this._endInputId);\n },\n getCalendar: function getCalendar() {\n return this._calendar && this._calendar.element ? this._calendar : document.getElementById(this._calendarId);\n },\n handleBlur: function handleBlur(event) {\n this.createBlurTimeout();\n this.$emit('blur', event);\n },\n handleEndChange: function handleEndChange(event) {\n var value = {\n start: this.computedValue.start,\n end: cloneDate(event.value || undefined)\n };\n this.handleChange(value, event);\n },\n handleStartChange: function handleStartChange(event) {\n var value = {\n start: cloneDate(event.value || undefined),\n end: this.computedValue.end\n };\n this.handleChange(value, event);\n },\n extractRangeFromValue: function extractRangeFromValue(event) {\n if (!Array.isArray(event.value) && !(event.value instanceof Date)) {\n return event.value || EMPTY_SELECTIONRANGE;\n }\n\n var candidate = Array.isArray(event.value) ? event.value[0] : event.value;\n return {\n start: this.computedValue.end !== null ? candidate : this.computedValue.start,\n end: this.computedValue.start !== null ? candidate : this.computedValue.end\n };\n },\n handleCalendarChange: function handleCalendarChange(event) {\n var value = this.extractRangeFromValue(event);\n this.handleChange(value, event);\n },\n handleKeyDown: function handleKeyDown(event) {\n var keyCode = event.keyCode,\n altKey = event.altKey;\n var endInput = this.getEndInput();\n var calendar = this.getCalendar();\n\n if (keyCode === Keys.esc) {\n event.preventDefault();\n this.shouldFocusDateInput = true;\n this.setShow(false);\n } else if (altKey && keyCode === Keys.down) {\n event.preventDefault();\n this.shouldFocusCalendar = true;\n this.setShow(true);\n } else if (keyCode === Keys.tab && this.computedShow && calendar && endInput && document && document.activeElement === endInput) {\n event.preventDefault();\n this.focusCalendarElement();\n }\n\n this.$emit('keydown', event);\n },\n handleChange: function handleChange(value, event) {\n this.currentValue = value;\n this.valueDuringOnChange = value;\n var args = {\n event: event.event,\n value: this.computedValue,\n show: this.computedShow,\n component: this,\n target: {\n name: this.$props.name,\n value: this.computedValue,\n show: this.computedShow\n }\n };\n this.$emit('change', args);\n this.$emit('changemodel', this.computedValue);\n this.$emit('update:modelValue', this.computedValue);\n this.valueDuringOnChange = undefined;\n }\n }\n};\nvar DateRangePickerVue3 = DateRangePicker;\nexport { DateRangePicker, DateRangePickerVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nvar inject = allVue.inject;\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { messages, date, time, dateTimePickerCancel as cancel, dateTimePickerSet as set } from '../messages';\nimport { Button, ButtonGroup } from '@progress/kendo-vue-buttons';\nimport { Calendar } from '../calendar/components/Calendar';\nimport { TimePart } from '../timepicker/TimePart';\nimport { setTime, getToday, MIN_TIME, MAX_TIME, MAX_DATE, MIN_DATE } from '../utils';\nimport { isEqualDate } from '@progress/kendo-date-math';\nimport { Keys, classNames, cloneDate, getTemplate, canUseDOM } from '@progress/kendo-vue-common';\nimport { MIDNIGHT_DATE } from '../defaults';\nimport { getNow } from '../timepicker/utils'; // tslint:enable:max-line-length\n\nvar DateTimeSelector = {\n name: 'KendoDateTimeSelector',\n props: {\n value: Date,\n disabled: {\n type: Boolean,\n default: false\n },\n cancelButton: {\n type: Boolean,\n default: true\n },\n min: {\n type: Date,\n default: MIN_DATE\n },\n max: {\n type: Date,\n default: MAX_DATE\n },\n maxTime: {\n type: Date,\n default: function _default() {\n return cloneDate(MAX_TIME);\n }\n },\n minTime: {\n type: Date,\n default: function _default() {\n return cloneDate(MIN_TIME);\n }\n },\n weekNumber: {\n type: Boolean,\n default: false\n },\n steps: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n focusedDate: Date,\n format: String,\n calendar: Object\n },\n created: function created() {\n this._calendarWrap = null;\n this.currentTab = 'date';\n this.dateValue = this.$props.value;\n this.timeValue = this.$props.value || MIDNIGHT_DATE;\n },\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n data: function data() {\n return {\n currentTab: null,\n dateValue: null,\n timeValue: Date\n };\n },\n computed: {\n hasDateValue: function hasDateValue() {\n return this.dateValue !== null;\n },\n computedMinTime: function computedMinTime() {\n return this.$props.minTime !== undefined ? this.$props.minTime : this.normalizeRange(this.$props.min, this.dateValue);\n },\n computedMaxTime: function computedMaxTime() {\n return this.$props.maxTime !== undefined ? this.$props.maxTime : this.normalizeRange(this.$props.max, this.dateValue);\n }\n },\n mounted: function mounted() {\n this._acceptButton = this.$refs.acceptButton;\n this._calendar = this.$refs.calendar;\n this._calendarWrap = this.$refs.calendarWrap;\n this._cancelButton = this.$refs.cancelButton;\n this._timePart = this.$refs.timePart;\n this.focus({\n preventScroll: true\n });\n },\n updated: function updated() {\n if (this.shouldFocusPart) {\n this.focus({\n preventScroll: true\n });\n }\n\n this.shouldFocusPart = false;\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoAnchorRef = ref(null);\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n kendoAnchorRef: kendoAnchorRef,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this2 = this;\n\n var h = gh || createElement;\n var _a = this.$props,\n disabled = _a.disabled,\n cancelButton = _a.cancelButton,\n min = _a.min,\n max = _a.max,\n weekNumber = _a.weekNumber,\n focusedDate = _a.focusedDate,\n format = _a.format,\n steps = _a.steps;\n var rootClassName = classNames({\n 'k-date-tab': this.currentTab === 'date',\n 'k-time-tab': this.currentTab === 'time',\n 'k-state-disabled': disabled\n }, 'k-datetime-wrap');\n var setButtonClassName = classNames({\n 'k-state-disabled': !this.hasDateValue\n }, 'k-time-accept k-button k-primary');\n var localizationService = provideLocalizationService(this);\n var dateMessage = localizationService.toLanguageString(date, messages[date]);\n var timeMessage = localizationService.toLanguageString(time, messages[time]);\n var cancelMessage = localizationService.toLanguageString(cancel, messages[cancel]);\n var setMessage = localizationService.toLanguageString(set, messages[set]);\n var calendarDefaultRendering = // @ts-ignore function children\n h(Calendar, {\n ref: 'calendar',\n min: min,\n attrs: this.v3 ? undefined : {\n min: min,\n max: max,\n weekNumber: weekNumber,\n focusedDate: focusedDate,\n disabled: disabled || this.currentTab !== 'date',\n value: this.dateValue\n },\n max: max,\n weekNumber: weekNumber,\n focusedDate: focusedDate,\n disabled: disabled || this.currentTab !== 'date',\n value: this.dateValue,\n onChange: this.handleCalendarValueChange,\n on: this.v3 ? undefined : {\n \"change\": this.handleCalendarValueChange,\n \"focus\": this.handleFocus,\n \"blur\": this.handleBlur\n },\n onFocus: this.handleFocus,\n onBlur: this.handleBlur\n });\n var calendar = getTemplate.call(this, {\n h: h,\n template: this.$props.calendar,\n defaultRendering: calendarDefaultRendering\n });\n return h(\"div\", {\n onKeydown: this.handleKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.handleKeyDown\n },\n \"class\": rootClassName,\n tabIndex: -1,\n attrs: this.v3 ? undefined : {\n tabIndex: -1\n }\n }, [h(\"div\", {\n \"class\": \"k-datetime-buttongroup\"\n }, [// @ts-ignore function children\n h(ButtonGroup, {\n width: \"100%\",\n attrs: this.v3 ? undefined : {\n width: \"100%\"\n }\n }, this.v3 ? function () {\n return [// @ts-ignore function children\n h(Button, {\n selected: _this2.currentTab === 'date',\n attrs: _this2.v3 ? undefined : {\n selected: _this2.currentTab === 'date',\n togglable: true\n },\n togglable: true,\n onClick: _this2.handleDateClick,\n on: _this2.v3 ? undefined : {\n \"click\": _this2.handleDateClick\n }\n }, _this2.v3 ? function () {\n return [dateMessage];\n } : [dateMessage]), // @ts-ignore function children\n h(Button, {\n selected: _this2.currentTab === 'time',\n attrs: _this2.v3 ? undefined : {\n selected: _this2.currentTab === 'time',\n togglable: true\n },\n togglable: true,\n onClick: _this2.handleTimeClick,\n on: _this2.v3 ? undefined : {\n \"click\": _this2.handleTimeClick\n }\n }, _this2.v3 ? function () {\n return [timeMessage];\n } : [timeMessage])];\n } : [h(Button, {\n selected: _this2.currentTab === 'date',\n attrs: _this2.v3 ? undefined : {\n selected: _this2.currentTab === 'date',\n togglable: true\n },\n togglable: true,\n onClick: _this2.handleDateClick,\n on: _this2.v3 ? undefined : {\n \"click\": _this2.handleDateClick\n }\n }, _this2.v3 ? function () {\n return [dateMessage];\n } : [dateMessage]), h(Button, {\n selected: _this2.currentTab === 'time',\n attrs: _this2.v3 ? undefined : {\n selected: _this2.currentTab === 'time',\n togglable: true\n },\n togglable: true,\n onClick: _this2.handleTimeClick,\n on: _this2.v3 ? undefined : {\n \"click\": _this2.handleTimeClick\n }\n }, _this2.v3 ? function () {\n return [timeMessage];\n } : [timeMessage])])]), h(\"div\", {\n \"class\": \"k-datetime-selector\"\n }, [h(\"div\", {\n \"class\": \"k-datetime-calendar-wrap\",\n ref: 'calendarWrap'\n }, [calendar]), h(\"div\", {\n \"class\": \"k-datetime-time-wrap\"\n }, [// @ts-ignore function children\n h(TimePart, {\n key: 1,\n onNowclick: this.handleNowClick,\n on: this.v3 ? undefined : {\n \"nowclick\": this.handleNowClick,\n \"change\": this.handleTimeListContainerChange,\n \"mount\": this.handleTimePartMount,\n \"focus\": this.handleFocus,\n \"blur\": this.handleBlur\n },\n disabled: disabled || this.currentTab !== 'time',\n attrs: this.v3 ? undefined : {\n disabled: disabled || this.currentTab !== 'time',\n min: this.computedMinTime || MIN_TIME,\n max: this.computedMaxTime || MAX_TIME,\n value: this.timeValue,\n format: format,\n steps: steps\n },\n ref: 'timePart',\n min: this.computedMinTime || MIN_TIME,\n max: this.computedMaxTime || MAX_TIME,\n value: this.timeValue,\n format: format,\n steps: steps,\n onChange: this.handleTimeListContainerChange,\n onMount: this.handleTimePartMount,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur\n })])]), h(\"div\", {\n \"class\": \"k-datetime-footer k-action-buttons\"\n }, [cancelButton && h(\"button\", {\n ref: 'cancelButton',\n \"class\": \"k-button k-time-cancel\",\n onClick: this.handleReject,\n on: this.v3 ? undefined : {\n \"click\": this.handleReject\n },\n title: cancelMessage,\n attrs: this.v3 ? undefined : {\n title: cancelMessage,\n \"aria-label\": cancelMessage\n },\n \"aria-label\": cancelMessage\n }, [cancelMessage]), h(\"button\", {\n ref: 'acceptButton',\n \"class\": setButtonClassName,\n onClick: this.handleAccept,\n on: this.v3 ? undefined : {\n \"click\": this.handleAccept\n },\n title: setMessage,\n attrs: this.v3 ? undefined : {\n title: setMessage,\n \"aria-label\": setMessage\n },\n \"aria-label\": setMessage\n }, [setMessage])])]);\n },\n methods: {\n handleBlur: function handleBlur(event) {\n this.$emit('blur', event);\n },\n handleFocus: function handleFocus(event) {\n this.$emit('focus', event);\n },\n focus: function focus(args) {\n var _this = this;\n\n this.$nextTick(function () {\n if (_this.currentTab === 'time' && _this._timePart) {\n _this._timePart.focus(args);\n }\n\n var calendarElement = _this.calendarElement();\n\n if (_this.currentTab === 'date' && calendarElement) {\n calendarElement.focus(args);\n }\n });\n },\n calendarElement: function calendarElement() {\n return this._calendar && this._calendar.$el ? this._calendar : null;\n },\n normalizeRange: function normalizeRange(candidate, value) {\n return isEqualDate(candidate, value || getToday()) ? candidate : null;\n },\n hasActiveButton: function hasActiveButton() {\n if (!this._acceptButton) {\n return false;\n }\n\n return canUseDOM && (document.activeElement === this._acceptButton || document.activeElement === this._cancelButton);\n },\n mergeTime: function mergeTime(current, candidate) {\n return current && candidate ? setTime(candidate, current) : candidate;\n },\n mergeDate: function mergeDate(candidate, value) {\n return candidate ? setTime(candidate || getToday(), value) : value;\n },\n move: function move(direction) {\n if (direction === 'right' && this.currentTab === 'time') {\n return;\n }\n\n if (direction === 'left' && this.currentTab === 'date') {\n return;\n }\n\n var nextPart = direction === 'left' ? 'date' : 'time';\n this.shouldFocusPart = true;\n this.currentTab = nextPart;\n },\n handleReject: function handleReject(event) {\n this.dateValue = this.$props.value;\n this.timeValue = this.$props.value || MIDNIGHT_DATE;\n var value = this.mergeDate(this.$props.value, this.$props.value || MIDNIGHT_DATE);\n var args = {\n event: event,\n target: this,\n value: value\n };\n this.$emit('reject', args);\n },\n handleAccept: function handleAccept(event, timeOverride) {\n if (!this.dateValue || !this.timeValue || !this.hasDateValue) {\n return;\n }\n\n var value = this.mergeDate(this.dateValue, timeOverride || this.timeValue);\n this.$emit('change', {\n event: event,\n value: value,\n target: this\n });\n },\n handleNowClick: function handleNowClick(event) {\n this.timeValue = getNow();\n this.handleAccept(event, getNow());\n },\n handleCalendarValueChange: function handleCalendarValueChange(event) {\n event.event.stopPropagation(); // @ts-ignore\n\n this.dateValue = event.value;\n this.currentTab = 'time';\n this.shouldFocusPart = true;\n },\n handleTimeListContainerChange: function handleTimeListContainerChange(candidate) {\n this.timeValue = candidate;\n },\n handleDateClick: function handleDateClick(event) {\n event.stopPropagation();\n this.move('left');\n },\n handleTimeClick: function handleTimeClick(event) {\n event.stopPropagation();\n this.move('right');\n },\n handleKeyDown: function handleKeyDown(event) {\n var keyCode = event.keyCode,\n altKey = event.altKey;\n this.$emit('keydown', event);\n\n switch (keyCode) {\n case Keys.enter:\n if (!this.hasActiveButton() && this.hasDateValue) {\n this.handleAccept(event);\n }\n\n return;\n\n case Keys.left:\n if (!altKey) {\n return;\n }\n\n this.move('left');\n return;\n\n case Keys.right:\n if (!altKey) {\n return;\n }\n\n this.move('right');\n return;\n\n default:\n return;\n }\n },\n handleTimePartMount: function handleTimePartMount(value) {\n this.timeValue = value;\n }\n }\n};\nvar DateTimeSelectorVue3 = DateTimeSelector;\nexport { DateTimeSelector, DateTimeSelectorVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nvar inject = allVue.inject;\nimport { FloatingLabel } from '@progress/kendo-vue-labels';\nimport { Popup } from '@progress/kendo-vue-popup';\nimport { cloneDate } from '@progress/kendo-date-math';\nimport { classNames, guid, Keys, templateRendering, getListeners, getTemplate, validatePackage, canUseDOM } from '@progress/kendo-vue-common';\nimport { DateInput } from '../dateinput/DateInput';\nimport { packageMetadata } from '../package-metadata';\nimport { MIN_DATE, MAX_DATE, isInDateRange, MAX_TIME } from '../utils';\nimport { messages, toggleDateTimeSelector } from '../messages';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { DateTimeSelector } from './DateTimeSelector';\nimport { isInTimeRange } from '../timepicker/utils';\nimport { MIN_TIME } from '../defaults';\nimport { defaultFormatPlaceholder } from '../dateinput/utils'; // tslint:enable:max-line-length\n\nvar DateTimePicker = {\n name: 'KendoDateTimePicker',\n // @ts-ignore\n emits: {\n 'changemodel': null,\n 'update:modelValue': null,\n 'iconclick': null,\n 'change': null,\n 'focus': null,\n 'blur': null\n },\n props: {\n modelValue: {\n type: Date,\n default: undefined\n },\n defaultShow: {\n type: Boolean,\n default: false\n },\n defaultValue: {\n type: Date,\n default: null\n },\n disabled: {\n type: Boolean,\n default: false\n },\n dateInput: {\n type: [String, Object, Function],\n default: function _default() {\n return undefined;\n }\n },\n popup: {\n type: [String, Object, Function],\n default: function _default() {\n return undefined;\n }\n },\n calendar: {\n type: [String, Object, Function],\n default: function _default() {\n return undefined;\n }\n },\n focusedDate: Date,\n format: {\n type: [String, Object],\n default: function _default() {\n return 'g';\n }\n },\n formatPlaceholder: {\n type: [String, Object],\n default: function _default() {\n return defaultFormatPlaceholder;\n }\n },\n id: String,\n ariaLabelledBy: String,\n ariaDescribedBy: String,\n min: {\n type: Date,\n default: function _default() {\n return MIN_DATE;\n }\n },\n max: {\n type: Date,\n default: function _default() {\n return MAX_DATE;\n }\n },\n maxTime: {\n type: Date,\n default: function _default() {\n return cloneDate(MAX_TIME);\n }\n },\n minTime: {\n type: Date,\n default: function _default() {\n return cloneDate(MIN_TIME);\n }\n },\n name: String,\n label: String,\n placeholder: String,\n popupSettings: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n show: {\n type: Boolean,\n default: undefined\n },\n tabIndex: {\n type: Number,\n default: 0\n },\n title: {\n type: String,\n default: function _default() {\n return '';\n }\n },\n steps: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n value: Date,\n weekNumber: {\n type: Boolean,\n default: false\n },\n width: String,\n validationMessage: String,\n required: {\n type: Boolean,\n default: false\n },\n validityStyles: {\n type: Boolean,\n default: true\n },\n validate: Boolean,\n valid: {\n type: Boolean,\n default: undefined\n },\n cancelButton: {\n type: Boolean,\n default: true\n }\n },\n model: {\n event: 'changemodel'\n },\n created: function created() {\n this._anchor = guid();\n this._popupId = guid();\n this._wrapper = null;\n this._dateInput = null;\n this._dateTimeSelector = null;\n validatePackage(packageMetadata);\n this.currentValue = this.$props.defaultValue;\n this.currentShow = this.$props.defaultShow;\n },\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n data: function data() {\n return {\n currentValue: null,\n currentShow: false,\n valueDuringOnChange: undefined,\n showDuringOnChange: undefined,\n shouldFocusDateInput: false,\n isFocused: false\n };\n },\n computed: {\n computedValue: function computedValue() {\n var value = this.valueDuringOnChange !== undefined ? this.valueDuringOnChange : this.$props.value !== undefined ? this.$props.value : this.$props.modelValue !== undefined ? this.$props.modelValue : this.$data.currentValue;\n return value !== null ? cloneDate(value) : null;\n },\n computedShow: function computedShow() {\n return this.showDuringOnChange !== undefined ? this.showDuringOnChange : this.$props.show !== undefined ? this.$props.show : this.currentShow;\n }\n },\n watch: {\n show: function show(_newShow, oldShow) {\n this._oldShow = oldShow;\n },\n currentShow: function currentShow(_newShow, oldShow) {\n this._oldShow = oldShow;\n }\n },\n mounted: function mounted() {\n if (this.computedShow) {\n // If defaultShow is true during the initial render, the popup is not aligned.\n this.$forceUpdate();\n }\n\n var dateInputElement = this.dateInputElement();\n this._dateTimeSelector = this.$refs.dateTimeSelector;\n this._wrapper = this.v3 ? this.kendoAnchorRef : this.$refs[this._anchor];\n this._dateInput = this.v3 ? this.dateInputRef : this.$refs.dateInput;\n\n if (dateInputElement) {\n dateInputElement.setAttribute('aria-haspopup', 'true');\n dateInputElement.setAttribute('aria-expanded', \"\" + this.computedShow);\n }\n },\n updated: function updated() {\n var dateInputElement = this.dateInputElement();\n this._dateTimeSelector = this.$refs.dateTimeSelector;\n this._wrapper = this.v3 ? this.kendoAnchorRef : this.$refs[this._anchor];\n\n if (dateInputElement) {\n dateInputElement.setAttribute('aria-expanded', \"\" + this.computedShow);\n }\n\n if (this._dateTimeSelector && this.computedShow && !this._oldShow) {\n this._dateTimeSelector.focus({\n preventScroll: true\n });\n }\n\n if (dateInputElement && !this.computedShow && this.shouldFocusDateInput) {\n this._dateInput.focus({\n preventScroll: true\n });\n }\n\n this.shouldFocusDateInput = false;\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoAnchorRef = ref(null);\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n kendoAnchorRef: kendoAnchorRef,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var _a = this.$props,\n disabled = _a.disabled,\n tabIndex = _a.tabIndex,\n title = _a.title,\n id = _a.id,\n format = _a.format,\n formatPlaceholder = _a.formatPlaceholder,\n min = _a.min,\n max = _a.max,\n weekNumber = _a.weekNumber,\n focusedDate = _a.focusedDate,\n width = _a.width,\n name = _a.name,\n steps = _a.steps,\n placeholder = _a.placeholder,\n validationMessage = _a.validationMessage,\n required = _a.required,\n validityStyles = _a.validityStyles,\n cancelButton = _a.cancelButton,\n minTime = _a.minTime,\n maxTime = _a.maxTime,\n ariaLabelledBy = _a.ariaLabelledBy,\n ariaDescribedBy = _a.ariaDescribedBy;\n var _b = this.$props.popupSettings,\n popupClass = _b.popupClass,\n appendTo = _b.appendTo,\n animate = _b.animate;\n var isValid = !this.$props.validityStyles || this.validity().valid;\n var rootClassName = classNames('k-widget k-datetimepicker', {\n 'k-state-invalid': !isValid\n });\n var wrapperClassNames = classNames('k-picker-wrap', {\n 'k-state-disabled': disabled,\n 'k-state-focused': this.isFocused\n });\n var dateInput = this.$props.dateInput ? templateRendering.call(this, this.$props.dateInput, getListeners.call(this)) : undefined;\n var dateInputDefaultRendering = // @ts-ignore function children\n h(DateInput, {\n ref: this.v3 ? function (el) {\n _this.dateInputRef = el;\n } : 'dateInput',\n placeholder: placeholder,\n attrs: this.v3 ? undefined : {\n placeholder: placeholder,\n disabled: disabled,\n format: format,\n formatPlaceholder: formatPlaceholder,\n id: id,\n ariaLabelledBy: ariaLabelledBy,\n ariaDescribedBy: ariaDescribedBy,\n max: max,\n min: min,\n minTime: minTime,\n maxTime: maxTime,\n name: name,\n required: required,\n steps: steps,\n tabIndex: !this.computedShow ? tabIndex : -1,\n title: title,\n valid: this.validity().valid,\n validationMessage: validationMessage,\n validityStyles: validityStyles,\n value: this.computedValue\n },\n disabled: disabled,\n format: format,\n formatPlaceholder: formatPlaceholder,\n id: id,\n ariaLabelledBy: ariaLabelledBy,\n ariaDescribedBy: ariaDescribedBy,\n max: max,\n min: min,\n minTime: minTime,\n maxTime: maxTime,\n name: name,\n onChange: this.handleValueChange,\n on: this.v3 ? undefined : {\n \"change\": this.handleValueChange\n },\n required: required,\n steps: steps,\n tabIndex: !this.computedShow ? tabIndex : -1,\n title: title,\n valid: this.validity().valid,\n validationMessage: validationMessage,\n validityStyles: validityStyles,\n value: this.computedValue\n });\n var dateInputRendering = getTemplate.call(this, {\n h: h,\n template: dateInput,\n defaultRendering: dateInputDefaultRendering\n });\n var calendar = this.$props.calendar ? templateRendering.call(this, this.$props.calendar, getListeners.call(this)) : undefined;\n var dataTimeSelector = // @ts-ignore function children\n h(DateTimeSelector, {\n ref: 'dateTimeSelector',\n cancelButton: cancelButton,\n attrs: this.v3 ? undefined : {\n cancelButton: cancelButton,\n value: this.computedValue,\n disabled: disabled,\n weekNumber: weekNumber,\n min: this.$props.min,\n max: this.$props.max,\n minTime: minTime,\n maxTime: maxTime,\n focusedDate: focusedDate,\n format: format,\n calendar: calendar,\n steps: steps\n },\n value: this.computedValue,\n onChange: this.handleValueChange,\n on: this.v3 ? undefined : {\n \"change\": this.handleValueChange,\n \"reject\": this.handleReject,\n \"focus\": this.timeSelectorFocus,\n \"blur\": this.timeSelectorBlur,\n \"keydown\": this.handleKeyDown\n },\n onReject: this.handleReject,\n disabled: disabled,\n weekNumber: weekNumber,\n min: this.$props.min,\n max: this.$props.max,\n minTime: minTime,\n maxTime: maxTime,\n focusedDate: focusedDate,\n format: format,\n calendar: calendar,\n steps: steps,\n onFocus: this.timeSelectorFocus,\n onBlur: this.timeSelectorBlur,\n onKeydown: this.handleKeyDown\n });\n var popupClassNames = classNames('k-datetime-container k-group k-reset', popupClass);\n var popup = this.$props.popup ? templateRendering.call(this, this.$props.popup, getListeners.call(this)) : undefined;\n var popupDefaultRendering = // @ts-ignore function children\n h(Popup, {\n show: this.computedShow,\n attrs: this.v3 ? undefined : {\n show: this.computedShow,\n anchor: this._anchor,\n id: this._popupId,\n anchorAlign: {\n horizontal: 'left',\n vertical: 'bottom'\n },\n popupAlign: {\n horizontal: 'left',\n vertical: 'top'\n },\n appendTo: appendTo,\n animate: animate\n },\n anchor: this._anchor,\n \"class\": popupClassNames,\n id: this._popupId,\n anchorAlign: {\n horizontal: 'left',\n vertical: 'bottom'\n },\n popupAlign: {\n horizontal: 'left',\n vertical: 'top'\n },\n appendTo: appendTo,\n animate: animate\n }, this.v3 ? function () {\n return [dataTimeSelector];\n } : [dataTimeSelector]);\n var popupRendering = getTemplate.call(this, {\n h: h,\n template: popup,\n defaultRendering: popupDefaultRendering,\n defaultSlots: dataTimeSelector\n });\n var dateTimePicker = h(\"div\", {\n \"class\": rootClassName,\n onKeydown: this.handleKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.handleKeyDown,\n \"focusin\": this.handleFocus,\n \"focusout\": this.handleBlur\n },\n style: {\n width: width\n },\n onFocusin: this.handleFocus,\n onFocusout: this.handleBlur\n }, [h(\"div\", {\n ref: this.v3 ? function (el) {\n _this.kendoAnchorRef = el;\n } : this._anchor,\n \"class\": wrapperClassNames\n }, [dateInputRendering, h(\"span\", {\n role: \"button\",\n attrs: this.v3 ? undefined : {\n role: \"button\",\n title: provideLocalizationService(this).toLanguageString(toggleDateTimeSelector, messages[toggleDateTimeSelector]),\n \"aria-controls\": this._popupId,\n \"aria-label\": provideLocalizationService(this).toLanguageString(toggleDateTimeSelector, messages[toggleDateTimeSelector])\n },\n onMousedown: this.handleIconMouseDown,\n on: this.v3 ? undefined : {\n \"mousedown\": this.handleIconMouseDown,\n \"click\": this.handleDateIconClick\n },\n onClick: this.handleDateIconClick,\n title: provideLocalizationService(this).toLanguageString(toggleDateTimeSelector, messages[toggleDateTimeSelector]),\n \"class\": \"k-select\",\n \"aria-controls\": this._popupId,\n \"aria-label\": provideLocalizationService(this).toLanguageString(toggleDateTimeSelector, messages[toggleDateTimeSelector])\n }, [h(\"span\", {\n \"class\": \"k-link k-link-date\"\n }, [h(\"span\", {\n \"class\": \"k-icon k-i-calendar\"\n })])])]), popupRendering]);\n return this.$props.label ? // @ts-ignore function children\n h(FloatingLabel, {\n label: this.$props.label,\n attrs: this.v3 ? undefined : {\n label: this.$props.label,\n editorId: id,\n editorValid: isValid,\n editorValue: this.getDateInputText(),\n editorPlaceholder: this.$props.placeholder,\n editorDisabled: this.$props.disabled\n },\n editorId: id,\n editorValid: isValid,\n editorValue: this.getDateInputText(),\n editorPlaceholder: this.$props.placeholder,\n editorDisabled: this.$props.disabled,\n style: {\n width: width\n }\n }, this.v3 ? function () {\n return [dateTimePicker];\n } : [dateTimePicker]) : dateTimePicker;\n },\n methods: {\n validity: function validity() {\n var inRange = isInDateRange(this.computedValue, this.$props.min, this.$props.max) && isInTimeRange(this.computedValue, this.$props.minTime || MIN_TIME, this.$props.maxTime || MAX_TIME);\n var customError = this.$props.validationMessage !== undefined;\n var isValid = (!this.$props.required || this.computedValue !== null) && inRange;\n var valid = this.$props.valid !== undefined ? this.$props.valid : isValid;\n return {\n customError: customError,\n rangeOverflow: this.computedValue && this.$props.max.getTime() < this.computedValue.getTime() || false,\n rangeUnderflow: this.computedValue && this.computedValue.getTime() < this.$props.min.getTime() || false,\n valid: valid,\n valueMissing: this.computedValue === null\n };\n },\n getDateInputText: function getDateInputText() {\n return this.computedValue ? true : this._dateInput ? this._dateInput._element.value : '';\n },\n focus: function focus() {\n var dateInputElement = this.dateInputElement();\n\n if (dateInputElement) {\n dateInputElement.focus();\n }\n },\n setShow: function setShow(show) {\n if (this.computedShow === show) {\n return;\n }\n\n this.currentShow = show;\n },\n handleReject: function handleReject() {\n this.setShow(false);\n },\n handleValueChange: function handleValueChange(event) {\n this.currentValue = cloneDate(event.value || undefined);\n this.currentShow = false;\n this.valueDuringOnChange = event.value;\n this.showDuringOnChange = false;\n this.shouldFocusDateInput = true;\n this.$emit('change', {\n event: event.event,\n value: this.computedValue,\n show: this.computedShow,\n component: this,\n target: {\n name: this.$props.name,\n value: this.computedValue,\n valueAsDate: this.computedValue\n }\n });\n this.$emit('changemodel', this.computedValue);\n this.$emit('update:modelValue', this.computedValue);\n this.valueDuringOnChange = undefined;\n this.showDuringOnChange = undefined;\n },\n handleFocus: function handleFocus(event) {\n this.isFocused = true;\n this.$emit('focus', event);\n },\n handleBlur: function handleBlur(event) {\n this.createBlurTimeout();\n this.$emit('blur', event);\n },\n timeSelectorBlur: function timeSelectorBlur(event) {\n this.$emit('blur', event);\n clearTimeout(this._blurTimeout);\n this.createBlurTimeout();\n },\n timeSelectorFocus: function timeSelectorFocus() {\n clearTimeout(this._blurTimeout);\n },\n createBlurTimeout: function createBlurTimeout() {\n var _this = this;\n\n this._blurTimeout = setTimeout(function () {\n _this.isFocused = false;\n\n if (_this._dateInput && canUseDOM && document.activeElement !== _this._dateInput.element() && document.activeElement && document.activeElement.className.indexOf('k-time-list') === -1) {\n _this.setShow(false);\n }\n }, 200);\n },\n handleDateIconClick: function handleDateIconClick(event) {\n if (this.$props.disabled) {\n return;\n }\n\n this.shouldFocusDateInput = true;\n this.setShow(!this.computedShow);\n this.$emit('iconclick', event);\n },\n handleIconMouseDown: function handleIconMouseDown(event) {\n event.preventDefault();\n },\n handleKeyDown: function handleKeyDown(event) {\n var altKey = event.altKey,\n keyCode = event.keyCode;\n\n if (keyCode === Keys.tab && event.target !== this._dateInput._element) {\n event.preventDefault();\n this.$data.shouldFocusDateInput = true;\n this.setShow(false);\n return;\n }\n\n if (keyCode === Keys.esc) {\n this.shouldFocusDateInput = true;\n this.setShow(false);\n return;\n }\n\n if (altKey && (keyCode === Keys.up || keyCode === Keys.down)) {\n event.preventDefault();\n event.stopPropagation();\n this.shouldFocusDateInput = keyCode === Keys.up;\n this.setShow(keyCode === Keys.down);\n }\n },\n dateInputElement: function dateInputElement() {\n return this._dateInput && this._dateInput.$el || this._wrapper && this._wrapper.querySelector('.k-dateinput-wrap > input.k-input');\n }\n }\n};\nvar DateTimePickerVue3 = DateTimePicker;\nexport { DateTimePicker, DateTimePickerVue3 };","var _Draggable;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport KendoDraggable from '@telerik/kendo-draggable';\nimport { getDefaultSlots } from './defaultSlots';\n/**\n * Represents the default `Draggable` component.\n */\n\nvar Draggable = (_Draggable = {\n // @ts-ignore\n emits: {\n press: null,\n drag: null,\n release: null\n },\n inheritAttrs: false,\n created: function created() {\n this.element = null;\n this.draggable = new KendoDraggable({\n press: this.press,\n drag: this.drag,\n release: this.release\n });\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n mounted: function mounted() {\n if (this.$el) {\n this.element = this.$el.nodeType === 3 ? this.$el.nextElementSibling : this.$el;\n this.draggable.bindTo(this.element);\n }\n },\n destroyed: !!gh ? undefined : function () {\n this.draggable.destroy();\n },\n // @ts-ignore\n unmounted: function unmounted() {\n this.draggable.destroy();\n },\n methods: {\n press: function press(event) {\n if (this.element) {\n this.$emit('press', event, this.element);\n }\n },\n drag: function drag(event) {\n if (this.element) {\n this.$emit('drag', event, this.element);\n }\n },\n release: function release(event) {\n if (this.element) {\n this.$emit('release', event, this.element);\n }\n }\n }\n}, _defineProperty(_Draggable, \"setup\", !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n}), _defineProperty(_Draggable, \"render\", function render(createElement) {\n // @ts-ignore\n var h = gh || createElement;\n return getDefaultSlots(this);\n}), _Draggable);\nexport { Draggable };","/**\n * @hidden\n */\nexport var classNames = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return args\n .filter(function (arg) { return arg !== true && !!arg; })\n .map(function (arg) {\n return Array.isArray(arg)\n ? classNames.apply(void 0, arg) : typeof arg === 'object'\n ? Object\n .keys(arg)\n .map(function (key, idx) { return arg[idx] || (arg[key] && key) || null; })\n .filter(function (el) { return el !== null; })\n .join(' ')\n : arg;\n })\n .filter(function (arg) { return !!arg; })\n .join(' ');\n};\n","/* tslint:disable:no-bitwise */\n/**\n * @hidden\n */\nvar guid = function () {\n var id = '';\n var i;\n var random;\n for (i = 0; i < 32; i++) {\n random = Math.random() * 16 | 0;\n if (i === 8 || i === 12 || i === 16 || i === 20) {\n id += '-';\n }\n id += (i === 12 ? 4 : (i === 16 ? (random & 3 | 8) : random)).toString(16);\n }\n return id;\n};\nexport { guid };\n","/**\n * @hidden\n */\nvar Keys = {\n backspace: 8,\n tab: 9,\n enter: 13,\n shift: 16,\n esc: 27,\n space: 32,\n pageUp: 33,\n pageDown: 34,\n end: 35,\n home: 36,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n delete: 46\n};\nexport { Keys };\n","/**\n * @hidden\n */\nvar canUseDOM = Boolean(\n// from fbjs\ntypeof window !== 'undefined' &&\n window.document &&\n window.document.createElement);\nexport { canUseDOM };\n","/**\n * @hidden\n */\nexport function getDefaultSlots(component) {\n var defaultSlots = component.$slots.default;\n return (component.v3 && defaultSlots && typeof defaultSlots === 'function') ? defaultSlots() : defaultSlots;\n}\n","import { FIELD_REGEX } from './constants';\nvar getterCache = {};\ngetterCache.undefined = function () { return undefined; };\n/**\n * @hidden\n */\nexport function getter(field) {\n if (getterCache[field]) {\n return getterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n getterCache[field] = function (obj) {\n var result = obj;\n for (var idx = 0; idx < fields.length && result; idx++) {\n result = result[fields[idx]];\n }\n return result;\n };\n return getterCache[field];\n}\n","import { FIELD_REGEX } from './constants';\nvar setterCache = {};\nsetterCache.undefined = function (obj) { return obj; };\n/**\n * @hidden\n */\nexport function setter(field) {\n if (setterCache[field]) {\n return setterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n setterCache[field] = function (obj, value) {\n var root = obj;\n var depth = fields.length - 1;\n for (var idx = 0; idx < depth && root; idx++) {\n root = root[fields[idx]] = root[fields[idx]] || {};\n }\n root[fields[depth]] = value;\n };\n return setterCache[field];\n}\n","/**\n * @hidden\n */\nexport function hasListener(eventName) {\n if (this.v3) {\n return Object.keys(this.$attrs).map(function (name) { return name.toLowerCase(); })\n .some(function (event) { return event.endsWith(eventName.toLowerCase()); });\n }\n else {\n return this.$listeners[eventName];\n }\n}\n/**\n * @hidden\n */\nexport function getListeners() {\n if (this.v3) {\n var listeners = {};\n for (var key in (this.$attrs)) {\n if (key.startsWith('on')) {\n listeners[key] = this.$attrs[key];\n }\n }\n return listeners;\n }\n else {\n return this.$listeners;\n }\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\n/**\n * @hidden\n */\nexport function templateRendering(template, listeners) {\n if (!template) {\n return undefined;\n }\n var scopedSlot = gh ?\n this.$slots[template] ||\n (template.toLowerCase ? this.$slots[template.toLowerCase()]\n : null) :\n this.$scopedSlots[template] ||\n (template.toLowerCase ? this.$scopedSlots[template.toLowerCase()]\n : null);\n // @ts-ignore\n if (typeof template === 'string' && scopedSlot) {\n // @ts-ignore\n return { type: 'slot', render: scopedSlot, listeners: listeners };\n }\n if (typeof template === 'string' || typeof template === 'object' ||\n (typeof template === 'function' && template.component)) {\n return { type: 'component', render: template, listeners: listeners };\n }\n return { type: 'renderFunction', render: template, listeners: listeners };\n}\n/**\n * @hidden\n */\nexport function getTemplate(_a) {\n var h = _a.h, template = _a.template, defaultRendering = _a.defaultRendering, defaultSlots = _a.defaultSlots, additionalProps = _a.additionalProps, additionalListeners = _a.additionalListeners, swapDefaultSlots = _a.swapDefaultSlots;\n if (!template) {\n return defaultRendering;\n }\n var events;\n var props;\n var componentOptions;\n if (gh) {\n var passedProps = defaultRendering ? defaultRendering.props : {};\n events = __assign(__assign({}, transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, passedProps), additionalProps), events);\n componentOptions = __assign(__assign({}, props), events);\n }\n else {\n var hasComponentOptions = defaultRendering && defaultRendering.componentOptions;\n var defaultListeners = hasComponentOptions ?\n defaultRendering.componentOptions.listeners : {};\n var defaultProps = hasComponentOptions ?\n defaultRendering.componentOptions.propsData : {};\n events = __assign(__assign(__assign(__assign({}, defaultListeners), additionalListeners), transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, defaultProps), additionalProps), events);\n componentOptions = { props: props, on: events };\n }\n if (template.type === 'slot') {\n var slotTemplate = template.render({ props: props, listeners: events, methods: events,\n defaultSlots: defaultSlots });\n return slotTemplate ? slotTemplate[0] : undefined;\n }\n else if (template.type === 'renderFunction') {\n if (swapDefaultSlots) {\n return template.render(h, defaultRendering, defaultSlots, props, events);\n }\n return template.render(h, defaultRendering, props, events, defaultSlots);\n }\n else {\n return h(template.render, componentOptions, gh ? function () { return [defaultSlots]; } : [defaultSlots]);\n }\n}\n/**\n * @hidden\n */\nexport function transformListeners(listeners) {\n if (!listeners) {\n return listeners;\n }\n var newListeners = {};\n var listenersKeys = Object.keys(listeners);\n for (var i = 0; i < listenersKeys.length; i++) {\n var currentKey = listenersKeys[i];\n newListeners['on' + currentKey.charAt(0).toUpperCase() + currentKey.slice(1)] =\n listeners[currentKey];\n }\n return newListeners;\n}\n","import * as licensing from '@progress/kendo-licensing';\n/**\n * @hidden\n */\nexport function validatePackage(packageMetadata) {\n if (typeof licensing !== 'undefined') {\n licensing.validatePackage(packageMetadata);\n }\n else {\n var message = \"License activation failed for \" + packageMetadata.name + \"\\n\";\n message += 'The @progress/kendo-licensing script is not loaded.\\n';\n message += \"See \" + packageMetadata.licensingDocsUrl + \" for more information.\\n\";\n console.warn(message);\n }\n}\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getTemplate } from '@progress/kendo-vue-common';\n/**\n * Represents the default `DialogTitleBar` component.\n */\n\nvar DialogTitleBar = {\n props: {\n id: String,\n closeIcon: {\n type: Boolean,\n default: true\n },\n title: String,\n titleRender: [String, Function, Object]\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n methods: {\n onCloseButtonClick: function onCloseButtonClick(e) {\n this.$emit('closebuttonclick', e);\n }\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n id = _a.id,\n closeIcon = _a.closeIcon,\n titleRender = _a.titleRender,\n title = _a.title;\n var titleElement;\n titleElement = getTemplate.call(this, {\n h: h,\n template: titleRender,\n defaultRendering: title\n });\n return h(\"div\", {\n \"class\": \"k-window-titlebar k-dialog-titlebar k-header\",\n id: id,\n attrs: this.v3 ? undefined : {\n id: id\n }\n }, [h(\"div\", {\n \"class\": \"k-window-title k-dialog-title\"\n }, [titleElement]), h(\"div\", {\n \"class\": \"k-window-actions k-dialog-actions\"\n }, [closeIcon && h(\"a\", {\n href: \"#\",\n attrs: this.v3 ? undefined : {\n href: \"#\",\n role: \"button\",\n \"aria-label\": \"Close\"\n },\n role: \"button\",\n \"aria-label\": \"Close\",\n onClick: this.onCloseButtonClick,\n on: this.v3 ? undefined : {\n \"click\": this.onCloseButtonClick\n },\n \"class\": \"k-button k-bare k-button-icon k-window-action k-dialog-action k-dialog-close\"\n }, [h(\"span\", {\n \"class\": \"k-icon k-i-x\"\n })])])]);\n }\n};\nvar DialogTitleBarVue3 = DialogTitleBar;\nexport { DialogTitleBar, DialogTitleBarVue3 };","export var windowStage;\n(function (windowStage) {\n windowStage[\"DEFAULT\"] = \"DEFAULT\";\n windowStage[\"FULLSCREEN\"] = \"FULLSCREEN\";\n windowStage[\"MINIMIZED\"] = \"MINIMIZED\";\n})(windowStage || (windowStage = {}));\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-vue-dialogs',\n productName: 'Kendo UI for Vue',\n productCodes: ['KENDOUIVUE', 'KENDOUICOMPLETE'],\n publishDate: 1641561133,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning'\n};\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { DialogTitleBar } from './DialogTitleBar';\nimport { guid, Keys, templateRendering, hasListener, getListeners, getDefaultSlots, validatePackage } from '@progress/kendo-vue-common';\nimport { packageMetadata } from './package-metadata';\n/**\n * Represents the default `Dialog` component.\n */\n\nvar Dialog = {\n name: 'KendoDialog',\n props: {\n title: String,\n titleRender: [String, Function, Object],\n id: String,\n dir: String,\n closeIcon: {\n type: Boolean,\n default: true\n },\n width: [String, Number],\n height: [String, Number],\n minWidth: [String, Number]\n },\n created: function created() {\n validatePackage(packageMetadata);\n this.titleId = this.generateTitleId();\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n methods: {\n handleCloseDialog: function handleCloseDialog(event) {\n event.preventDefault();\n this.$emit('close', {\n event: event,\n target: this\n });\n },\n handleKeyDown: function handleKeyDown(event) {\n if (event.keyCode === Keys.esc && hasListener.call(this, 'close')) {\n event.preventDefault();\n this.handleCloseDialog(event);\n }\n },\n transformDimesion: function transformDimesion(initialValue) {\n return typeof initialValue === 'string' ? initialValue.endsWith('px') ? initialValue : initialValue + 'px' : initialValue + 'px';\n },\n getActionBarIndex: function getActionBarIndex(children) {\n var actionBarIndex = children.findIndex(function (child) {\n return child && child.tag && child.tag.toLowerCase().indexOf('dialogactionsbar') !== -1 || child.componentOptions && child.componentOptions.tag && child.componentOptions.tag.toLowerCase().indexOf('actions-bar') !== -1 || child.type && child.type.name && child.type.name.toLowerCase().indexOf('dialogactionsbar') !== -1;\n });\n return actionBarIndex;\n },\n generateTitleId: function generateTitleId() {\n return 'dialog-title' + guid();\n }\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var id = this.$props.id !== undefined ? this.$props.id : this.titleId;\n var _a = this.$props,\n title = _a.title,\n width = _a.width,\n height = _a.height,\n minWidth = _a.minWidth,\n dir = _a.dir,\n contentStyle = _a.contentStyle;\n var titleRender = this.$props.titleRender ? templateRendering.call(this, this.$props.titleRender, getListeners.call(this)) : null;\n var defaultSlot = getDefaultSlots(this);\n var content = defaultSlot || [];\n width = this.transformDimesion(width);\n height = this.transformDimesion(height);\n minWidth = this.transformDimesion(minWidth);\n var actionBarIndex = this.getActionBarIndex(content);\n var actions;\n\n if (actionBarIndex !== -1) {\n actions = content[actionBarIndex];\n content.splice(actionBarIndex, 1);\n }\n\n var closeIcon = this.$props.closeIcon !== undefined ? this.$props.closeIcon : true;\n return h(\"div\", {\n \"class\": 'k-dialog-wrapper',\n onKeydown: this.handleKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.handleKeyDown\n },\n tabIndex: 0,\n attrs: this.v3 ? undefined : {\n tabIndex: 0,\n dir: dir\n },\n dir: dir\n }, [h(\"div\", {\n \"class\": \"k-overlay\"\n }), h(\"div\", {\n \"aria-labelledby\": title || titleRender ? id : undefined,\n attrs: this.v3 ? undefined : {\n \"aria-labelledby\": title || titleRender ? id : undefined,\n role: \"dialog\"\n },\n \"class\": \"k-widget k-window k-dialog\",\n role: \"dialog\",\n style: {\n width: width,\n height: height,\n minWidth: minWidth\n }\n }, [(title || titleRender) && // @ts-ignore\n h(DialogTitleBar, {\n closeIcon: closeIcon,\n attrs: this.v3 ? undefined : {\n closeIcon: closeIcon,\n id: id,\n title: title,\n titleRender: titleRender\n },\n onClosebuttonclick: this.handleCloseDialog,\n on: this.v3 ? undefined : {\n \"closebuttonclick\": this.handleCloseDialog\n },\n id: id,\n title: title,\n titleRender: titleRender\n }), h(\"div\", {\n \"class\": \"k-content k-window-content k-dialog-content\",\n style: contentStyle\n }, [content]), actions])]);\n }\n};\nvar DialogVue3 = Dialog;\nexport { Dialog, DialogVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * Represents the default `DialogActionsBar` component.\n */\n\nvar DialogActionsBar = {\n name: 'DialogActionsBar',\n props: {\n layout: {\n type: String,\n default: 'stretched'\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n computed: {\n wrapperClasses: function wrapperClasses() {\n var layout = this.$props.layout;\n return {\n 'k-dialog-buttongroup': true,\n 'k-actions': true,\n 'k-hstack': true,\n 'k-justify-content-start': layout === 'start',\n 'k-justify-content-center': layout === 'center',\n 'k-justify-content-end': layout === 'end',\n 'k-justify-content-stretch': layout === 'stretched'\n };\n }\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n return h(\"div\", {\n \"class\": this.wrapperClasses\n }, [defaultSlot]);\n }\n};\nvar DialogActionsBarVue3 = DialogActionsBar;\nexport { DialogActionsBar, DialogActionsBarVue3 };","// @ts-ignore\nimport { getTemplate } from '@progress/kendo-vue-common';\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { windowStage } from './StageEnum';\n/**\n * Represents the default `WindowTitleBar` component.\n */\n\nvar WindowTitleBar = {\n props: {\n id: String,\n stage: String,\n closeButton: [String, Function, Object],\n minimizeButton: [String, Function, Object],\n maximizeButton: [String, Function, Object],\n restoreButton: [String, Function, Object],\n title: String,\n titleRender: [String, Function, Object]\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n methods: {\n onDoubleClick: function onDoubleClick(e) {\n this.$emit('doubleclick', e);\n },\n onMinimizeClick: function onMinimizeClick(e) {\n this.$emit('minimizeclick', e);\n },\n onFullScreenClick: function onFullScreenClick(e) {\n this.$emit('fullscreenclick', e);\n },\n onRestoreClick: function onRestoreClick(e) {\n this.$emit('restoreclick', e);\n },\n onCloseClick: function onCloseClick(e) {\n this.$emit('closeclick', e);\n }\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var props = this.$props;\n var stage = props.stage,\n title = props.title,\n titleRender = props.titleRender,\n minimizeButton = props.minimizeButton,\n maximizeButton = props.maximizeButton,\n restoreButton = props.restoreButton,\n closeButton = props.closeButton;\n var titleElement = getTemplate.call(this, {\n h: h,\n template: titleRender,\n defaultRendering: title\n });\n var minimizeButtonDefault = h(\"button\", {\n \"class\": \"k-button-icon k-button k-flat\",\n onClick: this.onMinimizeClick,\n on: this.v3 ? undefined : {\n \"click\": this.onMinimizeClick\n }\n }, [h(\"span\", {\n \"class\": \"k-icon k-i-window-minimize\",\n role: \"presentation\",\n attrs: this.v3 ? undefined : {\n role: \"presentation\"\n }\n })]);\n var minimizeButtonRender = getTemplate.call(this, {\n h: h,\n template: minimizeButton,\n defaultRendering: minimizeButtonDefault\n });\n var maximizeButtonDefault = h(\"button\", {\n \"class\": \"k-button-icon k-button k-flat\",\n onClick: this.onFullScreenClick,\n on: this.v3 ? undefined : {\n \"click\": this.onFullScreenClick\n }\n }, [h(\"span\", {\n \"class\": \"k-icon k-i-window-maximize\",\n role: \"presentation\",\n attrs: this.v3 ? undefined : {\n role: \"presentation\"\n }\n })]);\n var maximizeButtonRender = getTemplate.call(this, {\n h: h,\n template: maximizeButton,\n defaultRendering: maximizeButtonDefault\n });\n var restoreButtonDefault = h(\"button\", {\n \"class\": \"k-button-icon k-button k-flat\",\n onClick: this.onRestoreClick,\n on: this.v3 ? undefined : {\n \"click\": this.onRestoreClick\n }\n }, [h(\"span\", {\n \"class\": \"k-icon k-i-window-restore\",\n role: \"presentation\",\n attrs: this.v3 ? undefined : {\n role: \"presentation\"\n }\n })]);\n var restoreButtonRender = getTemplate.call(this, {\n h: h,\n template: restoreButton,\n defaultRendering: restoreButtonDefault\n });\n var closeButtonDefault = h(\"button\", {\n \"class\": \"k-button-icon k-button k-flat\",\n onClick: this.onCloseClick,\n on: this.v3 ? undefined : {\n \"click\": this.onCloseClick\n }\n }, [h(\"span\", {\n \"class\": \"k-icon k-i-close\",\n role: \"presentation\",\n attrs: this.v3 ? undefined : {\n role: \"presentation\"\n }\n })]);\n var closeButtonRender = getTemplate.call(this, {\n h: h,\n template: closeButton,\n defaultRendering: closeButtonDefault\n });\n return h(\"div\", {\n \"class\": \"k-window-titlebar k-dialog-titlebar\",\n style: {\n touchAction: 'none'\n },\n onDblclick: this.onDoubleClick,\n on: this.v3 ? undefined : {\n \"dblclick\": this.onDoubleClick\n }\n }, [h(\"div\", {\n \"class\": \"k-window-title\"\n }, [titleElement]), h(\"div\", {\n \"class\": \"k-window-actions\"\n }, [stage === windowStage.DEFAULT && minimizeButtonRender, stage === windowStage.DEFAULT && maximizeButtonRender, stage !== windowStage.DEFAULT && restoreButtonRender]), closeButtonRender]);\n }\n};\nvar WindowTitleBarVue3 = WindowTitleBar;\nexport { WindowTitleBar, WindowTitleBarVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { Draggable } from '@progress/kendo-vue-common';\n/**\n * @hidden\n */\n\nvar keys = ['n', 'e', 's', 'w', 'se', 'sw', 'ne', 'nw'];\n/**\n * Represents the default `ResizeHandlers` component.\n */\n\nvar ResizeHandlers = {\n name: 'ResizeHandlers',\n // @ts-ignore\n emits: {\n 'resize': null\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n methods: {\n onDrag: function onDrag(event, key) {\n event.originalEvent.preventDefault();\n this.$emit('resize', event, {\n end: false,\n direction: key\n });\n },\n onRelease: function onRelease(event, key) {\n event.originalEvent.preventDefault();\n this.$emit('resize', event, {\n end: true,\n direction: key\n });\n }\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n return h(\"div\", [keys.map(function (key, index) {\n var _this = this;\n\n return (// @ts-ignore function children\n h(Draggable, {\n key: index,\n onDrag: function onDrag(e) {\n return _this.onDrag(e, key);\n },\n on: this.v3 ? undefined : {\n \"drag\": function onDrag(e) {\n return _this.onDrag(e, key);\n },\n \"release\": function release(e) {\n return _this.onRelease(e, key);\n }\n },\n onRelease: function release(e) {\n return _this.onRelease(e, key);\n }\n }, this.v3 ? function () {\n return [h(\"div\", {\n \"class\": 'k-resize-handle k-resize-' + key,\n style: {\n display: 'block',\n touchAction: 'none'\n }\n })];\n } : [h(\"div\", {\n \"class\": 'k-resize-handle k-resize-' + key,\n style: {\n display: 'block',\n touchAction: 'none'\n }\n })])\n );\n }, this)]);\n }\n};\nvar ResizeHandlersVue3 = ResizeHandlers;\nexport { ResizeHandlers, ResizeHandlersVue3 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { WindowTitleBar } from './WindowTitlebar';\nimport { Keys, classNames, Draggable, getDefaultSlots, templateRendering, getListeners, validatePackage } from '@progress/kendo-vue-common';\nimport { ResizeHandlers } from './WindowResizeHandlers';\nimport { windowStage } from './StageEnum';\nimport { packageMetadata } from './package-metadata';\nvar DEFAULT_WIDTH = 300;\nvar DEFAULT_HEIGHT = 300;\nvar DEFAULT_MIN_WIDTH = 120;\nvar DEFAULT_MIN_HEIGHT = 100;\nvar DEFAULT_STEP = 5;\n/**\n * Represents the default `Window` component.\n */\n\nvar Window = {\n name: 'KendoWindow',\n // @ts-ignore\n emits: {\n 'resize': null,\n 'move': null,\n 'close': null,\n 'stagechange': null\n },\n props: {\n id: String,\n width: {\n type: [Number],\n default: undefined\n },\n height: {\n type: [Number],\n default: undefined\n },\n left: {\n type: [Number],\n default: undefined\n },\n windowStyle: Object,\n windowClass: String,\n top: {\n type: [Number],\n default: undefined\n },\n initialWidth: [Number],\n initialHeight: [Number],\n initialLeft: [Number],\n initialTop: [Number],\n minWidth: {\n type: [Number],\n default: DEFAULT_MIN_WIDTH\n },\n minHeight: {\n type: [Number],\n default: DEFAULT_MIN_HEIGHT\n },\n resizable: {\n type: Boolean,\n default: true\n },\n draggable: {\n type: Boolean,\n default: true\n },\n modal: {\n type: Boolean,\n default: false\n },\n doubleClickStageChange: {\n type: Boolean,\n default: true\n },\n title: String,\n titleRender: [String, Function, Object],\n closeButton: [String, Function, Object],\n minimizeButton: [String, Function, Object],\n maximizeButton: [String, Function, Object],\n restoreButton: [String, Function, Object],\n shouldUpdateOnDrag: Boolean,\n stage: {\n type: String,\n validator: function validator(value) {\n return ['DEFAULT', 'MINIMIZED', 'FULLSCREEN'].indexOf(value) !== -1;\n }\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n created: function created() {\n validatePackage(packageMetadata);\n this.windowCoordinatesState = {\n leftBeforeAction: this.getInitialLeft(),\n topBeforeAction: this.getInitialTop(),\n widthBeforeAction: this.getInitialWidth(),\n heightBeforeAction: this.getInitialHeight()\n };\n },\n data: function data() {\n return {\n currentStage: this.$props.stage || windowStage.DEFAULT,\n isDragging: false,\n currentTop: this.getInitialTop(),\n currentLeft: this.getInitialLeft(),\n currentWidth: this.getInitialWidth(),\n currentHeight: this.getInitialHeight()\n };\n },\n mounted: function mounted() {\n if (window) {\n window.addEventListener('resize', this.handleBrowserWindowResize);\n }\n\n if (this.$el) {\n // this.draggable = this.$refs.draggable;\n this.windowElement = this.$refs.windowElement;\n }\n },\n destroyed: !!gh ? undefined : function () {\n if (window) {\n window.removeEventListener('resize', this.handleBrowserWindowResize);\n }\n },\n // @ts-ignore\n unmounted: function unmounted() {\n if (window) {\n window.removeEventListener('resize', this.handleBrowserWindowResize);\n }\n },\n computed: {\n computedTop: function computedTop() {\n if (this.windowStage !== windowStage.FULLSCREEN) {\n return Math.max(this.$props.top || this.currentTop, 0);\n }\n\n return 0;\n },\n computedLeft: function computedLeft() {\n if (this.windowStage !== windowStage.FULLSCREEN) {\n return Math.max(this.$props.left || this.currentLeft, 0);\n }\n\n return 0;\n },\n computedWidth: function computedWidth() {\n var width = this.$props.width || this.currentWidth;\n\n if (this.windowStage === windowStage.FULLSCREEN) {\n width = window.innerWidth;\n }\n\n return width;\n },\n computedHeight: function computedHeight() {\n var height = this.$props.height || this.currentHeight;\n\n if (this.windowStage === windowStage.FULLSCREEN) {\n height = window.innerHeight;\n } else if (this.windowStage === windowStage.MINIMIZED) {\n height = 0;\n }\n\n return height;\n },\n windowStage: function windowStage() {\n return this.$props.stage || this.currentStage;\n }\n },\n methods: {\n onPress: function onPress(event) {\n var e = event;\n this.windowCoordinatesState.differenceLeft = e.pageX - this.computedLeft;\n this.windowCoordinatesState.differenceTop = e.pageY - this.computedTop;\n },\n onDrag: function onDrag(event) {\n var e = event;\n e.originalEvent.preventDefault();\n\n if (this.windowStage !== windowStage.FULLSCREEN && this.$props.draggable) {\n this.currentTop = Math.max(e.pageY - this.windowCoordinatesState.differenceTop, 0);\n this.currentLeft = e.pageX - this.windowCoordinatesState.differenceLeft;\n this.isDragging = true;\n this.dispatchMoveEvent('move', e, true, false);\n }\n },\n onRelease: function onRelease(event) {\n var e = event;\n\n if (this.windowStage !== windowStage.FULLSCREEN && this.$props.draggable) {\n this.dispatchMoveEvent('move', e, true, true);\n }\n\n this.isDragging = false;\n },\n handleKeyDown: function handleKeyDown(event) {\n if (event.target !== event.currentTarget) {\n return;\n }\n\n var minWidth = this.$props.minWidth || DEFAULT_MIN_WIDTH;\n var minHeight = this.$props.minHeight || DEFAULT_MIN_HEIGHT;\n\n if (event.ctrlKey && this.$props.resizable) {\n switch (event.keyCode) {\n case Keys.up:\n event.preventDefault();\n\n if (minHeight <= this.computedHeight - DEFAULT_STEP) {\n this.currentHeight = this.currentHeight - DEFAULT_STEP;\n }\n\n break;\n\n case Keys.down:\n event.preventDefault();\n this.currentHeight = this.currentHeight + DEFAULT_STEP;\n break;\n\n case Keys.left:\n if (minWidth <= this.computedWidth - DEFAULT_STEP) {\n this.currentWidth = this.currentWidth - DEFAULT_STEP;\n }\n\n break;\n\n case Keys.right:\n this.currentWidth = this.currentWidth + DEFAULT_STEP;\n break;\n\n default:\n return;\n }\n\n this.dispatchMoveEvent('resize', event, false, undefined);\n return;\n }\n\n if (event.altKey) {\n switch (event.keyCode) {\n case Keys.up:\n if (this.windowStage === windowStage.MINIMIZED) {\n this.handleRestore(event);\n this.$emit('stagechange', event, this, {\n state: windowStage.DEFAULT\n });\n } else if (this.windowStage === windowStage.DEFAULT) {\n this.handleFullscreen(event);\n this.$emit('stagechange', event, this, {\n state: windowStage.FULLSCREEN\n });\n }\n\n break;\n\n case Keys.down:\n if (this.windowStage === windowStage.FULLSCREEN) {\n this.handleRestore(event);\n this.$emit('stagechange', event, this, {\n state: windowStage.DEFAULT\n });\n } else if (this.windowStage === windowStage.DEFAULT) {\n this.handleMinimize(event);\n this.$emit('stagechange', event, this, {\n state: windowStage.MINIMIZED\n });\n }\n\n break;\n\n default:\n }\n\n return;\n }\n\n if (!event.ctrlKey) {\n switch (event.keyCode) {\n case Keys.esc:\n this.handleCloseWindow(event);\n return;\n\n case Keys.up:\n event.preventDefault();\n this.currentTop = this.currentTop - DEFAULT_STEP;\n break;\n\n case Keys.down:\n event.preventDefault();\n this.currentTop = this.currentTop + DEFAULT_STEP;\n break;\n\n case Keys.left:\n event.preventDefault();\n this.currentLeft = this.currentLeft - DEFAULT_STEP;\n break;\n\n case Keys.right:\n event.preventDefault();\n this.currentLeft = this.currentLeft + DEFAULT_STEP;\n break;\n\n default:\n return;\n }\n }\n\n this.dispatchMoveEvent('move', event, false, undefined);\n },\n getInitialTop: function getInitialTop() {\n if (this.$props.top !== undefined) {\n return this.$props.top;\n }\n\n if (this.$props.initialTop !== undefined) {\n return this.$props.initialTop;\n }\n\n var height = DEFAULT_HEIGHT;\n\n if (this.$props.height !== undefined) {\n height = this.$props.height;\n } else if (this.$props.initialHeight !== undefined) {\n height = this.$props.initialHeight;\n }\n\n return window.innerHeight / 2 - height / 2;\n },\n getInitialLeft: function getInitialLeft() {\n if (this.$props.left !== undefined) {\n return this.$props.left;\n }\n\n if (this.$props.initialLeft !== undefined) {\n return this.$props.initialLeft;\n }\n\n var width = DEFAULT_WIDTH;\n\n if (this.$props.width !== undefined) {\n width = this.$props.width;\n } else if (this.$props.initialWidth !== undefined) {\n width = this.$props.initialWidth;\n }\n\n return window.innerWidth / 2 - width / 2;\n },\n getInitialWidth: function getInitialWidth() {\n var width = DEFAULT_WIDTH;\n\n if (this.$props.width !== undefined) {\n width = this.$props.width;\n } else if (this.$props.initialWidth !== undefined) {\n width = this.$props.initialWidth;\n }\n\n return width;\n },\n getInitialHeight: function getInitialHeight() {\n var height = DEFAULT_HEIGHT;\n\n if (this.$props.height !== undefined) {\n height = this.$props.height;\n } else if (this.$props.initialHeight !== undefined) {\n height = this.$props.initialHeight;\n }\n\n return height;\n },\n handleMinimize: function handleMinimize(event) {\n event.preventDefault();\n this.windowCoordinatesState.leftBeforeAction = this.computedLeft;\n this.windowCoordinatesState.topBeforeAction = this.computedTop;\n this.windowCoordinatesState.widthBeforeAction = this.computedWidth;\n this.windowCoordinatesState.heightBeforeAction = this.computedHeight;\n this.currentStage = windowStage.MINIMIZED;\n this.currentHeight = 0;\n this.$emit('stagechange', event, this, {\n state: windowStage.MINIMIZED\n });\n },\n handleFullscreen: function handleFullscreen(event) {\n event.preventDefault();\n this.windowCoordinatesState.leftBeforeAction = this.computedLeft;\n this.windowCoordinatesState.topBeforeAction = this.computedTop;\n this.windowCoordinatesState.widthBeforeAction = this.computedWidth;\n this.windowCoordinatesState.heightBeforeAction = this.computedHeight;\n this.currentLeft = 0;\n this.currentTop = 0;\n this.currentWidth = window.innerWidth;\n this.currentHeight = window.innerHeight;\n this.currentStage = windowStage.FULLSCREEN;\n this.$emit('stagechange', event, this, {\n state: windowStage.FULLSCREEN\n });\n },\n handleRestore: function handleRestore(event) {\n event.preventDefault();\n\n if (this.windowStage === windowStage.FULLSCREEN) {\n this.currentStage = windowStage.DEFAULT;\n this.currentLeft = this.windowCoordinatesState.leftBeforeAction;\n this.currentTop = this.windowCoordinatesState.topBeforeAction;\n this.currentWidth = this.windowCoordinatesState.widthBeforeAction;\n this.currentHeight = this.windowCoordinatesState.heightBeforeAction;\n } else if (this.windowStage === windowStage.MINIMIZED) {\n this.currentStage = windowStage.DEFAULT;\n this.currentHeight = this.windowCoordinatesState.heightBeforeAction;\n }\n\n this.$emit('stagechange', event, this, {\n state: windowStage.DEFAULT\n });\n },\n handleCloseWindow: function handleCloseWindow(event) {\n event.preventDefault();\n this.$emit('close', event, this, {\n state: undefined\n });\n },\n handleDoubleClick: function handleDoubleClick(e) {\n if (!this.$props.doubleClickStageChange) {\n return;\n }\n\n if (this.windowStage === windowStage.FULLSCREEN || this.windowStage === windowStage.MINIMIZED) {\n this.handleRestore(e);\n } else {\n this.handleFullscreen(e);\n }\n },\n handleResize: function handleResize(event, props) {\n var currentWidth = this.computedWidth;\n var currentHeight = this.computedHeight;\n var minWidth = this.$props.minWidth || DEFAULT_MIN_WIDTH;\n var minHeight = this.$props.minHeight || DEFAULT_MIN_HEIGHT;\n var heightDifference = this.computedTop - event.pageY;\n var widthDifference = this.computedLeft - event.pageX;\n var newWidth = event.pageX - this.computedLeft;\n var newHeight = event.pageY - this.computedTop;\n this.isDragging = !props.end;\n\n if (props.direction.indexOf('n') >= 0 && minHeight - (currentHeight + heightDifference) < 0) {\n this.currentTop = event.pageY;\n this.currentHeight = currentHeight + heightDifference;\n }\n\n if (props.direction.indexOf('s') >= 0 && minHeight - newHeight < 0) {\n this.currentHeight = newHeight;\n }\n\n if (props.direction.indexOf('w') >= 0 && minWidth - (currentWidth + widthDifference) < 0) {\n this.currentLeft = event.pageX;\n this.currentWidth = currentWidth + widthDifference;\n }\n\n if (props.direction.indexOf('e') >= 0 && minWidth - newWidth < 0) {\n this.currentWidth = newWidth;\n }\n\n this.dispatchMoveEvent('resize', event, true, props.end);\n },\n dispatchMoveEvent: function dispatchMoveEvent(eventName, event, drag, end) {\n this.$emit(eventName, {\n event: event.event,\n drag: drag,\n end: end,\n target: this,\n left: this.currentLeft,\n top: this.currentTop,\n width: this.currentWidth,\n height: this.currentHeight\n });\n },\n handleBrowserWindowResize: function handleBrowserWindowResize() {\n if (this.windowStage === windowStage.FULLSCREEN) {\n this.currentWidth = window.innerWidth;\n this.currentHeight = window.innerHeight;\n }\n }\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var classNamesWindow = classNames('k-widget', 'k-window', this.$props.windowClass, {\n 'k-window-minimized': this.currentStage === 'MINIMIZED'\n });\n var titleRender = this.$props.titleRender ? templateRendering.call(this, this.$props.titleRender, getListeners.call(this)) : null;\n var closeButton = this.$props.closeButton ? templateRendering.call(this, this.$props.closeButton, getListeners.call(this)) : null;\n var minimizeButton = this.$props.minimizeButton ? templateRendering.call(this, this.$props.minimizeButton, getListeners.call(this)) : null;\n var maximizeButton = this.$props.maximizeButton ? templateRendering.call(this, this.$props.maximizeButton, getListeners.call(this)) : null;\n var restoreButton = this.$props.restoreButton ? templateRendering.call(this, this.$props.restoreButton, getListeners.call(this)) : null;\n var defaultSlot = getDefaultSlots(this);\n var windowElement = h(\"div\", [this.$props.modal && h(\"div\", {\n \"class\": \"k-overlay\"\n }), h(\"div\", {\n tabIndex: 0,\n attrs: this.v3 ? undefined : {\n tabIndex: 0\n },\n onFocus: function onFocus(e) {\n return e.target.classList.add('k-state-focused');\n },\n on: this.v3 ? undefined : {\n \"focus\": function onFocus(e) {\n return e.target.classList.add('k-state-focused');\n },\n \"blur\": function blur(e) {\n return e.target.classList.remove('k-state-focused');\n },\n \"keydown\": this.handleKeyDown\n },\n onBlur: function blur(e) {\n return e.target.classList.remove('k-state-focused');\n },\n onKeydown: this.handleKeyDown,\n ref: 'windowElement',\n \"class\": classNamesWindow,\n style: __assign({\n top: this.computedTop + 'px',\n left: this.computedLeft + 'px',\n width: this.computedWidth + 'px',\n height: this.computedHeight + 'px' || ''\n }, this.$props.windowStyle)\n }, [// @ts-ignore function children\n h(Draggable, {\n onPress: this.onPress,\n on: this.v3 ? undefined : {\n \"press\": this.onPress,\n \"drag\": this.onDrag,\n \"release\": this.onRelease\n },\n onDrag: this.onDrag,\n onRelease: this.onRelease,\n ref: 'draggable'\n }, this.v3 ? function () {\n return [// @ts-ignore function children\n h(WindowTitleBar, {\n stage: _this.windowStage,\n attrs: _this.v3 ? undefined : {\n stage: _this.windowStage,\n title: _this.$props.title,\n titleRender: titleRender,\n closeButton: closeButton,\n minimizeButton: minimizeButton,\n maximizeButton: maximizeButton,\n restoreButton: restoreButton\n },\n title: _this.$props.title,\n titleRender: titleRender,\n onDoubleclick: _this.handleDoubleClick,\n on: _this.v3 ? undefined : {\n \"doubleclick\": _this.handleDoubleClick,\n \"minimizeclick\": _this.handleMinimize,\n \"fullscreenclick\": _this.handleFullscreen,\n \"restoreclick\": _this.handleRestore,\n \"closeclick\": _this.handleCloseWindow\n },\n onMinimizeclick: _this.handleMinimize,\n onFullscreenclick: _this.handleFullscreen,\n onRestoreclick: _this.handleRestore,\n onCloseclick: _this.handleCloseWindow,\n closeButton: closeButton,\n minimizeButton: minimizeButton,\n maximizeButton: maximizeButton,\n restoreButton: restoreButton\n })];\n } : [h(WindowTitleBar, {\n stage: _this.windowStage,\n attrs: _this.v3 ? undefined : {\n stage: _this.windowStage,\n title: _this.$props.title,\n titleRender: titleRender,\n closeButton: closeButton,\n minimizeButton: minimizeButton,\n maximizeButton: maximizeButton,\n restoreButton: restoreButton\n },\n title: _this.$props.title,\n titleRender: titleRender,\n onDoubleclick: _this.handleDoubleClick,\n on: _this.v3 ? undefined : {\n \"doubleclick\": _this.handleDoubleClick,\n \"minimizeclick\": _this.handleMinimize,\n \"fullscreenclick\": _this.handleFullscreen,\n \"restoreclick\": _this.handleRestore,\n \"closeclick\": _this.handleCloseWindow\n },\n onMinimizeclick: _this.handleMinimize,\n onFullscreenclick: _this.handleFullscreen,\n onRestoreclick: _this.handleRestore,\n onCloseclick: _this.handleCloseWindow,\n closeButton: closeButton,\n minimizeButton: minimizeButton,\n maximizeButton: maximizeButton,\n restoreButton: restoreButton\n })]), this.windowStage !== windowStage.MINIMIZED ? h(\"div\", {\n \"class\": \"k-content k-window-content\"\n }, [defaultSlot]) : null, this.windowStage === windowStage.DEFAULT && this.$props.resizable // @ts-ignore function children\n ? h(ResizeHandlers, {\n onResize: this.handleResize,\n on: this.v3 ? undefined : {\n \"resize\": this.handleResize\n }\n }) : null])]);\n return windowElement;\n }\n};\nvar WindowVue3 = Window;\nexport { Window, WindowVue3 };","var _Draggable;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport KendoDraggable from '@telerik/kendo-draggable';\nimport { getDefaultSlots } from './defaultSlots';\n/**\n * Represents the default `Draggable` component.\n */\n\nvar Draggable = (_Draggable = {\n // @ts-ignore\n emits: {\n press: null,\n drag: null,\n release: null\n },\n inheritAttrs: false,\n created: function created() {\n this.element = null;\n this.draggable = new KendoDraggable({\n press: this.press,\n drag: this.drag,\n release: this.release\n });\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n mounted: function mounted() {\n if (this.$el) {\n this.element = this.$el.nodeType === 3 ? this.$el.nextElementSibling : this.$el;\n this.draggable.bindTo(this.element);\n }\n },\n destroyed: !!gh ? undefined : function () {\n this.draggable.destroy();\n },\n // @ts-ignore\n unmounted: function unmounted() {\n this.draggable.destroy();\n },\n methods: {\n press: function press(event) {\n if (this.element) {\n this.$emit('press', event, this.element);\n }\n },\n drag: function drag(event) {\n if (this.element) {\n this.$emit('drag', event, this.element);\n }\n },\n release: function release(event) {\n if (this.element) {\n this.$emit('release', event, this.element);\n }\n }\n }\n}, _defineProperty(_Draggable, \"setup\", !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n}), _defineProperty(_Draggable, \"render\", function render(createElement) {\n // @ts-ignore\n var h = gh || createElement;\n return getDefaultSlots(this);\n}), _Draggable);\nexport { Draggable };","/**\n * @hidden\n */\nexport var classNames = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return args\n .filter(function (arg) { return arg !== true && !!arg; })\n .map(function (arg) {\n return Array.isArray(arg)\n ? classNames.apply(void 0, arg) : typeof arg === 'object'\n ? Object\n .keys(arg)\n .map(function (key, idx) { return arg[idx] || (arg[key] && key) || null; })\n .filter(function (el) { return el !== null; })\n .join(' ')\n : arg;\n })\n .filter(function (arg) { return !!arg; })\n .join(' ');\n};\n","/* tslint:disable:no-bitwise */\n/**\n * @hidden\n */\nvar guid = function () {\n var id = '';\n var i;\n var random;\n for (i = 0; i < 32; i++) {\n random = Math.random() * 16 | 0;\n if (i === 8 || i === 12 || i === 16 || i === 20) {\n id += '-';\n }\n id += (i === 12 ? 4 : (i === 16 ? (random & 3 | 8) : random)).toString(16);\n }\n return id;\n};\nexport { guid };\n","/**\n * @hidden\n */\nvar Keys = {\n backspace: 8,\n tab: 9,\n enter: 13,\n shift: 16,\n esc: 27,\n space: 32,\n pageUp: 33,\n pageDown: 34,\n end: 35,\n home: 36,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n delete: 46\n};\nexport { Keys };\n","/**\n * @hidden\n */\nvar canUseDOM = Boolean(\n// from fbjs\ntypeof window !== 'undefined' &&\n window.document &&\n window.document.createElement);\nexport { canUseDOM };\n","/**\n * @hidden\n */\nexport function getDefaultSlots(component) {\n var defaultSlots = component.$slots.default;\n return (component.v3 && defaultSlots && typeof defaultSlots === 'function') ? defaultSlots() : defaultSlots;\n}\n","/**\n * @hidden\n */\nvar noop = function () { };\nexport { noop };\n","import { FIELD_REGEX } from './constants';\nvar getterCache = {};\ngetterCache.undefined = function () { return undefined; };\n/**\n * @hidden\n */\nexport function getter(field) {\n if (getterCache[field]) {\n return getterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n getterCache[field] = function (obj) {\n var result = obj;\n for (var idx = 0; idx < fields.length && result; idx++) {\n result = result[fields[idx]];\n }\n return result;\n };\n return getterCache[field];\n}\n","import { FIELD_REGEX } from './constants';\nvar setterCache = {};\nsetterCache.undefined = function (obj) { return obj; };\n/**\n * @hidden\n */\nexport function setter(field) {\n if (setterCache[field]) {\n return setterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n setterCache[field] = function (obj, value) {\n var root = obj;\n var depth = fields.length - 1;\n for (var idx = 0; idx < depth && root; idx++) {\n root = root[fields[idx]] = root[fields[idx]] || {};\n }\n root[fields[depth]] = value;\n };\n return setterCache[field];\n}\n","/**\n * @hidden\n */\nexport function hasListener(eventName) {\n if (this.v3) {\n return Object.keys(this.$attrs).map(function (name) { return name.toLowerCase(); })\n .some(function (event) { return event.endsWith(eventName.toLowerCase()); });\n }\n else {\n return this.$listeners[eventName];\n }\n}\n/**\n * @hidden\n */\nexport function getListeners() {\n if (this.v3) {\n var listeners = {};\n for (var key in (this.$attrs)) {\n if (key.startsWith('on')) {\n listeners[key] = this.$attrs[key];\n }\n }\n return listeners;\n }\n else {\n return this.$listeners;\n }\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\n/**\n * @hidden\n */\nexport function templateRendering(template, listeners) {\n if (!template) {\n return undefined;\n }\n var scopedSlot = gh ?\n this.$slots[template] ||\n (template.toLowerCase ? this.$slots[template.toLowerCase()]\n : null) :\n this.$scopedSlots[template] ||\n (template.toLowerCase ? this.$scopedSlots[template.toLowerCase()]\n : null);\n // @ts-ignore\n if (typeof template === 'string' && scopedSlot) {\n // @ts-ignore\n return { type: 'slot', render: scopedSlot, listeners: listeners };\n }\n if (typeof template === 'string' || typeof template === 'object' ||\n (typeof template === 'function' && template.component)) {\n return { type: 'component', render: template, listeners: listeners };\n }\n return { type: 'renderFunction', render: template, listeners: listeners };\n}\n/**\n * @hidden\n */\nexport function getTemplate(_a) {\n var h = _a.h, template = _a.template, defaultRendering = _a.defaultRendering, defaultSlots = _a.defaultSlots, additionalProps = _a.additionalProps, additionalListeners = _a.additionalListeners, swapDefaultSlots = _a.swapDefaultSlots;\n if (!template) {\n return defaultRendering;\n }\n var events;\n var props;\n var componentOptions;\n if (gh) {\n var passedProps = defaultRendering ? defaultRendering.props : {};\n events = __assign(__assign({}, transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, passedProps), additionalProps), events);\n componentOptions = __assign(__assign({}, props), events);\n }\n else {\n var hasComponentOptions = defaultRendering && defaultRendering.componentOptions;\n var defaultListeners = hasComponentOptions ?\n defaultRendering.componentOptions.listeners : {};\n var defaultProps = hasComponentOptions ?\n defaultRendering.componentOptions.propsData : {};\n events = __assign(__assign(__assign(__assign({}, defaultListeners), additionalListeners), transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, defaultProps), additionalProps), events);\n componentOptions = { props: props, on: events };\n }\n if (template.type === 'slot') {\n var slotTemplate = template.render({ props: props, listeners: events, methods: events,\n defaultSlots: defaultSlots });\n return slotTemplate ? slotTemplate[0] : undefined;\n }\n else if (template.type === 'renderFunction') {\n if (swapDefaultSlots) {\n return template.render(h, defaultRendering, defaultSlots, props, events);\n }\n return template.render(h, defaultRendering, props, events, defaultSlots);\n }\n else {\n return h(template.render, componentOptions, gh ? function () { return [defaultSlots]; } : [defaultSlots]);\n }\n}\n/**\n * @hidden\n */\nexport function transformListeners(listeners) {\n if (!listeners) {\n return listeners;\n }\n var newListeners = {};\n var listenersKeys = Object.keys(listeners);\n for (var i = 0; i < listenersKeys.length; i++) {\n var currentKey = listenersKeys[i];\n newListeners['on' + currentKey.charAt(0).toUpperCase() + currentKey.slice(1)] =\n listeners[currentKey];\n }\n return newListeners;\n}\n","import * as licensing from '@progress/kendo-licensing';\n/**\n * @hidden\n */\nexport function validatePackage(packageMetadata) {\n if (typeof licensing !== 'undefined') {\n licensing.validatePackage(packageMetadata);\n }\n else {\n var message = \"License activation failed for \" + packageMetadata.name + \"\\n\";\n message += 'The @progress/kendo-licensing script is not loaded.\\n';\n message += \"See \" + packageMetadata.licensingDocsUrl + \" for more information.\\n\";\n console.warn(message);\n }\n}\n","var _a;\n/**\n * @hidden\n */\nexport var nodata = 'dropdowns.nodata';\n/**\n * @hidden\n */\nexport var clear = 'dropdowns.clear';\n/**\n * @hidden\n */\nexport var messages = (_a = {},\n _a[clear] = 'clear',\n _a[nodata] = 'NO DATA FOUND.',\n _a);\n","/**\n * @hidden\n */\nexport var ActiveDescendant;\n(function (ActiveDescendant) {\n ActiveDescendant[ActiveDescendant[\"PopupList\"] = 0] = \"PopupList\";\n ActiveDescendant[ActiveDescendant[\"TagsList\"] = 1] = \"TagsList\";\n})(ActiveDescendant || (ActiveDescendant = {}));\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { Popup } from '@progress/kendo-vue-popup';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * Represents the default `ListContainer` component.\n */\n\nvar ListContainer = {\n name: 'list-container',\n // @ts-ignore\n emits: {\n mousedown: null,\n blur: null,\n open: null,\n close: null\n },\n props: {\n width: [String, Number],\n dir: String,\n itemsCount: Number,\n popupSettings: {\n type: Object,\n default: function _default() {\n return {\n animate: true,\n height: '200px'\n };\n }\n }\n },\n created: function created() {\n this.kendoAnchorRef = undefined;\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n methods: {\n onMouseDown: function onMouseDown(e) {\n this.$emit('mousedown', e);\n },\n onBlur: function onBlur(e) {\n this.$emit('blur', e);\n },\n onOpen: function onOpen(e) {\n this.$emit('open', e);\n },\n onClose: function onClose(e) {\n this.$emit('close', e);\n }\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n var _a = this.$props,\n onMouseDown = _a.onMouseDown,\n onBlur = _a.onBlur,\n width = _a.width,\n dir = _a.dir,\n popupSettings = _a.popupSettings; // @ts-ignore\n\n var className = popupSettings.className,\n animate = popupSettings.animate,\n anchor = popupSettings.anchor,\n show = popupSettings.show,\n open = popupSettings.open,\n close = popupSettings.close,\n itemsCount = popupSettings.itemsCount;\n return (// @ts-ignore function children\n h(Popup, {\n style: {\n width: width,\n direction: dir\n },\n className: className,\n attrs: this.v3 ? undefined : {\n className: className,\n animate: animate,\n anchor: anchor,\n show: show,\n contentKey: itemsCount\n },\n animate: animate,\n anchor: anchor,\n show: show,\n contentKey: itemsCount,\n onOpen: this.onOpen,\n on: this.v3 ? undefined : {\n \"open\": this.onOpen,\n \"close\": this.onClose\n },\n onClose: this.onClose\n }, this.v3 ? function () {\n return [h(\"div\", {\n onMousedown: _this.onMouseDown,\n on: _this.v3 ? undefined : {\n \"mousedown\": _this.onMouseDown,\n \"focusout\": _this.onBlur\n },\n onFocusout: _this.onBlur\n }, [defaultSlot])];\n } : [h(\"div\", {\n onMousedown: _this.onMouseDown,\n on: _this.v3 ? undefined : {\n \"mousedown\": _this.onMouseDown,\n \"focusout\": _this.onBlur\n },\n onFocusout: _this.onBlur\n }, [defaultSlot])])\n );\n }\n};\nvar ListContainerVue3 = ListContainer;\nexport { ListContainer, ListContainerVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\n/**\n * Represents the default `ListFilter` component.\n */\n\nvar ListFilter = {\n name: 'list-filter',\n // @ts-ignore\n emits: {\n keydown: null,\n change: null\n },\n props: {\n value: String\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var inputRef = ref(null);\n return {\n v3: v3,\n inputRef: inputRef\n };\n },\n methods: {\n onKeyDown: function onKeyDown(e) {\n this.$emit('keydown', e);\n },\n onChange: function onChange(e) {\n this.$emit('change', e);\n }\n },\n mounted: function mounted() {\n this.input = this.v3 ? this.inputRef : this.$refs.input;\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n return h(\"span\", {\n \"class\": \"k-list-filter\"\n }, [h(\"input\", {\n ref: this.v3 ? function (el) {\n _this.inputRef = el;\n } : 'input',\n value: this.v3 ? this.$props.value || '' : null,\n domProps: this.v3 ? undefined : {\n \"value\": this.$props.value || ''\n },\n \"class\": \"k-textbox\",\n onInput: this.onChange,\n on: this.v3 ? undefined : {\n \"input\": this.onChange,\n \"keydown\": this.onKeyDown\n },\n onKeydown: this.onKeyDown\n }), h(\"span\", {\n \"class\": \"k-icon k-i-search\"\n })]);\n }\n};\nvar ListFilterVue3 = ListFilter;\nexport { ListFilter, ListFilterVue3 };","/**\n * @hidden\n */\nvar isPresent = function (value) { return value !== null && value !== undefined; };\n/**\n * @hidden\n */\nvar sameCharsOnly = function (word, character) {\n for (var idx = 0; idx < word.length; idx++) {\n if (word.charAt(idx) !== character) {\n return false;\n }\n }\n return true;\n};\n/**\n * @hidden\n */\nvar shuffleData = function (data, splitIndex, defaultItem) {\n var result = data;\n if (defaultItem) {\n result = [defaultItem].concat(result);\n }\n return result.slice(splitIndex).concat(result.slice(0, splitIndex));\n};\n/**\n * @hidden\n */\nvar matchText = function (text, word, ignoreCase) {\n if (!isPresent(text)) {\n return false;\n }\n var temp = String(text);\n if (ignoreCase) {\n temp = temp.toLowerCase();\n }\n return temp.indexOf(word) === 0;\n};\n/**\n * @hidden\n */\nvar scrollToItem = function (scrollElem, itemHeight, itemIndex, translate, virtualScroll) {\n var viewportHeight = scrollElem.offsetHeight;\n var itemOffsetTop = (itemHeight * itemIndex) +\n (virtualScroll ? translate - scrollElem.scrollTop : 0);\n if (virtualScroll) {\n var diff = 0;\n if (itemOffsetTop + itemHeight > viewportHeight) {\n diff = itemOffsetTop + itemHeight - viewportHeight;\n }\n else if (itemOffsetTop < 0) {\n diff = itemOffsetTop;\n }\n if (diff !== 0) {\n scrollElem.scrollTop += diff;\n }\n else if (scrollElem.scrollTop === 0 && translate !== 0) {\n scrollElem.scrollTop = translate;\n }\n }\n else {\n if (itemOffsetTop + itemHeight > viewportHeight + scrollElem.scrollTop) {\n scrollElem.scrollTop = (itemOffsetTop + itemHeight - viewportHeight);\n }\n else if (itemOffsetTop < scrollElem.scrollTop) {\n scrollElem.scrollTop -= scrollElem.scrollTop - itemOffsetTop;\n }\n }\n};\n/**\n * @hidden\n */\nvar itemIndexStartsWith = function (items, text, field) {\n var result = -1;\n if (text) {\n text = text.toLowerCase();\n for (var i = 0; i < items.length; i++) {\n var itemText = (getItemValue(items[i], field) || '') + '';\n if (itemText && itemText.toLowerCase().startsWith(text)) {\n result = i;\n break;\n }\n }\n }\n return result;\n};\n/**\n * @hidden\n */\nvar getItemIndexByText = function (data, text, textField, matchCase) {\n if (matchCase === void 0) { matchCase = false; }\n var casing = function (value) { return matchCase ? value : value.toLowerCase(); };\n return data.findIndex(function (item) {\n return textField ? casing(getItemValue(item, textField)) === casing(text) :\n casing(text) === casing(item.toString());\n });\n};\n/**\n * @hidden\n */\nvar getItemValue = function (item, field) {\n if (field && isPresent(item)) {\n var path = field.split('.');\n var data_1 = item;\n path.forEach(function (p) {\n data_1 = data_1 ? data_1[p] : undefined;\n });\n return data_1;\n }\n return item;\n};\n/**\n * @hidden\n */\nvar matchDataCollections = function (data1, data2, key) {\n if (data1 === void 0) { data1 = []; }\n if (data2 === void 0) { data2 = []; }\n if (data1 === data2) {\n return true;\n }\n if (data1.length !== data2.length) {\n return false;\n }\n for (var i = 0; i < data1.length; i++) {\n if (!areSame(data1[i], data2[i], key)) {\n return false;\n }\n }\n return true;\n};\n/**\n * @hidden\n */\nvar removeDataItems = function (items, toRemove, key) {\n toRemove.forEach(function (item) {\n var itemIndex = items.findIndex(function (i) { return areSame(i, item, key); });\n if (itemIndex !== -1) {\n items.splice(itemIndex, 1);\n }\n });\n};\n/**\n * @hidden\n */\nvar areSame = function (item1, item2, key) {\n return item1 === item2 ||\n (isPresent(item1) === isPresent(item2) && getItemValue(item1, key) === getItemValue(item2, key));\n};\n/**\n * @hidden\n */\nvar getFocusedItem = function (data, value, textField) {\n if (value) {\n var selectedIndex = getItemIndexByText(data, value, textField, true);\n return selectedIndex !== -1 ? data[selectedIndex] : data[itemIndexStartsWith(data, value, textField)];\n }\n return data[0];\n};\n/**\n * @hidden\n */\nvar suggestValue = function (value, data, textField) {\n if (data === void 0) { data = []; }\n var suggested = '';\n if (value) {\n var suggestedItem = data[itemIndexStartsWith(data, value, textField)];\n if (suggestedItem) {\n var suggestedText = getItemValue(suggestedItem, textField);\n if (value.toLowerCase() !== suggestedText.toLowerCase()) {\n suggested = suggestedText.substring(value.length);\n }\n }\n }\n return suggested;\n};\n/**\n * @hidden\n */\nvar preventDefaultNonInputs = function (event) {\n if (event.target.nodeName !== 'INPUT') {\n event.preventDefault();\n }\n};\nexport { isPresent, sameCharsOnly, shuffleData, matchText, scrollToItem, itemIndexStartsWith, getItemIndexByText, getItemValue, matchDataCollections, removeDataItems, areSame, getFocusedItem, preventDefaultNonInputs, suggestValue };\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { classNames } from '@progress/kendo-vue-common';\nimport { getItemValue } from './utils';\n/**\n * Represents the default `ListDefaultItem` component.\n */\n\nvar ListDefaultItem = {\n name: 'list-default-item',\n props: {\n defaultItem: [Object, String],\n textField: String,\n selected: Boolean\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n methods: {\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n },\n onClick: function onClick(e) {\n this.$emit('defaultitemclick', e);\n }\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n selected = _a.selected,\n defaultItem = _a.defaultItem,\n textField = _a.textField;\n return h(\"div\", {\n onClick: this.onClick,\n on: this.v3 ? undefined : {\n \"click\": this.onClick,\n \"mousedown\": this.onMouseDown\n },\n onMousedown: this.onMouseDown,\n \"class\": classNames('k-list-optionlabel', {\n 'k-state-selected': selected\n })\n }, [getItemValue(defaultItem, textField) || '']);\n }\n};\nvar ListDefaultItemVue3 = ListDefaultItem;\nexport { ListDefaultItem, ListDefaultItemVue3 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getTemplate } from '@progress/kendo-vue-common';\nimport { getItemValue } from './utils';\n/**\n * Represents the default `ListItem` component.\n */\n\nvar ListItem = {\n name: 'list-item',\n props: {\n id: String,\n index: Number,\n dataItem: [Object, String, Number],\n textField: String,\n focused: Boolean,\n selected: Boolean,\n render: Object\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n computed: {\n itemClass: function itemClass() {\n return {\n 'k-item': true,\n 'k-state-selected': this.$props.selected,\n 'k-state-focused': this.$props.focused\n };\n }\n },\n methods: {\n handleClick: function handleClick(e) {\n this.$emit('itemclick', this.$props.index, e);\n }\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var selected = this.$props.selected;\n var defaultRendering = h(\"li\", {\n id: this.$props.id,\n attrs: this.v3 ? undefined : {\n id: this.$props.id,\n role: \"option\",\n \"aria-selected\": selected\n },\n role: \"option\",\n \"aria-selected\": selected,\n \"class\": this.itemClass,\n onClick: this.handleClick,\n on: this.v3 ? undefined : {\n \"click\": this.handleClick\n }\n }, [getItemValue(this.$props.dataItem, this.$props.textField).toString()]);\n return getTemplate.call(this, {\n h: h,\n template: this.$props.render,\n defaultRendering: defaultRendering,\n additionalProps: __assign(__assign({}, this.$props), {\n itemClass: this.itemClass\n }),\n additionalListeners: {\n click: this.handleClick\n }\n });\n }\n};\nvar ListItemVue3 = ListItem;\nexport { ListItem, ListItemVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nvar inject = allVue.inject;\nimport { ListItem } from './ListItem';\nimport { areSame } from './utils';\nimport { getTemplate } from '@progress/kendo-vue-common';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { messages, nodata } from '../messages';\n/**\n * Represents the default `List` component.\n */\n\nvar List = {\n name: 'list',\n props: {\n id: String,\n show: Boolean,\n dataItems: Array,\n value: [Object, String, Number, Boolean, Array],\n textField: String,\n valueField: String,\n optionsGuid: String,\n wrapperCssClass: String,\n wrapperStyle: Object,\n listStyle: Object,\n skip: Number,\n focusedIndex: Number,\n highlightSelected: {\n type: Boolean,\n default: true\n },\n itemRender: [String, Function, Object],\n noDataRender: [String, Function, Object]\n },\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var listRef = ref(null);\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n listRef: listRef,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n mounted: function mounted() {\n this.list = this.v3 ? this.listRef : this.$refs.list;\n },\n methods: {\n handleClick: function handleClick(index, e) {\n this.$emit('listclick', index, e);\n }\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var localizationService = provideLocalizationService(this);\n var _a = this.$props,\n id = _a.id,\n show = _a.show,\n wrapperCssClass = _a.wrapperCssClass,\n wrapperStyle = _a.wrapperStyle,\n listStyle = _a.listStyle,\n listRef = _a.listRef;\n\n var renderNoValueElement = function renderNoValueElement() {\n var noDataRender = this.$props.noDataRender;\n var noDataElement = h(\"div\", {\n \"class\": 'k-nodata'\n }, [h(\"div\", [localizationService.toLanguageString(nodata, messages[nodata])])]);\n return getTemplate.call(this, {\n h: h,\n template: noDataRender,\n defaultRendering: noDataElement\n });\n };\n\n var renderItems = function renderItems() {\n var _a = this.$props,\n textField = _a.textField,\n valueField = _a.valueField,\n optionsGuid = _a.optionsGuid,\n _b = _a.skip,\n skip = _b === void 0 ? 0 : _b,\n focusedIndex = _a.focusedIndex,\n highlightSelected = _a.highlightSelected,\n value = _a.value,\n itemRender = _a.itemRender;\n var isArray = Array.isArray(value);\n return this.$props.dataItems.map(function (item, index) {\n var realIndex = skip + index;\n var selected = highlightSelected && (!isArray && areSame(item, value, valueField) || isArray && value.findIndex(function (i) {\n return areSame(i, item, valueField);\n }) !== -1);\n return (// @ts-ignore\n h(ListItem, {\n id: \"option-\" + optionsGuid + \"-\" + realIndex,\n attrs: this.v3 ? undefined : {\n id: \"option-\" + optionsGuid + \"-\" + realIndex,\n dataItem: item,\n selected: selected,\n focused: focusedIndex === index,\n index: realIndex,\n textField: textField,\n render: itemRender\n },\n dataItem: item,\n selected: selected,\n focused: focusedIndex === index,\n index: realIndex,\n key: realIndex,\n onItemclick: this.handleClick,\n on: this.v3 ? undefined : {\n \"itemclick\": this.handleClick\n },\n textField: textField,\n render: itemRender\n })\n );\n }, this);\n };\n\n var items = renderItems.call(this);\n return items.length ? h(\"div\", {\n \"class\": wrapperCssClass,\n style: wrapperStyle,\n unselectable: 'on',\n attrs: this.v3 ? undefined : {\n unselectable: 'on'\n }\n }, [h(\"ul\", {\n id: id,\n attrs: this.v3 ? undefined : {\n id: id,\n role: \"listbox\",\n \"aria-hidden\": !show ? true : undefined\n },\n role: \"listbox\",\n \"aria-hidden\": !show ? true : undefined,\n \"class\": 'k-list k-reset',\n ref: this.v3 ? function (el) {\n _this.listRef = el;\n } : 'list',\n style: listStyle\n }, [items])]) : renderNoValueElement.call(this);\n }\n};\nexport { List };","var maxHeightIE = 1533915;\n/**\n * @hidden\n */\n\nvar VirtualScroll =\n/** @class */\nfunction () {\n function VirtualScroll() {\n var _this = this;\n\n this.containerHeight = 0;\n this.skip = 0;\n this.total = 0;\n this.enabled = false;\n this.pageSize = 0;\n this.itemHeight = 0;\n this.prevScrollPos = 0;\n this.listTranslate = 0;\n this.scrollSyncing = false;\n\n this.scrollerRef = function (element) {\n var vs = _this;\n vs.container = element;\n\n if (element) {\n element.setAttribute('unselectable', 'on');\n setTimeout(vs.calcScrollElementHeight.bind(vs), 0);\n }\n };\n\n this.calcScrollElementHeight = function () {\n _this.scrollSyncing = true;\n var heightChanged = false;\n _this.itemHeight = _this.list ? _this.list.children[0].offsetHeight : _this.itemHeight;\n _this.containerHeight = Math.min(maxHeightIE, _this.itemHeight * _this.total);\n var newHeight = _this.containerHeight;\n\n if (_this.scrollElement) {\n heightChanged = _this.scrollElement.style.height !== newHeight + 'px';\n\n if (heightChanged) {\n _this.scrollElement.style.height = newHeight + 'px';\n }\n }\n\n _this.scrollSyncing = false;\n return heightChanged;\n };\n\n this.scrollHandler = this.scrollHandler.bind(this);\n }\n\n Object.defineProperty(VirtualScroll.prototype, \"translate\", {\n get: function get() {\n return this.listTranslate;\n },\n enumerable: false,\n configurable: true\n });\n\n VirtualScroll.prototype.changePage = function (skip, e) {\n var newSkip = Math.min(Math.max(0, skip), this.total - this.pageSize);\n\n if (newSkip !== this.skip) {\n this.PageChange({\n skip: newSkip,\n take: this.pageSize\n }, e);\n }\n };\n\n VirtualScroll.prototype.translateTo = function (dY) {\n this.listTranslate = dY;\n\n if (this.list) {\n this.list.style.transform = 'translateY(' + dY + 'px)';\n }\n };\n\n VirtualScroll.prototype.reset = function () {\n if (this.container) {\n this.calcScrollElementHeight();\n this.container.scrollTop = 0;\n this.translateTo(0);\n }\n };\n\n VirtualScroll.prototype.scrollToEnd = function () {\n if (this.container && this.list) {\n this.calcScrollElementHeight();\n this.container.scrollTop = this.container.scrollHeight - this.container.offsetHeight;\n this.translateTo(this.container.scrollHeight - this.list.offsetHeight);\n }\n };\n\n VirtualScroll.prototype.localScrollUp = function (e) {\n var height = this.itemHeight;\n var scrollTop = this.container.scrollTop;\n var targetTranslate = this.listTranslate;\n var items;\n var additionalOnTop = scrollTop - targetTranslate;\n\n if (additionalOnTop > height) {\n return;\n }\n\n for (items = 0; items < this.skip; items++) {\n if (targetTranslate + height + additionalOnTop <= scrollTop) {\n break;\n }\n\n targetTranslate -= height;\n }\n\n targetTranslate = this.validateTranslate(targetTranslate);\n\n if (this.skip - items <= 0 && targetTranslate >= scrollTop) {\n this.translateTo(0);\n this.changePage(0, e);\n this.container.scrollTop = 0;\n return;\n }\n\n if (targetTranslate !== this.listTranslate) {\n this.translateTo(targetTranslate);\n this.changePage(this.skip - items, e);\n }\n };\n\n VirtualScroll.prototype.localScrollDown = function (e) {\n var height = this.itemHeight;\n var scrollTop = this.container.scrollTop;\n var targetTranslate = this.listTranslate;\n var itemsLenght = this.list.children.length;\n var items;\n\n for (items = 0; items < itemsLenght; items++) {\n if (targetTranslate + height >= scrollTop) {\n break;\n }\n\n targetTranslate += height;\n }\n\n targetTranslate = this.validateTranslate(targetTranslate);\n\n if (items >= itemsLenght && this.skip + items >= this.total) {\n this.translateTo(targetTranslate);\n this.changePage(this.total - 1, e);\n } else if (targetTranslate !== this.listTranslate) {\n this.translateTo(targetTranslate);\n this.changePage(this.skip + items, e);\n }\n };\n\n VirtualScroll.prototype.scrollNonStrict = function (e) {\n var floatItemIndex = this.total * this.prevScrollPos / this.containerHeight;\n var itemIndex = Math.min(Math.floor(floatItemIndex), this.total - 1);\n var targetTranslate = this.containerHeight * floatItemIndex / this.total;\n targetTranslate = this.validateTranslate(targetTranslate);\n this.translateTo(targetTranslate);\n this.changePage(itemIndex, e);\n };\n\n VirtualScroll.prototype.scrollHandler = function (e) {\n var scrollTop = this.container ? this.container.scrollTop : 0;\n var prev = this.prevScrollPos;\n this.prevScrollPos = scrollTop;\n\n if (!this.enabled || !this.list || !this.container || this.scrollSyncing) {\n return;\n }\n\n if (scrollTop - prev <= 0 && scrollTop > this.listTranslate - this.list.scrollHeight / 10) {\n this.localScrollUp(e);\n } else if (scrollTop - prev > 0 && scrollTop < this.listTranslate + this.list.scrollHeight * 2 / 3) {\n this.localScrollDown(e);\n } else {\n this.scrollNonStrict(e);\n }\n };\n\n VirtualScroll.prototype.validateTranslate = function (translate) {\n translate = Math.max(0, translate);\n translate = Math.min(this.containerHeight - this.list.offsetHeight, translate);\n return translate;\n };\n\n return VirtualScroll;\n}();\n\nexport default VirtualScroll;","import { isPresent } from './utils';\nimport { Keys } from '@progress/kendo-vue-common';\n/**\n * @hidden\n */\nvar Navigation = /** @class */ (function () {\n function Navigation() {\n }\n Navigation.prototype.navigate = function (args) {\n var keyCode = args.keyCode;\n if (keyCode === Keys.up || keyCode === Keys.left) {\n return this.next({ current: args.current, min: args.min, max: args.max, step: -1 });\n }\n else if (keyCode === Keys.down || keyCode === Keys.right) {\n return this.next({ current: args.current, min: args.min, max: args.max, step: 1 });\n }\n else if (keyCode === Keys.home) {\n return 0;\n }\n else if (keyCode === Keys.end) {\n return args.max;\n }\n };\n Navigation.prototype.next = function (args) {\n if (!isPresent(args.current)) {\n return args.min;\n }\n else {\n return Math.min(args.max, Math.max(args.current + args.step, args.min));\n }\n };\n return Navigation;\n}());\nexport { Navigation };\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-vue-dropdowns',\n productName: 'Kendo UI for Vue',\n productCodes: ['KENDOUIVUE', 'KENDOUICOMPLETE'],\n publishDate: 1641561157,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning'\n};\n","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nimport VirtualScroll from './VirtualScroll';\nimport { Navigation } from './Navigation';\nimport { scrollToItem, areSame } from './utils';\nimport { guid, validatePackage } from '@progress/kendo-vue-common';\nimport { packageMetadata } from '../package-metadata';\n/**\n * @hidden\n */\n\nvar DropDownBase =\n/** @class */\nfunction () {\n function DropDownBase(component) {\n var _this = this;\n\n this.vs = new VirtualScroll();\n this.navigation = new Navigation();\n\n this.handleItemClick = function (index, event) {\n var state = _this.initState();\n\n state.event = event;\n\n _this.component.handleItemSelect(index, state);\n\n _this.togglePopup(state);\n\n _this.applyState(state);\n };\n\n this.handleFocus = function (event) {\n if (!_this.component.currentFocused) {\n var state = _this.initState(); // @ts-ignore\n\n\n state.data.currentFocused = true;\n state.events.push({\n type: 'focus'\n });\n state.event = event;\n\n _this.applyState(state);\n }\n };\n\n this.filterChanged = function (text, state) {\n // @ts-ignore\n var _a = _this.component.$props,\n textField = _a.textField,\n filterable = _a.filterable;\n\n if (filterable) {\n state.events.push({\n type: 'filterchange',\n filter: {\n field: textField,\n operator: 'contains',\n ignoreCase: true,\n value: text\n }\n });\n }\n };\n\n this.togglePopup = function (state) {\n // @ts-ignore\n var props = _this.component.$props; // @ts-ignore\n\n var opened = props.opened !== undefined ? props.opened : _this.component.currentOpened; // @ts-ignore\n\n if (props.opened === undefined) {\n // @ts-ignore\n state.data.currentOpened = !opened;\n }\n\n if (opened) {\n state.events.push({\n type: 'close'\n });\n } else {\n state.events.push({\n type: 'open'\n });\n\n _this.calculatePopupWidth();\n }\n };\n\n this.pageChange = function (page, event) {\n var state = _this.initState();\n\n state.event = event;\n\n _this.triggerOnPageChange(state, page.skip, page.take);\n\n _this.applyState(state);\n };\n\n this.scrollToVirtualItem = function (virtual, selectedItemIndex) {\n var vs = _this.vs;\n vs.enabled = false;\n\n if (virtual.skip === 0) {\n vs.reset();\n } else if (virtual.skip + virtual.pageSize === virtual.total) {\n vs.scrollToEnd();\n } else {\n var scrollTop = vs.translate;\n\n if (scrollTop === 0) {\n vs.calcScrollElementHeight();\n scrollTop = vs.itemHeight * virtual.skip;\n vs.translateTo(scrollTop - vs.itemHeight);\n }\n\n if (vs.container) {\n vs.container.scrollTop = scrollTop;\n }\n\n _this.scrollToItem(selectedItemIndex, true);\n }\n\n setTimeout(function () {\n return vs.enabled = true;\n }, 10);\n };\n\n validatePackage(packageMetadata);\n this.listBoxId = guid();\n this.guid = guid();\n this.component = component;\n this.vs.PageChange = this.pageChange;\n }\n\n DropDownBase.prototype.didMount = function () {\n // @ts-ignore\n var props = this.component.$props;\n var popupSettings = props.popupSettings || {};\n var style = props.style || {};\n var popupWidth = popupSettings.width;\n var shouldUpdate = props.opened === true;\n\n if (popupWidth === undefined) {\n this.calculatePopupWidth();\n }\n\n if (props.dir === undefined && style.direction === undefined) {\n this.calculateDir();\n shouldUpdate = true;\n }\n\n if (shouldUpdate) {\n // @ts-ignore\n this.component.$forceUpdate();\n }\n };\n\n DropDownBase.prototype.calculateDir = function () {\n if (this.component.element) {\n this.dirCalculated = window.getComputedStyle(this.component.element).direction || undefined;\n }\n };\n\n DropDownBase.prototype.calculatePopupWidth = function () {\n if (this.wrapper) {\n this.popupWidth = this.wrapper.offsetWidth + 'px';\n }\n };\n\n DropDownBase.prototype.scrollToItem = function (itemIndex, vsEnabled) {\n var list = this.list || this.vs.list;\n var item = list ? list.children[0] : undefined;\n\n if (item && itemIndex >= 0) {\n var vs = this.vs;\n var scrollElement = vs.container || list.parentNode;\n var virtualScroll = vsEnabled !== undefined ? vsEnabled : vs.enabled;\n scrollToItem(scrollElement, item.offsetHeight, itemIndex, vs.translate, virtualScroll);\n }\n };\n\n DropDownBase.prototype.initState = function () {\n var state = {\n data: {},\n events: [],\n event: undefined\n };\n return state;\n };\n\n DropDownBase.prototype.applyState = function (state) {\n var _this = this;\n\n if (Object.keys(state.data).length > 0) {\n Object.keys(state.data).forEach(function (key) {\n _this.component[key] = state.data[key];\n });\n } // @ts-ignore\n\n\n var newValue = this.component.computedValue();\n var eventArgs = {\n event: state.event,\n component: this.component,\n target: {\n // @ts-ignore\n name: this.component.$props.name,\n value: newValue\n },\n value: newValue\n };\n state.events.forEach(function (eventData) {\n var type = eventData.type;\n delete eventData.type;\n\n if (type) {\n // @ts-ignore\n _this.component.$emit(type, __assign(__assign({}, eventArgs), eventData));\n\n if (type === 'change') {\n // @ts-ignore\n _this.component.$emit('changemodel', newValue); // @ts-ignore\n\n\n _this.component.$emit('update:modelValue', newValue);\n }\n }\n });\n };\n\n DropDownBase.prototype.triggerOnPageChange = function (state, skip, take) {\n // @ts-ignore\n var virtual = this.component.$props.virtual;\n\n if (virtual) {\n var newSkip = Math.min(Math.max(0, skip), Math.max(0, virtual.total - take));\n\n if (newSkip !== virtual.skip) {\n state.events.push({\n type: 'pagechange',\n page: {\n skip: newSkip,\n take: take\n }\n });\n }\n }\n };\n\n DropDownBase.prototype.triggerPageChangeCornerItems = function (item, state) {\n // @ts-ignore\n var props = this.component.$props;\n var _a = props.dataItems,\n dataItems = _a === void 0 ? [] : _a,\n dataItemKey = props.dataItemKey,\n virtual = props.virtual;\n var opened = props.opened !== undefined ? props.opened : this.component.currentOpened;\n\n if (item && virtual && this.vs.enabled) {\n if (virtual.skip > 0 && areSame(item, dataItems[0], dataItemKey)) {\n this.triggerOnPageChange(state, virtual.skip - 1, virtual.pageSize);\n } else if (!opened && virtual.skip + virtual.pageSize < virtual.total && areSame(item, dataItems[dataItems.length - 1], dataItemKey)) {\n this.triggerOnPageChange(state, virtual.skip + 1, virtual.pageSize);\n }\n }\n };\n\n DropDownBase.defaultProps = {\n popupSettings: {\n animate: true,\n height: '200px'\n },\n required: false,\n validityStyles: true\n };\n return DropDownBase;\n}();\n\nexport default DropDownBase;","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nimport { templateRendering, getListeners, classNames, Keys, guid, noop, getTemplate } from '@progress/kendo-vue-common';\nimport { ListContainer } from '../common/ListContainer';\nimport { ListFilter } from '../common/ListFilter';\nimport { ListDefaultItem } from '../common/ListDefaultItem';\nimport { List } from '../common/List';\nimport DropDownBase from '../common/DropDownBase';\nimport { isPresent, getItemValue, sameCharsOnly, shuffleData, matchText, areSame, preventDefaultNonInputs, getFocusedItem } from '../common/utils';\nvar VALIDATION_MESSAGE = 'Please select a value from the list!';\n/**\n * Represents the default `DropDownList` component.\n */\n\nvar DropDownList = {\n name: 'KendoDropDownList',\n model: {\n event: 'changemodel'\n },\n props: {\n id: String,\n dataItemKey: {\n type: [Object, String]\n },\n defaultValue: {\n type: [String, Object, Number, Boolean],\n default: undefined\n },\n name: String,\n modelValue: {\n type: [String, Object, Number, Boolean],\n default: undefined\n },\n value: {\n type: [String, Object, Number, Boolean],\n default: undefined\n },\n label: {\n type: String\n },\n placeholder: String,\n required: {\n type: Boolean,\n default: false\n },\n leftRightKeysNavigation: {\n type: Boolean,\n default: true\n },\n valid: {\n type: Boolean,\n default: undefined\n },\n validate: {\n type: Boolean\n },\n validationMessage: {\n type: String,\n default: undefined\n },\n validityStyles: {\n type: Boolean,\n default: true\n },\n delay: {\n type: Number,\n default: 500\n },\n ignoreCase: {\n type: Boolean,\n default: true\n },\n iconClassName: String,\n defaultItem: [Object, String],\n valueRender: [String, Function, Object],\n valueMap: Function,\n opened: {\n type: Boolean,\n default: undefined\n },\n disabled: Boolean,\n dir: {\n type: String,\n default: undefined\n },\n tabIndex: {\n type: Number,\n default: 0\n },\n accessKey: String,\n dataItems: Array,\n textField: String,\n className: String,\n loading: Boolean,\n popupSettings: {\n type: Object,\n default: function _default() {\n return {\n animate: true,\n height: '200px'\n };\n }\n },\n itemRender: [String, Function, Object],\n listNoDataRender: [String, Function, Object],\n focusedItemIndex: Function,\n header: [String, Function, Object],\n footer: [String, Function, Object],\n filterable: Boolean,\n filter: {\n type: String,\n default: undefined\n },\n virtual: {\n type: Object,\n default: undefined\n },\n ariaLabelledBy: String,\n ariaDescribedBy: String\n },\n data: function data() {\n return {\n hasMounted: false,\n currentText: '',\n currentValue: '',\n currentFocused: false,\n currentOpened: false,\n searchState: {\n word: '',\n last: ''\n },\n _skipFocusEvent: false,\n valueDuringOnChange: {},\n _navigated: false\n };\n },\n watch: {\n currentOpened: function currentOpened(_, oldValue) {\n // @ts-ignore\n this.prevCurrentOpened = oldValue;\n },\n opened: function opened(_, oldValue) {\n // @ts-ignore\n this.prevOpened = oldValue;\n },\n value: function value(_, oldValue) {\n // @ts-ignore\n this.prevValue = oldValue;\n },\n currentValue: function currentValue(_, oldValue) {\n // @ts-ignore\n this.prevCurrnetValue = oldValue;\n },\n virtual: function virtual(_newValue, _oldValue) {\n // @ts-ignore\n if (_newValue.total !== _oldValue.total) {\n // @ts-ignore\n this.virtualTotalHasChanged = true;\n } // @ts-ignore\n\n\n this.virtualHasChanged = true;\n }\n },\n created: function created() {\n this.valueDuringOnChange = undefined;\n this.currentText = undefined;\n this.currentValue = undefined;\n this.currentFocused = undefined;\n this.currentOpened = undefined;\n this.base = new DropDownBase(this);\n this.anchor = guid();\n this.inputId = guid();\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var selectRef = ref(null);\n var baseWrapperRef = ref(null);\n var kendoAnchorRef = ref(null);\n return {\n v3: v3,\n selectRef: selectRef,\n baseWrapperRef: baseWrapperRef,\n kendoAnchorRef: kendoAnchorRef\n };\n },\n mounted: function mounted() {\n this.hasMounted = true;\n this.select = this.v3 ? this.selectRef : this.$refs.select;\n this.base.wrapper = this.v3 ? this.baseWrapperRef : this.$refs.baseWrapper;\n this.base.didMount();\n this.setValidity();\n },\n updated: function updated() {\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n dataItemKey = _a.dataItemKey,\n virtual = _a.virtual;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var prevOpened = this.prevOpened !== undefined ? this.prevOpened : this.prevCurrentOpened;\n var opening = !prevOpened && opened;\n var closing = prevOpened && !opened;\n var list = this.$refs.list;\n var filterInput = this.$refs.filterInput;\n var scrollElement = this.$refs.scrollElement;\n var scroller = this.$refs.scroller;\n\n if (list) {\n // @ts-ignore\n this.base.vs.list = list.list; // @ts-ignore\n\n this.base.list = list.list;\n }\n\n if (scrollElement) {\n this.base.vs.scrollElement = scrollElement;\n }\n\n if (filterInput) {\n this.filterInput = filterInput;\n }\n\n if (scroller) {\n this.base.vs.scrollerRef(scroller);\n }\n\n if (!this.$props.popupSettings.animate) {\n if (opening) {\n this.onPopupOpened();\n } else if (closing) {// this.onPopupClosed();\n }\n } // @ts-ignore\n\n\n if (virtual && this.virtualTotalHasChanged) {\n this.base.vs.calcScrollElementHeight();\n this.base.vs.reset(); // @ts-ignore\n\n this.virtualTotalHasChanged = false;\n } else {\n var selectedItem_1 = this.computedValue();\n var prevSelectedItem = this.prevValue !== undefined ? this.prevValue : this.prevCurrnetValue;\n var selectedItemIndex = dataItems.findIndex(function (i) {\n return areSame(i, selectedItem_1, dataItemKey);\n });\n var selectedItemChanged = !areSame(prevSelectedItem, selectedItem_1, dataItemKey);\n\n if (opening && virtual) {\n this.base.scrollToVirtualItem(virtual, selectedItemIndex);\n this.prevCurrentOpened = true;\n } else if (opening && !virtual) {\n this.base.scrollToItem(selectedItemIndex);\n this.prevCurrentOpened = true;\n } else if (opened && prevOpened && selectedItem_1 && selectedItemChanged && !this._navigated) {\n this.base.scrollToItem(selectedItemIndex);\n } else if (opened && prevOpened && this._navigated) {\n if (this._navigated && virtual && virtual.skip === 0) {\n this.base.vs.reset();\n } else if (this._navigated && virtual && virtual.skip === virtual.total - virtual.pageSize) {\n this.base.vs.scrollToEnd();\n }\n }\n }\n\n this._navigated = false;\n this.setValidity();\n },\n computed: {\n index: {\n get: function get() {\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n dataItemKey = _a.dataItemKey;\n var value = this.computedValue(); // TO DO: deprecate it!\n\n return dataItems.findIndex(function (i) {\n return areSame(i, value, dataItemKey);\n });\n }\n },\n spanClassNames: {\n get: function get() {\n var isValid = !this.hasMounted || !this.$props.validityStyles || this.validity().valid;\n return {\n 'k-textbox-container': true,\n 'k-state-focused': this.currentFocused,\n 'k-state-empty': !this.computedValue(),\n 'k-state-invalid': !isValid && isValid !== undefined,\n 'k-rtl': this.$props.dir === 'rtl'\n };\n }\n }\n },\n methods: {\n focus: function focus() {\n if (this.base.wrapper) {\n this.base.wrapper.focus();\n }\n },\n computedValue: function computedValue() {\n var value;\n\n if (this.valueDuringOnChange !== undefined) {\n value = this.valueDuringOnChange;\n } else if (this.$props.value !== undefined) {\n value = this.$props.value;\n } else if (this.$props.modelValue !== undefined) {\n value = this.$props.modelValue;\n } else if (this.currentValue !== undefined) {\n value = this.currentValue;\n } else if (this.$props.defaultValue !== undefined) {\n value = this.$props.defaultValue;\n }\n\n if (!isPresent(value) && this.$props.defaultItem !== undefined) {\n value = this.$props.defaultItem;\n }\n\n return value;\n },\n validity: function validity() {\n var customError = this.$props.validationMessage !== undefined;\n var isValid = !this.$props.required || this.computedValue() !== null && this.computedValue() !== '' && this.computedValue() !== undefined;\n var valid = this.$props.valid !== undefined ? this.$props.valid : isValid;\n return {\n customError: customError,\n valid: valid,\n valueMissing: this.computedValue() === null\n };\n },\n handleItemSelect: function handleItemSelect(index, state) {\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n virtual = _a.virtual,\n dataItemKey = _a.dataItemKey,\n defaultItem = _a.defaultItem;\n var skip = virtual ? virtual.skip : 0;\n var item = index === -1 && defaultItem !== undefined ? defaultItem : dataItems[index - skip];\n var newSelected = !areSame(item, this.computedValue(), dataItemKey);\n this.triggerOnChange(item, state);\n\n if (newSelected) {\n this.base.triggerPageChangeCornerItems(item, state);\n }\n },\n onNavigate: function onNavigate(state, keyCode) {\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n defaultItem = _a.defaultItem,\n dataItemKey = _a.dataItemKey,\n _c = _a.virtual,\n virtual = _c === void 0 ? {\n skip: 0,\n total: 0,\n pageSize: 0\n } : _c;\n var vs = this.base.vs;\n var value = this.computedValue();\n var index = dataItems.findIndex(function (i) {\n return areSame(i, value, dataItemKey);\n });\n var newIndex = this.base.navigation.navigate({\n current: virtual.skip + index,\n max: (vs.enabled ? virtual.total : dataItems.length) - 1,\n min: defaultItem !== undefined ? -1 : 0,\n keyCode: keyCode\n });\n\n if (newIndex !== undefined) {\n this.handleItemSelect(newIndex, state);\n }\n\n this.applyState(state);\n },\n search: function search(event) {\n var _this = this;\n\n clearTimeout(this.typingTimeout);\n\n if (!this.$props.filterable) {\n this.typingTimeout = setTimeout(function () {\n return _this.searchState.word = '';\n }, this.$props.delay);\n this.selectNext(event);\n }\n },\n selectNext: function selectNext(event) {\n var _this = this;\n\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n dataItemKey = _a.dataItemKey;\n var mappedData = dataItems.map(function (item, idx) {\n return {\n item: item,\n itemIndex: idx\n };\n });\n var word = this.searchState.word;\n var last = this.searchState.last;\n var isInLoop = sameCharsOnly(word, last);\n var dataLength = mappedData.length;\n var startIndex = Math.max(0, dataItems.findIndex(function (i) {\n return areSame(i, _this.computedValue(), dataItemKey);\n }));\n var defaultItem;\n\n if (this.$props.defaultItem) {\n defaultItem = {\n item: this.$props.defaultItem,\n itemIndex: -1\n };\n dataLength += 1;\n startIndex += 1;\n }\n\n startIndex += isInLoop ? 1 : 0;\n mappedData = shuffleData(mappedData, startIndex, defaultItem);\n var text,\n loopMatch,\n nextMatch,\n index = 0;\n var _c = this.$props,\n textField = _c.textField,\n ignoreCase = _c.ignoreCase;\n\n for (; index < dataLength; index++) {\n text = getItemValue(mappedData[index].item, textField);\n loopMatch = isInLoop && matchText(text, last, ignoreCase);\n nextMatch = matchText(text, word, ignoreCase);\n\n if (loopMatch || nextMatch) {\n index = mappedData[index].itemIndex;\n break;\n }\n }\n\n if (index !== dataLength) {\n var state = this.base.initState();\n state.event = event;\n this.handleItemSelect(index, state);\n this.applyState(state);\n this.valueDuringOnChange = undefined;\n }\n },\n handleKeyDown: function handleKeyDown(event) {\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n leftRightKeysNavigation = _a.leftRightKeysNavigation,\n filterable = _a.filterable,\n disabled = _a.disabled,\n _c = _a.virtual,\n virtual = _c === void 0 ? {\n skip: 0,\n total: 0,\n pageSize: 0\n } : _c;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var keyCode = event.keyCode;\n var homeOrEndKeys = keyCode === Keys.home || keyCode === Keys.end;\n var upOrDownKeys = keyCode === Keys.up || keyCode === Keys.down;\n var shouldOpen = !opened && (event.altKey && keyCode === Keys.down || keyCode === Keys.enter || keyCode === Keys.space);\n var shouldClose = opened && (event.altKey && keyCode === Keys.up || keyCode === Keys.esc);\n var leftOrRightKeys = leftRightKeysNavigation && (keyCode === Keys.left || keyCode === Keys.right);\n var shouldNavigate = upOrDownKeys || !filterable && (leftOrRightKeys || homeOrEndKeys);\n var state = this.base.initState();\n state.event = event;\n\n if (disabled) {\n return;\n } else if (homeOrEndKeys && this.base.vs.enabled) {\n if (keyCode === Keys.home) {\n if (virtual.skip !== 0) {\n this.base.triggerOnPageChange(state, 0, virtual.pageSize);\n this._navigated = true;\n } else {\n this.triggerOnChange(dataItems[0], state);\n }\n } else {\n if (virtual.skip < virtual.total - virtual.pageSize) {\n this.base.triggerOnPageChange(state, virtual.total - virtual.pageSize, virtual.pageSize);\n this._navigated = true;\n } else {\n this.triggerOnChange(dataItems[dataItems.length - 1], state);\n }\n }\n } else if (opened && keyCode === Keys.enter) {\n var focusedIndex = this.focusedIndex();\n\n if (focusedIndex !== undefined) {\n this.handleItemSelect(focusedIndex, state);\n }\n\n this.base.togglePopup(state);\n event.preventDefault();\n } else if (shouldOpen || shouldClose) {\n this.base.togglePopup(state);\n event.preventDefault();\n } else if (shouldNavigate) {\n this.onNavigate(state, keyCode);\n event.preventDefault();\n }\n\n this.applyState(state);\n },\n handleItemClick: function handleItemClick(index, event) {\n this.base.handleItemClick(index, event);\n this.valueDuringOnChange = undefined;\n },\n handleFocus: function handleFocus(event) {\n if (this._skipFocusEvent) {\n return;\n }\n\n this.base.handleFocus(event);\n },\n handleBlur: function handleBlur(event) {\n if (this._skipFocusEvent || !this.currentFocused) {\n return;\n }\n\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var state = this.base.initState();\n state.event = event;\n state.data.currentFocused = false;\n state.events.push({\n type: 'blur'\n });\n\n if (opened) {\n this.base.togglePopup(state);\n }\n\n this.applyState(state);\n },\n handleDefaultItemClick: function handleDefaultItemClick(event) {\n var state = this.base.initState();\n state.event = event;\n this.base.togglePopup(state);\n this.triggerOnChange(this.$props.defaultItem, state);\n this.applyState(state);\n },\n handleWrapperClick: function handleWrapperClick(event) {\n var state = this.base.initState();\n state.event = event;\n\n if (!this.currentFocused) {\n // @ts-ignore\n state.data.currentFocused = true;\n }\n\n this.base.togglePopup(state);\n this.applyState(state);\n },\n handleKeyPress: function handleKeyPress(event) {\n if (this.$props.filterable || event.keyCode === Keys.enter) {\n return;\n }\n\n var character = String.fromCharCode(event.charCode || event.keyCode);\n\n if (this.$props.ignoreCase) {\n character = character.toLowerCase();\n }\n\n if (character === ' ') {\n event.preventDefault();\n }\n\n this.searchState = {\n word: this.searchState.word + character,\n last: this.searchState.last + character\n };\n this.search(event);\n },\n handleListFilterChange: function handleListFilterChange(event) {\n var state = this.base.initState();\n state.event = event;\n\n if (this.$props.filter === undefined) {\n // @ts-ignore\n state.data.currentText = event.target.value;\n }\n\n this.base.filterChanged(event.target.value, state);\n this.applyState(state);\n },\n onPopupOpened: function onPopupOpened() {\n if (this.filterInput) {\n this.focusElement(this.filterInput.input);\n }\n },\n onPopupClosed: function onPopupClosed() {\n var _this = this;\n\n if (this.currentFocused) {\n setTimeout(function () {\n if (_this.currentFocused && _this.base.wrapper) {\n _this.focusElement(_this.base.wrapper);\n }\n });\n }\n },\n focusedIndex: function focusedIndex() {\n var filterText = isPresent(this.$props.filter) ? this.$props.filter : this.currentText;\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n _c = _a.virtual,\n virtual = _c === void 0 ? {\n skip: 0\n } : _c,\n dataItemKey = _a.dataItemKey,\n textField = _a.textField,\n focusedItemIndex = _a.focusedItemIndex;\n var value = this.computedValue();\n var selectedIndex = dataItems.findIndex(function (i) {\n return areSame(i, value, dataItemKey);\n });\n var hasSelected = !(selectedIndex < 0 && !this.$props.defaultItem);\n\n if (!hasSelected && filterText && virtual.skip === 0) {\n return focusedItemIndex ? focusedItemIndex(dataItems, filterText, textField) : dataItems.indexOf(getFocusedItem(dataItems, filterText, textField));\n } else {\n return !hasSelected && virtual.skip === 0 ? 0 : undefined;\n }\n },\n focusElement: function focusElement(element) {\n var _this = this;\n\n this._skipFocusEvent = true;\n element.focus();\n setTimeout(function () {\n return _this._skipFocusEvent = false;\n }, 30);\n },\n setValidity: function setValidity() {\n if (this.select && this.select.setCustomValidity) {\n this.select.setCustomValidity(this.validity().valid ? '' : this.$props.validationMessage || VALIDATION_MESSAGE);\n }\n },\n triggerOnChange: function triggerOnChange(item, state) {\n if (areSame(this.computedValue(), item, this.$props.dataItemKey)) {\n return;\n }\n\n if (this.$props.value === undefined) {\n this.currentValue = item;\n }\n\n this.valueDuringOnChange = item;\n state.events.push({\n type: 'change'\n });\n },\n applyState: function applyState(state) {\n this.base.applyState(state);\n this.valueDuringOnChange = undefined;\n }\n },\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var _a = this.$props,\n style = _a.style,\n className = _a.className,\n label = _a.label,\n dir = _a.dir,\n _b = _a.virtual,\n virtual = _b === void 0 ? {\n skip: 0\n } : _b;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var text = getItemValue(this.computedValue(), this.$props.textField);\n var isValid = !this.$props.validityStyles || this.validity().valid;\n var base = this.base;\n var vs = base.vs;\n var id = this.$props.id || this.inputId;\n vs.enabled = this.$props.virtual !== undefined;\n var popupSettings = Object.assign({}, {\n animate: true,\n height: '200px'\n }, this.$props.popupSettings);\n\n var dummySelect = function dummySelect(value) {\n var _this = this;\n /* Dummy component to support forms */\n\n\n return h(\"select\", {\n name: this.$props.name,\n attrs: this.v3 ? undefined : {\n name: this.$props.name,\n id: id,\n tabIndex: -1,\n \"aria-hidden\": true,\n title: this.$props.label\n },\n id: id,\n ref: this.v3 ? function (el) {\n _this.selectRef = el;\n } : 'select',\n tabIndex: -1,\n \"aria-hidden\": true,\n title: this.$props.label,\n style: {\n opacity: 0,\n width: 1,\n border: 0,\n zIndex: -1,\n position: 'absolute',\n left: '50%'\n }\n }, [h(\"option\", {\n value: this.v3 ? this.$props.valueMap ? this.$props.valueMap.call(undefined, value) : value : null,\n domProps: this.v3 ? undefined : {\n \"value\": this.$props.valueMap ? this.$props.valueMap.call(undefined, value) : value\n }\n })]);\n };\n\n var renderDropDownWrapper = function renderDropDownWrapper() {\n var _this = this;\n\n var _a = this.$props,\n dataItemKey = _a.dataItemKey,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n disabled = _a.disabled,\n tabIndex = _a.tabIndex,\n loading = _a.loading,\n iconClassName = _a.iconClassName;\n var valueRender = templateRendering.call(this, this.$props.valueRender, getListeners.call(this));\n var focused = this.currentFocused;\n var value = this.computedValue();\n var selectedIndex = dataItems.findIndex(function (i) {\n return areSame(i, value, dataItemKey);\n });\n var valueDefaultRendering = h(\"span\", {\n \"class\": \"k-input\"\n }, [text]);\n var valueElement = getTemplate.call(this, {\n h: h,\n template: valueRender,\n defaultRendering: valueDefaultRendering,\n additionalProps: __assign({\n value: this.computedValue()\n }, this.$data)\n });\n return h(\"span\", {\n ref: this.v3 ? function (el) {\n _this.baseWrapperRef = el;\n } : 'baseWrapper',\n role: 'listbox',\n attrs: this.v3 ? undefined : {\n role: 'listbox',\n tabIndex: disabled ? undefined : tabIndex,\n accessKey: this.$props.accessKey,\n \"aria-disabled\": disabled || undefined,\n \"aria-haspopup\": true,\n \"aria-expanded\": opened || false,\n \"aria-owns\": this.base.listBoxId,\n \"aria-activedescendant\": 'option-' + this.base.guid + '-' + (selectedIndex + virtual.skip),\n \"aria-label\": this.$props.label,\n \"aria-labelledby\": this.$props.ariaLabelledBy,\n \"aria-describedby\": this.$props.ariaDescribedBy\n },\n tabIndex: disabled ? undefined : tabIndex,\n accessKey: this.$props.accessKey,\n \"class\": classNames('k-dropdown-wrap', {\n 'k-state-focused': focused,\n 'k-state-disabled': disabled\n }),\n style: this.$props.style,\n onKeydown: this.handleKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.handleKeyDown,\n \"keypress\": this.handleKeyPress,\n \"click\": disabled ? noop : this.handleWrapperClick\n },\n onKeypress: this.handleKeyPress,\n onClick: disabled ? noop : this.handleWrapperClick,\n \"aria-disabled\": disabled || undefined,\n \"aria-haspopup\": true,\n \"aria-expanded\": opened || false,\n \"aria-owns\": this.base.listBoxId,\n \"aria-activedescendant\": 'option-' + this.base.guid + '-' + (selectedIndex + virtual.skip),\n \"aria-label\": this.$props.label,\n \"aria-labelledby\": this.$props.ariaLabelledBy,\n \"aria-describedby\": this.$props.ariaDescribedBy\n }, [valueElement, h(\"span\", {\n \"class\": \"k-select\"\n }, [h(\"span\", {\n \"class\": classNames('k-icon', iconClassName, {\n 'k-i-arrow-s': !loading && !iconClassName,\n 'k-i-loading': loading && !iconClassName\n })\n })]), dummySelect.call(this, value)]);\n };\n\n var renderDefaultItem = function renderDefaultItem() {\n var _a = this.$props,\n textField = _a.textField,\n defaultItem = _a.defaultItem,\n dataItemKey = _a.dataItemKey;\n return defaultItem !== undefined && // @ts-ignore\n h(ListDefaultItem, {\n defaultItem: defaultItem,\n attrs: this.v3 ? undefined : {\n defaultItem: defaultItem,\n textField: textField,\n selected: areSame(this.computedValue(), defaultItem, dataItemKey)\n },\n textField: textField,\n selected: areSame(this.computedValue(), defaultItem, dataItemKey),\n key: \"defaultitemkey\",\n onDefaultitemclick: this.handleDefaultItemClick,\n on: this.v3 ? undefined : {\n \"defaultitemclick\": this.handleDefaultItemClick\n }\n });\n };\n\n var renderList = function renderList() {\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n textField = _a.textField,\n dataItemKey = _a.dataItemKey;\n var itemRender = templateRendering.call(this, this.$props.itemRender, getListeners.call(this));\n var listNoDataRender = templateRendering.call(this, this.$props.listNoDataRender, getListeners.call(this));\n var skip = virtual.skip;\n var translate = \"translateY(\" + vs.translate + \"px)\";\n return (// @ts-ignore\n h(List, {\n id: this.base.listBoxId,\n attrs: this.v3 ? undefined : {\n id: this.base.listBoxId,\n show: opened,\n dataItems: dataItems.slice(),\n focusedIndex: this.focusedIndex(),\n value: this.computedValue(),\n textField: textField,\n valueField: dataItemKey,\n optionsGuid: this.base.guid,\n wrapperStyle: !vs.enabled ? {\n maxHeight: popupSettings.height\n } : {\n float: 'left',\n width: '100%'\n },\n wrapperCssClass: !vs.enabled ? 'k-list-scroller' : undefined,\n listStyle: vs.enabled ? {\n transform: translate\n } : undefined,\n skip: skip,\n itemRender: itemRender,\n noDataRender: listNoDataRender\n },\n show: opened,\n dataItems: dataItems.slice(),\n focusedIndex: this.focusedIndex(),\n value: this.computedValue(),\n textField: textField,\n valueField: dataItemKey,\n optionsGuid: this.base.guid,\n ref: 'list',\n wrapperStyle: !vs.enabled ? {\n maxHeight: popupSettings.height\n } : {\n float: 'left',\n width: '100%'\n },\n wrapperCssClass: !vs.enabled ? 'k-list-scroller' : undefined,\n listStyle: vs.enabled ? {\n transform: translate\n } : undefined,\n key: \"listkey\",\n skip: skip,\n onListclick: this.handleItemClick,\n on: this.v3 ? undefined : {\n \"listclick\": this.handleItemClick\n },\n itemRender: itemRender,\n noDataRender: listNoDataRender\n })\n );\n };\n\n var renderListFilter = function renderListFilter() {\n var filterText = this.$props.filter !== undefined ? this.$props.filter : this.currentText;\n return this.$props.filterable && // @ts-ignore\n h(ListFilter, {\n value: filterText,\n attrs: this.v3 ? undefined : {\n value: filterText\n },\n ref: 'filterInput',\n onChange: this.handleListFilterChange,\n on: this.v3 ? undefined : {\n \"change\": this.handleListFilterChange,\n \"keydown\": this.handleKeyDown\n },\n onKeydown: this.handleKeyDown\n });\n }; // Common rendering\n\n\n var renderScrollWrapper = function renderScrollWrapper(children) {\n return vs.enabled ? h(\"div\", {\n onScroll: vs.scrollHandler,\n on: this.v3 ? undefined : {\n \"scroll\": vs.scrollHandler\n },\n ref: 'scroller',\n style: {\n height: popupSettings.height,\n overflowY: 'scroll'\n }\n }, [children]) : children;\n };\n\n var renderScrollElement = function renderScrollElement() {\n return vs.enabled && h(\"div\", {\n ref: 'scrollElement',\n key: 'scrollElementKey'\n });\n };\n\n var renderListContainer = function renderListContainer() {\n var _this2 = this;\n\n var headerTemplate = templateRendering.call(this, this.$props.header, getListeners.call(this));\n var footerTemplate = templateRendering.call(this, this.$props.footer, getListeners.call(this));\n var header = getTemplate.call(this, {\n h: h,\n template: headerTemplate\n });\n var footer = getTemplate.call(this, {\n h: h,\n template: footerTemplate\n });\n var popupWidth = popupSettings.width !== undefined ? popupSettings.width : base.popupWidth;\n return (// @ts-ignore function children\n h(ListContainer, {\n onMousedown: preventDefaultNonInputs,\n on: this.v3 ? undefined : {\n \"mousedown\": preventDefaultNonInputs,\n \"open\": this.onPopupOpened,\n \"close\": this.onPopupClosed,\n \"blur\": this.handleBlur\n },\n dir: dir !== undefined ? dir : base.dirCalculated,\n attrs: this.v3 ? undefined : {\n dir: dir !== undefined ? dir : base.dirCalculated,\n width: popupWidth // @ts-ignore\n ,\n popupSettings: {\n className: classNames('k-list-container k-reset', popupSettings.className),\n animate: popupSettings.animate,\n anchor: this.anchor,\n show: opened\n }\n },\n width: popupWidth,\n popupSettings: {\n className: classNames('k-list-container k-reset', popupSettings.className),\n animate: popupSettings.animate,\n anchor: this.anchor,\n show: opened\n },\n onOpen: this.onPopupOpened,\n onClose: this.onPopupClosed,\n onBlur: this.handleBlur\n }, this.v3 ? function () {\n return [renderListFilter.call(_this2), _this2.$props.virtual ? renderDefaultItem.call(_this2) : undefined, _this2.$props.virtual && header, renderScrollWrapper.call(_this2, !_this2.$props.virtual ? [renderDefaultItem.call(_this2), header, renderList.call(_this2), footer, renderScrollElement.call(_this2)] : [renderList.call(_this2), renderScrollElement.call(_this2)]), _this2.$props.virtual && footer];\n } : [renderListFilter.call(_this2), _this2.$props.virtual ? renderDefaultItem.call(_this2) : undefined, _this2.$props.virtual && header, renderScrollWrapper.call(_this2, !_this2.$props.virtual ? [renderDefaultItem.call(_this2), header, renderList.call(_this2), footer, renderScrollElement.call(_this2)] : [renderList.call(_this2), renderScrollElement.call(_this2)]), _this2.$props.virtual && footer])\n );\n };\n\n if (this.$props.virtual !== undefined) {\n base.vs.skip = virtual.skip; // @ts-ignore\n\n base.vs.total = virtual.total; // @ts-ignore\n\n base.vs.pageSize = virtual.pageSize;\n }\n\n var dropdownlist = h(\"span\", {\n ref: this.v3 ? function (el) {\n _this.kendoAnchorRef = el;\n } : this.anchor,\n \"class\": classNames('k-widget k-dropdown', {\n 'k-state-invalid': !isValid\n }, className),\n style: !label ? style : __assign(__assign({}, style), {\n width: undefined\n }),\n dir: dir,\n attrs: this.v3 ? undefined : {\n dir: dir\n },\n onMousedown: opened ? preventDefaultNonInputs : noop,\n on: this.v3 ? undefined : {\n \"mousedown\": opened ? preventDefaultNonInputs : noop,\n \"focusin\": this.handleFocus,\n \"focusout\": this.handleBlur\n },\n onFocusin: this.handleFocus,\n onFocusout: this.handleBlur\n }, [renderDropDownWrapper.call(this), renderListContainer.call(this)]);\n return label ? h(\"span\", {\n \"class\": this.spanClassNames,\n onFocusin: this.handleFocus,\n on: this.v3 ? undefined : {\n \"focusin\": this.handleFocus,\n \"focusout\": this.handleBlur\n },\n onFocusout: this.handleBlur,\n dir: this.$props.dir,\n attrs: this.v3 ? undefined : {\n dir: this.$props.dir\n }\n }, [dropdownlist, this.$props.label ? id ? h(\"label\", {\n \"for\": id,\n attrs: this.v3 ? undefined : {\n \"for\": id\n },\n \"class\": \"k-label\"\n }, [this.$props.label]) : h(\"span\", {\n \"class\": \"k-label\"\n }, [this.$props.label]) : null]) : dropdownlist;\n }\n};\nvar DropDownListVue3 = DropDownList;\nexport { DropDownList, DropDownListVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nimport { canUseDOM } from '@progress/kendo-vue-common';\n/**\n * Represents the default `SearchBar` component.\n */\n\nvar SearchBar = {\n name: 'search-bar',\n // @ts-ignore\n emits: {\n 'change': null,\n 'keydown': null,\n 'focus': null,\n 'blur': null\n },\n props: {\n value: String,\n id: String,\n placeholder: String,\n tabIndex: Number,\n size: {\n type: Number,\n default: undefined\n },\n suggestedText: String,\n focused: Boolean,\n disabled: Boolean,\n readOnly: Boolean,\n expanded: Boolean,\n owns: String,\n name: String,\n activedescendant: String,\n describedby: String,\n clearButton: Boolean,\n accessKey: String\n },\n data: function data() {\n return {\n prevValue: undefined,\n prevSuggestedText: undefined\n };\n },\n watch: {\n suggestedText: function suggestedText(_, oldValue) {\n this.prevSuggestedText = oldValue;\n },\n value: function value(_, oldValue) {\n this.prevValue = oldValue;\n }\n },\n updated: function updated() {\n var _a = this.$props,\n value = _a.value,\n suggestedText = _a.suggestedText,\n focused = _a.focused;\n\n if (!this.input) {\n this.input = this.$refs.input;\n }\n\n var input = this.input;\n var valueChanged = this.$data.prevValue !== value || suggestedText !== this.prevSuggestedText;\n var deleting = valueChanged && this.$data.prevValue && this.$data.prevValue.startsWith(value) && !(this.$data.prevSuggestedText && suggestedText && this.$data.prevSuggestedText.endsWith(suggestedText));\n\n if (focused && input && canUseDOM && document.activeElement !== input) {\n input.focus();\n }\n\n if (suggestedText && valueChanged && !deleting && input) {\n input.setSelectionRange(value.length - suggestedText.length, value.length);\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var inputRef = ref(null);\n return {\n v3: v3,\n inputRef: inputRef\n };\n },\n mounted: function mounted() {\n this.input = this.v3 ? this.inputRef : this.$refs.input;\n },\n methods: {\n onChange: function onChange(e) {\n this.$emit('change', e);\n },\n onBlur: function onBlur(e) {\n this.$emit('blur', e);\n },\n onFocus: function onFocus(e) {\n this.$emit('focus', e);\n },\n onKeyDown: function onKeyDown(e) {\n this.$emit('keydown', e);\n },\n clearButtonClick: function clearButtonClick(e) {\n this.$emit('clearbuttonclick', e);\n }\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var suggestedText = this.$props.suggestedText;\n return h(\"span\", {\n \"class\": \"k-searchbar\",\n key: \"searchbar\"\n }, [h(\"input\", {\n autoComplete: \"off\",\n attrs: this.v3 ? undefined : {\n autoComplete: \"off\",\n id: this.$props.id,\n type: \"text\",\n placeholder: this.$props.placeholder,\n tabIndex: this.$props.tabIndex,\n accessKey: this.$props.accessKey,\n role: \"listbox\",\n name: this.$props.name,\n size: this.$props.size ? this.$props.size : 20,\n \"aria-disabled\": this.$props.disabled || undefined,\n disabled: this.$props.disabled || undefined,\n readOnly: this.$props.readOnly || undefined,\n \"aria-haspopup\": \"listbox\",\n \"aria-expanded\": this.$props.expanded || false,\n \"aria-owns\": this.$props.owns,\n \"aria-activedescendant\": this.$props.activedescendant,\n \"aria-describedby\": this.$props.describedby\n },\n id: this.$props.id,\n type: \"text\",\n placeholder: this.$props.placeholder,\n \"class\": \"k-input\",\n tabIndex: this.$props.tabIndex,\n accessKey: this.$props.accessKey,\n role: \"listbox\",\n name: this.$props.name,\n value: this.v3 ? this.$props.value : null,\n domProps: this.v3 ? undefined : {\n \"value\": this.$props.value\n },\n size: this.$props.size ? this.$props.size : 20,\n onInput: this.onChange,\n on: this.v3 ? undefined : {\n \"input\": this.onChange,\n \"keydown\": this.onKeyDown,\n \"focusin\": this.onFocus,\n \"blur\": this.onBlur\n },\n ref: this.v3 ? function (el) {\n _this.inputRef = el;\n } : 'input',\n onKeydown: this.onKeyDown,\n onFocusin: this.onFocus,\n onBlur: this.onBlur,\n \"aria-disabled\": this.$props.disabled || undefined,\n disabled: this.$props.disabled || undefined,\n readOnly: this.$props.readOnly || undefined,\n \"aria-haspopup\": \"listbox\",\n \"aria-expanded\": this.$props.expanded || false,\n \"aria-owns\": this.$props.owns,\n \"aria-activedescendant\": this.$props.activedescendant,\n \"aria-describedby\": this.$props.describedby\n })]);\n }\n};\nvar SearchBarVue3 = SearchBar;\nexport { SearchBar, SearchBarVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar inject = allVue.inject;\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { messages, clear } from '../messages';\n/**\n * Represents the default `ClearButton` component.\n */\n\nvar ClearButton = {\n name: 'clear-button',\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n methods: {\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n },\n onClickHandler: function onClickHandler(e) {\n this.$emit('clearclick', e);\n }\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var title = provideLocalizationService(this).toLanguageString(clear, messages[clear]);\n return h(\"span\", {\n \"class\": \"k-icon k-clear-value k-i-close\",\n role: \"button\",\n attrs: this.v3 ? undefined : {\n role: \"button\",\n tabIndex: -1,\n title: title\n },\n onClick: this.onClickHandler,\n on: this.v3 ? undefined : {\n \"click\": this.onClickHandler,\n \"mousedown\": this.onMouseDown\n },\n onMousedown: this.onMouseDown,\n tabIndex: -1,\n title: title,\n key: \"clearbutton\"\n });\n }\n};\nvar ClearButtonVue3 = ClearButton;\nexport { ClearButton, ClearButtonVue3 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nimport DropDownBase from '../common/DropDownBase';\nimport { guid, classNames, Keys, templateRendering, getListeners, getTemplate } from '@progress/kendo-vue-common';\nimport { areSame, itemIndexStartsWith, getItemIndexByText, getItemValue, isPresent, suggestValue as _suggestValue } from '../common/utils';\nimport { SearchBar } from '../common/SearchBar';\nimport { ListContainer } from '../common/ListContainer';\nimport { List } from '../common/List';\nimport { ClearButton } from '../common/ClearButton';\nvar VALIDATION_MESSAGE = 'Please enter a valid value!';\n/**\n * Represents the default `ComboBox` component.\n */\n\nvar ComboBox = {\n name: 'KendoComboBox',\n model: {\n event: 'changemodel'\n },\n // @ts-ignore\n emits: {\n 'changemodel': null,\n 'update:modelValue': null,\n 'filterchange': null,\n change: null,\n focus: null,\n blur: null,\n open: null,\n close: null\n },\n props: {\n id: String,\n dataItemKey: {\n type: [Object, String]\n },\n defaultValue: {\n type: [String, Object, Number, Boolean],\n default: undefined\n },\n name: String,\n modelValue: {\n type: [String, Object, Number, Boolean],\n default: undefined\n },\n value: {\n type: [String, Object, Number, Boolean],\n default: undefined\n },\n label: {\n type: String\n },\n placeholder: String,\n required: {\n type: Boolean,\n default: false\n },\n valid: {\n type: Boolean,\n default: undefined\n },\n validationMessage: {\n type: String,\n default: undefined\n },\n validityStyles: {\n type: Boolean,\n default: true\n },\n iconClassName: String,\n opened: {\n type: Boolean,\n default: undefined\n },\n disabled: Boolean,\n dir: {\n type: String,\n default: undefined\n },\n tabIndex: {\n type: Number,\n default: 0\n },\n accessKey: String,\n dataItems: Array,\n textField: String,\n className: String,\n loading: Boolean,\n popupSettings: {\n type: Object,\n default: function _default() {\n return {\n animate: true,\n height: '200px'\n };\n }\n },\n itemRender: [String, Function, Object],\n listNoDataRender: [String, Function, Object],\n focusedItemIndex: Function,\n header: [String, Function, Object],\n footer: [String, Function, Object],\n filterable: Boolean,\n filter: {\n type: String,\n default: undefined\n },\n virtual: {\n type: Object,\n default: undefined\n },\n suggest: {\n type: Boolean,\n default: false\n },\n allowCustom: {\n type: Boolean,\n default: false\n },\n clearButton: {\n type: Boolean,\n default: true\n },\n ariaLabelledBy: String,\n ariaDescribedBy: String\n },\n data: function data() {\n return {\n hasMounted: false,\n currentText: '',\n currentValue: '',\n currentFocused: false,\n currentOpened: false,\n searchState: {\n word: '',\n last: ''\n },\n _skipFocusEvent: false,\n valueDuringOnChange: {},\n _navigated: false,\n suggested: ''\n };\n },\n created: function created() {\n this.valueDuringOnChange = undefined;\n this.currentText = undefined;\n this.currentValue = undefined;\n this.currentFocused = undefined;\n this.currentOpened = undefined;\n this.base = new DropDownBase(this);\n this.anchor = guid();\n this.inputId = guid();\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var inputRef = ref(null);\n var elementRef = ref(null);\n var kendoAnchorRef = ref(null);\n return {\n v3: v3,\n inputRef: inputRef,\n elementRef: elementRef,\n kendoAnchorRef: kendoAnchorRef\n };\n },\n mounted: function mounted() {\n this.hasMounted = true; // @ts-ignore\n\n this.input = this.v3 ? this.inputRef.input : this.$refs.input.input;\n this.base.wrapper = this.v3 ? this.baseWrapperRef : this.$refs.baseWrapper;\n this.element = this.v3 ? this.elementRef : this.$refs.element;\n this.base.didMount();\n this.setValidity();\n },\n updated: function updated() {\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n dataItemKey = _a.dataItemKey,\n virtual = _a.virtual;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var prevOpened = this.prevOpened !== undefined ? this.prevOpened : this.prevCurrentOpened;\n var opening = !prevOpened && opened;\n var closing = prevOpened && !opened;\n var list = this.$refs.list;\n var scrollElement = this.$refs.scrollElement;\n var scroller = this.$refs.scroller;\n var selectedItem = this.computedValue();\n this.valueOnDidUpdate = selectedItem;\n\n if (list) {\n // @ts-ignore\n this.base.vs.list = list.list; // @ts-ignore\n\n this.base.list = list.list;\n }\n\n if (scrollElement) {\n this.base.vs.scrollElement = scrollElement;\n }\n\n if (scroller) {\n this.base.vs.scrollerRef(scroller);\n } // @ts-ignore\n\n\n if (virtual && this.virtualTotalHasChanged) {\n this.base.vs.calcScrollElementHeight();\n this.base.vs.reset();\n this.virtualTotalHasChanged = false;\n } else {\n var prevSelectedItem = this.prevValue !== undefined ? this.prevValue : this.prevCurrentValue;\n var selectedItemIndex = dataItems.findIndex(function (i) {\n return areSame(i, selectedItem, dataItemKey);\n });\n var selectedItemChanged = !areSame(prevSelectedItem, selectedItem, dataItemKey);\n\n if (opening && virtual) {\n this.base.scrollToVirtualItem(virtual, selectedItemIndex);\n this.prevCurrentOpened = true;\n } else if (opening && !virtual) {\n this.base.scrollToItem(selectedItemIndex);\n this.prevCurrentOpened = true;\n } else if (opened && prevOpened && selectedItem && selectedItemChanged) {\n this.base.scrollToItem(selectedItemIndex);\n }\n }\n\n if (opening && this.input) {\n this.input.focus();\n }\n\n this.setValidity();\n },\n watch: {\n currentOpened: function currentOpened(_, oldValue) {\n this.prevCurrentOpened = oldValue;\n },\n opened: function opened(_, oldValue) {\n this.prevOpened = oldValue;\n },\n value: function value(_, oldValue) {\n this.prevValue = oldValue;\n },\n currentValue: function currentValue(_, oldValue) {\n this.prevCurrentValue = oldValue;\n },\n virtual: function virtual(_newValue, _oldValue) {\n if (_newValue.total !== _oldValue.total) {\n this.virtualTotalHasChanged = true;\n }\n\n this.virtualHasChanged = true;\n }\n },\n computed: {\n index: {\n get: function get() {\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n dataItemKey = _a.dataItemKey;\n var value = this.computedValue(); // TO DO: deprecate it!\n\n return dataItems.findIndex(function (i) {\n return areSame(i, value, dataItemKey);\n });\n }\n },\n spanClassNames: {\n get: function get() {\n var isValid = !this.hasMounted || !this.$props.validityStyles || this.validity().valid;\n return {\n 'k-textbox-container': true,\n 'k-state-focused': this.currentFocused,\n 'k-state-empty': !this.computedValue(),\n 'k-state-invalid': !isValid && isValid !== undefined,\n 'k-rtl': this.$props.dir === 'rtl'\n };\n }\n }\n },\n methods: {\n focus: function focus() {\n if (this.input) {\n this.input.focus();\n }\n },\n computedValue: function computedValue() {\n var value;\n\n if (this.valueDuringOnChange !== undefined) {\n value = this.valueDuringOnChange;\n } else if (this.$props.value !== undefined) {\n value = this.$props.value;\n } else if (this.$props.modelValue !== undefined) {\n value = this.$props.modelValue;\n } else if (this.currentValue !== undefined) {\n value = this.currentValue;\n } else if (this.$props.defaultValue !== undefined) {\n value = this.$props.defaultValue;\n }\n\n return value;\n },\n validity: function validity() {\n var customError = this.$props.validationMessage !== undefined;\n var isValid = !this.$props.required || this.computedValue() !== null && this.computedValue() !== '' && this.computedValue() !== undefined;\n var valid = this.$props.valid !== undefined ? this.$props.valid : isValid;\n return {\n customError: customError,\n valid: valid,\n valueMissing: this.computedValue() === null\n };\n },\n handleItemSelect: function handleItemSelect(index, state) {\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n virtual = _a.virtual,\n dataItemKey = _a.dataItemKey;\n var skip = virtual ? virtual.skip : 0;\n var item = dataItems[index - skip];\n var newSelected = !areSame(item, this.computedValue(), dataItemKey);\n this.triggerOnChange(item, state);\n\n if (this.currentText !== undefined) {\n // @ts-ignore\n state.data.currentText = undefined;\n }\n\n if (newSelected) {\n this.base.triggerPageChangeCornerItems(item, state);\n }\n },\n onNavigate: function onNavigate(state, keyCode) {\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n _c = _a.virtual,\n virtual = _c === void 0 ? {\n skip: 0\n } : _c;\n var text = this.$props.filter ? this.$props.filter : this.currentText;\n var focusedIndex = this.getFocusedIndex();\n var vs = this.base.vs;\n var value = this.computedValue();\n this.suggested = '';\n\n if (focusedIndex !== -1 && !isPresent(value)) {\n this.handleItemSelect(focusedIndex, state);\n } else if (text === '') {\n this.handleItemSelect(0, state);\n } else {\n var currentIndex = virtual.skip + focusedIndex;\n var newIndex = this.base.navigation.navigate({\n keyCode: keyCode,\n current: currentIndex,\n max: (vs.enabled ? vs.total : dataItems.length) - 1,\n min: 0\n });\n\n if (newIndex !== undefined) {\n this.handleItemSelect(newIndex, state);\n }\n }\n },\n toggleBtnClick: function toggleBtnClick(event) {\n var state = this.base.initState();\n state.event = event;\n this.base.togglePopup(state);\n this.applyState(state);\n },\n applyValueOnEnter: function applyValueOnEnter(value, state) {\n var _a;\n\n var _b = this.$props,\n _c = _b.dataItems,\n dataItems = _c === void 0 ? [] : _c,\n textField = _b.textField,\n allowCustom = _b.allowCustom;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var currentValueText = getItemValue(this.computedValue(), textField);\n var valueIndex = currentValueText === value ? this.index : getItemIndexByText(dataItems, value, textField);\n var itemSelected = valueIndex !== -1;\n var newSelected = undefined;\n this.suggested = '';\n\n if (itemSelected) {\n // typed text match item from list\n newSelected = dataItems[valueIndex];\n } else {\n if (allowCustom) {\n // any custom text not in list\n newSelected = textField !== undefined ? (_a = {}, _a[textField] = value, _a) : value;\n } else {\n return this.selectFocusedItem(value, state);\n }\n }\n\n this.triggerOnChange(newSelected, state);\n\n if (opened) {\n this.base.togglePopup(state);\n }\n\n if (this.$props.filter === undefined && this.currentText !== undefined) {\n // @ts-ignore\n state.data.currentText = undefined;\n }\n\n this.applyState(state);\n },\n applyValueOnRejectSuggestions: function applyValueOnRejectSuggestions(text, state) {\n var _a;\n\n var _b = this.$props,\n _c = _b.dataItems,\n dataItems = _c === void 0 ? [] : _c,\n textField = _b.textField,\n allowCustom = _b.allowCustom;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var valueItemText = getItemValue(this.computedValue(), textField);\n this.suggested = '';\n\n if (text === valueItemText || text === '' && !isPresent(valueItemText)) {\n if (opened) {\n this.base.togglePopup(state);\n }\n\n return this.applyState(state);\n }\n\n var valueIndex = getItemIndexByText(dataItems, text, textField, true);\n var itemSelected = valueIndex !== -1;\n var newSelected = null;\n\n if (itemSelected) {\n newSelected = dataItems[valueIndex];\n } else if (allowCustom) {\n newSelected = text ? textField ? (_a = {}, _a[textField] = text, _a) : text : null;\n }\n\n this.triggerOnChange(newSelected, state);\n\n if (this.currentText !== undefined) {\n // @ts-ignore\n state.data.currentText = undefined;\n this.base.filterChanged('', state);\n }\n\n if (opened) {\n this.base.togglePopup(state);\n }\n\n this.applyState(state);\n },\n selectFocusedItem: function selectFocusedItem(text, state) {\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n textField = _a.textField,\n _c = _a.virtual,\n virtual = _c === void 0 ? {\n skip: 0\n } : _c,\n _d = _a.focusedItemIndex,\n focusedItemIndex = _d === void 0 ? itemIndexStartsWith : _d;\n var skip = virtual.skip;\n var focusedIndex = text === '' && skip === 0 ? 0 : focusedItemIndex(dataItems, text, textField);\n\n if (focusedIndex !== -1) {\n this.handleItemSelect(focusedIndex + skip, state);\n } else {\n this.triggerOnChange(null, state);\n\n if (this.currentText !== undefined) {\n // @ts-ignore\n state.data.currentText = undefined;\n }\n }\n\n if (opened) {\n this.base.togglePopup(state);\n }\n\n return this.applyState(state);\n },\n handleItemClick: function handleItemClick(index, event) {\n this.base.handleItemClick(index, event);\n this.valueDuringOnChange = undefined;\n },\n handleFocus: function handleFocus(event) {\n this.$emit('focus', event);\n },\n handleBlur: function handleBlur(event) {\n if (this.currentFocused) {\n var state = this.base.initState();\n state.data.currentFocused = false;\n state.events.push({\n type: 'blur'\n });\n state.event = event;\n this.applyValueOnRejectSuggestions(event.currentTarget.value, state);\n }\n },\n onInputKeyDown: function onInputKeyDown(event) {\n var _this = this;\n\n var keyCode = event.keyCode;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var state = this.base.initState();\n state.event = event;\n\n if (!event.altKey && (keyCode === Keys.up || keyCode === Keys.down)) {\n event.preventDefault();\n this.onNavigate(state, keyCode);\n this.applyState(state);\n return;\n }\n\n var togglePopup = function togglePopup() {\n event.preventDefault();\n\n _this.base.togglePopup(state);\n\n _this.applyState(state);\n };\n\n if (opened) {\n if (event.altKey && keyCode === Keys.up) {\n togglePopup();\n } else if (keyCode === Keys.enter) {\n event.preventDefault();\n this.applyValueOnEnter(event.currentTarget.value, state);\n } else if (keyCode === Keys.esc) {\n this.applyValueOnRejectSuggestions(event.currentTarget.value, state);\n }\n } else if (event.altKey && keyCode === Keys.down) {\n togglePopup();\n }\n },\n inputOnChange: function inputOnChange(event) {\n var state = this.base.initState();\n state.event = event;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var input = event.currentTarget;\n var value = input.value;\n\n if (this.$props.suggest) {\n var selectionAtEnd = input.selectionEnd === value.length;\n var prevText = this.$props.filter !== undefined ? this.$props.filter : this.currentText;\n\n if (!isPresent(prevText)) {\n prevText = getItemValue(this.computedValue(), this.$props.textField) || '';\n }\n\n var deletedSuggestion = prevText && prevText === value;\n var deleting = prevText && prevText.length > value.length;\n\n if (deletedSuggestion || deleting || !selectionAtEnd) {\n this.suggested = '';\n } else {\n this.suggestValue(value);\n }\n }\n\n if (this.$props.filter === undefined) {\n // @ts-ignore\n state.data.currentText = value;\n }\n\n if (this.currentFocusedItem !== undefined) {\n // @ts-ignore\n state.data.focusedItem = undefined;\n }\n\n if (!opened) {\n this.base.togglePopup(state);\n }\n\n this.base.filterChanged(value, state);\n this.applyState(state);\n },\n clearButtonClick: function clearButtonClick(event) {\n var state = this.base.initState();\n state.event = event;\n event.stopPropagation();\n this.suggested = '';\n this.base.filterChanged('', state);\n\n if (this.$props.filter === undefined && this.currentText !== undefined) {\n // @ts-ignore\n state.data.currentText = undefined;\n }\n\n this.triggerOnChange(null, state);\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n\n if (opened) {\n this.base.togglePopup(state);\n }\n\n this.applyState(state);\n },\n getFocusedIndex: function getFocusedIndex() {\n var value = this.computedValue();\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n textField = _a.textField,\n dataItemKey = _a.dataItemKey,\n _c = _a.virtual,\n virtual = _c === void 0 ? {\n skip: 0\n } : _c,\n _d = _a.focusedItemIndex,\n focusedItemIndex = _d === void 0 ? itemIndexStartsWith : _d;\n var text = this.$props.filter ? this.$props.filter : this.currentText;\n\n if (isPresent(value) && text === undefined) {\n return dataItems.findIndex(function (i) {\n return areSame(i, value, dataItemKey);\n });\n } else if (text) {\n return focusedItemIndex(dataItems, text, textField);\n } else {\n return virtual.skip === 0 ? 0 : -1;\n }\n },\n suggestValue: function suggestValue(value) {\n var _a = this.$props,\n dataItems = _a.dataItems,\n textField = _a.textField;\n this.suggested = _suggestValue(value, dataItems, textField);\n },\n setValidity: function setValidity() {\n if (this.input && this.input.setCustomValidity) {\n this.input.setCustomValidity(this.validity().valid ? '' : this.$props.validationMessage || VALIDATION_MESSAGE);\n }\n },\n triggerOnChange: function triggerOnChange(item, state) {\n var value = this.computedValue();\n\n if (!isPresent(value) && !isPresent(item) || areSame(value, item, this.$props.dataItemKey)) {\n return;\n }\n\n if (this.$props.value === undefined) {\n this.currentValue = item;\n }\n\n this.valueDuringOnChange = item;\n state.events.push({\n type: 'change'\n });\n },\n applyState: function applyState(state) {\n this.base.applyState(state);\n this.valueDuringOnChange = undefined;\n }\n },\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var _a = this.$props,\n dir = _a.dir,\n disabled = _a.disabled,\n clearButton = _a.clearButton,\n label = _a.label,\n textField = _a.textField,\n className = _a.className,\n style = _a.style,\n loading = _a.loading,\n iconClassName = _a.iconClassName,\n virtual = _a.virtual;\n var focused = this.currentFocused;\n var isValid = !this.$props.validityStyles || this.validity().valid;\n var text = this.$props.filter !== undefined ? this.$props.filter : this.currentText;\n var selectedItemText = getItemValue(this.computedValue(), textField);\n var inputText = isPresent(text) ? text : selectedItemText;\n var renderClearButton = clearButton && (!!inputText || isPresent(this.computedValue()));\n var base = this.base;\n var vs = base.vs;\n var id = this.$props.id || this.inputId;\n var popupSettings = Object.assign({}, {\n animate: true,\n height: '200px'\n }, this.$props.popupSettings);\n vs.enabled = virtual !== undefined;\n\n if (virtual !== undefined) {\n vs.skip = virtual.skip;\n vs.total = virtual.total;\n vs.pageSize = virtual.pageSize;\n }\n\n var renderList = function renderList() {\n var _a = this.$props,\n dataItemKey = _a.dataItemKey,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b;\n var itemRender = templateRendering.call(this, this.$props.itemRender, getListeners.call(this));\n var listNoDataRender = templateRendering.call(this, this.$props.listNoDataRender, getListeners.call(this));\n\n if (!virtual) {\n virtual = {\n skip: 0\n };\n }\n\n var skip = virtual.skip;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var translate = \"translateY(\" + vs.translate + \"px)\";\n var focusedIndex = opened ? this.getFocusedIndex() : undefined;\n var value = isPresent(text) && text !== selectedItemText ? null : this.computedValue();\n return (// @ts-ignore\n h(List, {\n id: base.listBoxId,\n attrs: this.v3 ? undefined : {\n id: base.listBoxId,\n show: opened,\n dataItems: dataItems,\n focusedIndex: focusedIndex,\n value: value,\n textField: textField,\n valueField: dataItemKey,\n optionsGuid: base.guid,\n wrapperStyle: !vs.enabled ? {\n maxHeight: popupSettings.height\n } : {\n float: 'left',\n width: '100%'\n },\n wrapperCssClass: !vs.enabled ? 'k-list-scroller' : undefined,\n listStyle: vs.enabled ? {\n transform: translate\n } : undefined,\n skip: skip,\n itemRender: itemRender,\n noDataRender: listNoDataRender\n },\n show: opened,\n dataItems: dataItems,\n focusedIndex: focusedIndex,\n value: value,\n textField: textField,\n valueField: dataItemKey,\n optionsGuid: base.guid,\n ref: 'list',\n wrapperStyle: !vs.enabled ? {\n maxHeight: popupSettings.height\n } : {\n float: 'left',\n width: '100%'\n },\n wrapperCssClass: !vs.enabled ? 'k-list-scroller' : undefined,\n listStyle: vs.enabled ? {\n transform: translate\n } : undefined,\n key: \"listkey\",\n skip: skip,\n onListclick: this.handleItemClick,\n on: this.v3 ? undefined : {\n \"listclick\": this.handleItemClick\n },\n itemRender: itemRender,\n noDataRender: listNoDataRender\n })\n );\n }; // Common rendering\n\n\n var renderScrollWrapper = function renderScrollWrapper(children) {\n return vs.enabled ? h(\"div\", {\n onScroll: vs.scrollHandler,\n on: this.v3 ? undefined : {\n \"scroll\": vs.scrollHandler\n },\n ref: 'scroller',\n style: {\n height: popupSettings.height,\n overflowY: 'scroll'\n }\n }, [children]) : children;\n };\n\n var renderScrollElement = function renderScrollElement() {\n return vs.enabled && h(\"div\", {\n ref: 'scrollElement',\n key: 'scrollElementKey'\n });\n };\n\n var renderListContainer = function renderListContainer() {\n var _this2 = this;\n\n var headerTemplate = templateRendering.call(this, this.$props.header, getListeners.call(this));\n var footerTemplate = templateRendering.call(this, this.$props.footer, getListeners.call(this));\n var header = getTemplate.call(this, {\n h: h,\n template: headerTemplate\n });\n var footer = getTemplate.call(this, {\n h: h,\n template: footerTemplate\n });\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var popupWidth = popupSettings.width !== undefined ? popupSettings.width : base.popupWidth;\n return (// @ts-ignore function children\n h(ListContainer, {\n onMousedown: function onMousedown(e) {\n return e.preventDefault();\n },\n on: this.v3 ? undefined : {\n \"mousedown\": function onMousedown(e) {\n return e.preventDefault();\n }\n },\n width: popupWidth,\n attrs: this.v3 ? undefined : {\n width: popupWidth,\n popupSettings: {\n animate: popupSettings.animate,\n anchor: this.anchor,\n show: opened,\n className: classNames('k-list-container k-reset', popupSettings.className),\n appendTo: popupSettings.appendTo\n },\n dir: dir !== undefined ? dir : this.base.dirCalculated\n },\n popupSettings: {\n animate: popupSettings.animate,\n anchor: this.anchor,\n show: opened,\n className: classNames('k-list-container k-reset', popupSettings.className),\n appendTo: popupSettings.appendTo\n },\n dir: dir !== undefined ? dir : this.base.dirCalculated\n }, this.v3 ? function () {\n return [header, renderScrollWrapper.call(_this2, [renderList.call(_this2), renderScrollElement.call(_this2)]), footer];\n } : [header, renderScrollWrapper.call(_this2, [renderList.call(_this2), renderScrollElement.call(_this2)]), footer])\n );\n };\n\n var renderSearchBar = function renderSearchBar(searchText, searchId) {\n var _this = this;\n\n var _a = this.$props,\n placeholder = _a.placeholder,\n tabIndex = _a.tabIndex,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n dataItemKey = _a.dataItemKey;\n\n if (!virtual) {\n virtual = {\n skip: 0\n };\n }\n\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var value = this.computedValue();\n var selectedIndex = Math.max(0, dataItems.findIndex(function (i) {\n return areSame(i, value, dataItemKey);\n }));\n\n if (this.suggested && !areSame(this.valueOnDidUpdate, value, dataItemKey)) {\n this.suggested = '';\n }\n\n return (// @ts-ignore function children\n h(SearchBar, {\n id: searchId,\n attrs: this.v3 ? undefined : {\n id: searchId,\n placeholder: placeholder,\n tabIndex: tabIndex || undefined,\n accessKey: this.$props.accessKey,\n value: searchText + this.suggested,\n suggestedText: this.suggested,\n disabled: disabled,\n expanded: opened,\n owns: this.base.listBoxId,\n activedescendant: this.base.guid + '-' + (selectedIndex + virtual.skip),\n ariaLabelledBy: this.$props.ariaLabelledBy,\n ariaDescribedBy: this.$props.ariaDescribedBy\n },\n placeholder: placeholder,\n tabIndex: tabIndex || undefined,\n accessKey: this.$props.accessKey,\n value: searchText + this.suggested,\n suggestedText: this.suggested,\n ref: this.v3 ? function (el) {\n _this.inputRef = el;\n } : 'input',\n onKeydown: this.onInputKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.onInputKeyDown,\n \"change\": this.inputOnChange,\n \"focus\": this.base.handleFocus,\n \"blur\": this.handleBlur\n },\n onChange: this.inputOnChange,\n onFocus: this.base.handleFocus,\n onBlur: this.handleBlur,\n disabled: disabled,\n expanded: opened,\n owns: this.base.listBoxId,\n activedescendant: this.base.guid + '-' + (selectedIndex + virtual.skip),\n ariaLabelledBy: this.$props.ariaLabelledBy,\n ariaDescribedBy: this.$props.ariaDescribedBy\n })\n );\n };\n\n var combobox = h(\"span\", {\n \"class\": classNames('k-widget k-combobox', {\n 'k-combobox-clearable': clearButton,\n 'k-state-invalid': !isValid\n }, className),\n ref: this.v3 ? function (el) {\n _this.kendoAnchorRef = el;\n } : this.anchor,\n style: !label ? style : __assign(__assign({}, style), {\n width: undefined\n }),\n dir: dir,\n attrs: this.v3 ? undefined : {\n dir: dir\n }\n }, [h(\"span\", {\n ref: this.v3 ? function (el) {\n _this.baseWrapperRef = el;\n } : 'baseWrapper',\n \"class\": classNames('k-dropdown-wrap', {\n 'k-state-disabled': disabled,\n 'k-state-focused': focused && !disabled\n })\n }, [renderSearchBar.call(this, inputText || '', id), renderClearButton && // @ts-ignore function children\n h(ClearButton, {\n onClearclick: this.clearButtonClick,\n on: this.v3 ? undefined : {\n \"clearclick\": this.clearButtonClick\n },\n key: \"clearbutton\"\n }), h(\"span\", {\n \"class\": \"k-select\",\n onClick: this.toggleBtnClick,\n on: this.v3 ? undefined : {\n \"click\": this.toggleBtnClick,\n \"mousedown\": function mousedown(e) {\n return e.preventDefault();\n }\n },\n onMousedown: function mousedown(e) {\n return e.preventDefault();\n }\n }, [h(\"span\", {\n \"class\": classNames('k-icon', iconClassName, {\n 'k-i-arrow-s': !loading && !iconClassName,\n 'k-i-loading': loading && !iconClassName\n })\n })])]), renderListContainer.call(this)]);\n return label ? h(\"span\", {\n \"class\": this.spanClassNames,\n onFocusin: this.handleFocus,\n on: this.v3 ? undefined : {\n \"focusin\": this.handleFocus\n },\n dir: this.$props.dir,\n attrs: this.v3 ? undefined : {\n dir: this.$props.dir\n }\n }, [combobox, this.$props.label ? id ? h(\"label\", {\n \"for\": id,\n attrs: this.v3 ? undefined : {\n \"for\": id\n },\n \"class\": \"k-label\"\n }, [this.$props.label]) : h(\"span\", {\n \"class\": \"k-label\"\n }, [this.$props.label]) : null]) : combobox;\n }\n};\nvar ComboBoxVue3 = ComboBox;\nexport { ComboBox, ComboBoxVue3 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nimport { SearchBar } from './../common/SearchBar';\nimport { ListContainer } from './../common/ListContainer';\nimport { List } from './../common/List';\nimport DropDownBase from '../common/DropDownBase';\nimport { ClearButton } from '../common/ClearButton';\nimport { itemIndexStartsWith, getItemValue, areSame, getFocusedItem } from '../common/utils';\nimport { guid, Keys, classNames, templateRendering, getListeners, getTemplate } from '@progress/kendo-vue-common';\nvar VALIDATION_MESSAGE = 'Please enter a valid value!';\n/**\n * Represents the default `AutoComplete` component.\n */\n\nvar AutoComplete = {\n name: 'KendoAutoComplete',\n model: {\n event: 'changemodel'\n },\n props: {\n id: String,\n defaultValue: {\n type: [String],\n default: undefined\n },\n name: String,\n modelValue: {\n type: [String],\n default: undefined\n },\n value: {\n type: [String],\n default: undefined\n },\n label: {\n type: String\n },\n placeholder: String,\n required: {\n type: Boolean,\n default: false\n },\n valid: {\n type: Boolean,\n default: undefined\n },\n validationMessage: {\n type: String,\n default: undefined\n },\n validityStyles: {\n type: Boolean,\n default: true\n },\n opened: {\n type: Boolean,\n default: undefined\n },\n disabled: Boolean,\n dir: {\n type: String,\n default: undefined\n },\n tabIndex: {\n type: Number,\n default: 0\n },\n readonly: Boolean,\n accessKey: String,\n dataItems: Array,\n textField: String,\n className: String,\n loading: Boolean,\n popupSettings: {\n type: Object,\n default: function _default() {\n return {\n animate: true,\n height: '200px'\n };\n }\n },\n itemRender: [String, Function, Object],\n listNoDataRender: [String, Function, Object],\n focusedItemIndex: Function,\n header: [String, Function, Object],\n footer: [String, Function, Object],\n suggest: {\n type: [Boolean, String],\n default: false\n },\n ariaLabelledBy: String,\n ariaDescribedBy: String\n },\n data: function data() {\n return {\n hasMounted: false,\n currentText: '',\n currentValue: '',\n currentFocused: false,\n currentOpened: false,\n focusedItem: undefined,\n searchState: {\n word: '',\n last: ''\n },\n valueDuringOnChange: {},\n suggested: ''\n };\n },\n created: function created() {\n this.valueDuringOnChange = undefined;\n this.currentText = undefined;\n this.currentValue = undefined;\n this.currentFocused = undefined;\n this.currentOpened = undefined;\n this.base = new DropDownBase(this);\n this.anchor = guid();\n this.inputId = guid();\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var inputRef = ref(null);\n var kendoAnchorRef = ref(null);\n return {\n v3: v3,\n inputRef: inputRef,\n kendoAnchorRef: kendoAnchorRef\n };\n },\n mounted: function mounted() {\n this.hasMounted = true; // @ts-ignore\n\n this.input = this.v3 ? this.inputRef.input : this.$refs.input.input;\n this.base.wrapper = this.v3 ? this.kendoAnchorRef : this.$refs[this.anchor];\n this.element = this.v3 ? this.kendoAnchorRef : this.$refs[this.anchor];\n this.base.didMount();\n this.setValidity();\n },\n watch: {\n currentOpened: function currentOpened(_, oldValue) {\n this.prevCurrentOpened = oldValue;\n },\n opened: function opened(_, oldValue) {\n this.prevOpened = oldValue;\n },\n dataItems: function dataItems(_, oldValue) {\n this.prevData = oldValue;\n },\n focusedItem: function focusedItem(_, oldValue) {\n this.prevFocusedItem = oldValue;\n }\n },\n updated: function updated() {\n var _a = this.$props.dataItems,\n dataItems = _a === void 0 ? [] : _a;\n var focusedIndex = this.focusedIndex();\n var focusedItem = dataItems[focusedIndex];\n var dataChanged = this.prevData !== dataItems;\n var focusedItemChanged = focusedItem !== undefined && this.prevFocusedItem !== focusedItem;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var prevOpened = this.prevOpened !== undefined ? this.prevOpened : this.prevCurrentOpened;\n var opening = !prevOpened && opened;\n var list = this.$refs.list;\n\n if (list) {\n // @ts-ignore\n this.base.vs.list = list.list; // @ts-ignore\n\n this.base.list = list.list;\n }\n\n if (dataItems.length && (opened && (focusedItemChanged || dataChanged) || opening)) {\n this.base.scrollToItem(focusedIndex);\n }\n\n this.setValidity();\n },\n computed: {\n spanClassNames: {\n get: function get() {\n var isValid = !this.hasMounted || !this.$props.validityStyles || this.validity().valid;\n return {\n 'k-textbox-container': true,\n 'k-state-focused': this.currentFocused,\n 'k-state-empty': !this.computedValue(),\n 'k-state-invalid': !isValid && isValid !== undefined,\n 'k-rtl': this.$props.dir === 'rtl'\n };\n }\n }\n },\n methods: {\n focus: function focus() {\n if (this.input) {\n this.input.focus();\n }\n },\n computedValue: function computedValue() {\n var value;\n\n if (this.valueDuringOnChange !== undefined) {\n value = this.valueDuringOnChange;\n } else if (this.$props.value !== undefined) {\n value = this.$props.value;\n } else if (this.$props.modelValue !== undefined) {\n value = this.$props.modelValue;\n } else if (this.currentValue !== undefined) {\n value = this.currentValue;\n } else if (this.$props.defaultValue !== undefined) {\n value = this.$props.defaultValue;\n }\n\n return value;\n },\n validity: function validity() {\n var customError = this.$props.validationMessage !== undefined;\n var isValid = !this.$props.required || this.computedValue() !== null && this.computedValue() !== '' && this.computedValue() !== undefined;\n var valid = this.$props.valid !== undefined ? this.$props.valid : isValid;\n return {\n customError: customError,\n valid: valid,\n valueMissing: this.computedValue() === null\n };\n },\n handleItemSelect: function handleItemSelect(index, state) {\n var _a = this.$props.dataItems,\n dataItems = _a === void 0 ? [] : _a;\n var newText = getItemValue(dataItems[index], this.$props.textField);\n this.triggerOnChange(newText, state);\n },\n itemFocus: function itemFocus(index, state) {\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n textField = _a.textField;\n var focusedItem = dataItems[index];\n\n if (!areSame(this.$data.focusedItem, focusedItem, textField)) {\n state.data.focusedItem = focusedItem;\n }\n },\n togglePopup: function togglePopup(state) {\n this.base.togglePopup(state);\n },\n onNavigate: function onNavigate(state, keyCode) {\n var _this = this;\n\n var typedText = this.computedValue();\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n textField = _a.textField,\n focusedItemIndex = _a.focusedItemIndex;\n var focusedIndex = this.$data.focusedItem !== undefined ? dataItems.findIndex(function (i) {\n return areSame(i, _this.$data.focusedItem, textField);\n }) : focusedItemIndex ? focusedItemIndex(dataItems, typedText, textField) : dataItems.indexOf(getFocusedItem(dataItems, typedText, textField));\n var newFocused = this.base.navigation.navigate({\n keyCode: keyCode,\n current: focusedIndex,\n max: dataItems.length - 1,\n min: 0\n });\n\n if (newFocused !== undefined) {\n this.itemFocus(newFocused, state);\n }\n\n this.applyState(state);\n },\n\n /**\n * @hidden\n */\n applyInputValue: function applyInputValue(value, state, eventKey) {\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n textField = _a.textField;\n this.suggested = '';\n\n if (opened && eventKey === Keys.enter) {\n var newValue = getItemValue(dataItems[this.focusedIndex(value)], textField);\n this.triggerOnChange(newValue, state);\n }\n\n if (opened) {\n this.togglePopup(state);\n }\n\n this.applyState(state);\n },\n setValidity: function setValidity() {\n if (this.input && this.input.setCustomValidity) {\n this.input.setCustomValidity(this.validity().valid ? '' : this.$props.validationMessage || VALIDATION_MESSAGE);\n }\n },\n handleItemClick: function handleItemClick(index, event) {\n this.base.handleItemClick(index, event);\n this.valueDuringOnChange = undefined;\n },\n onChangeHandler: function onChangeHandler(event) {\n var base = this.base;\n var state = base.initState();\n var input = event.target;\n var value = input.value;\n var selectionAtEnd = input.selectionEnd === value.length;\n state.event = event;\n var prevSuggestion = this.suggested;\n var prevValue = this.computedValue();\n var prevUserInput = prevValue && prevSuggestion && prevValue.substring(0, prevValue.length - prevSuggestion.length);\n var deletedSuggestion = prevUserInput && prevUserInput === value;\n var deleting = prevUserInput && prevUserInput.length > value.length;\n var suggest = this.$props.suggest;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n\n if (suggest !== undefined && suggest !== false) {\n if (deletedSuggestion || deleting || !selectionAtEnd) {\n this.suggested = '';\n } else {\n this.suggestValue(value);\n }\n\n var newValue = value + this.suggested;\n var suggestion = {\n userInput: value,\n value: this.suggested\n };\n this.triggerOnChange(newValue, state, {\n suggestion: suggestion\n });\n } else {\n this.suggested = '';\n this.triggerOnChange(value, state);\n }\n\n if (!opened && value || opened && !value) {\n this.togglePopup(state);\n }\n\n state.data.focusedItem = undefined;\n this.applyState(state);\n },\n clearButtonClick: function clearButtonClick(event) {\n var base = this.base;\n var state = base.initState();\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n state.event = event;\n var newValue = '';\n this.suggested = '';\n this.triggerOnChange(newValue, state);\n\n if (this.$data.focusedItem !== undefined) {\n state.data.focusedItem = undefined;\n }\n\n if (opened) {\n this.togglePopup(state);\n }\n\n this.applyState(state);\n },\n onInputKeyDown: function onInputKeyDown(event) {\n var keyCode = event.keyCode;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var state = this.base.initState();\n state.event = event;\n\n var preventDefault = function preventDefault() {\n if (opened) {\n event.preventDefault();\n }\n };\n\n if (keyCode === Keys.enter || keyCode === Keys.esc) {\n preventDefault();\n this.applyInputValue(event.currentTarget.value, state, event.keyCode);\n } else if (keyCode === Keys.up || keyCode === Keys.down) {\n preventDefault();\n this.onNavigate(state, keyCode);\n }\n },\n handleBlur: function handleBlur(event) {\n if (this.currentFocused) {\n var state = this.base.initState();\n state.data.focused = false;\n state.events.push({\n type: 'blur'\n });\n state.event = event;\n this.applyInputValue(event.currentTarget.value, state);\n this.currentFocused = false;\n }\n },\n triggerOnChange: function triggerOnChange(newValue, state, eventArgs) {\n if (this.computedValue() === newValue && !eventArgs) {\n return;\n } // @ts-ignore\n\n\n state.data.currentValue = newValue;\n this.valueDuringOnChange = newValue;\n state.events.push(__assign({\n type: 'change'\n }, eventArgs || {}));\n },\n applyState: function applyState(state) {\n this.base.applyState(state);\n this.valueDuringOnChange = undefined;\n },\n suggestValue: function suggestValue(value) {\n this.suggested = '';\n\n if (value) {\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n textField = _a.textField;\n var suggestedItem = dataItems[itemIndexStartsWith(dataItems, value, textField)];\n\n if (suggestedItem) {\n var suggestedText = getItemValue(suggestedItem, textField);\n\n if (value.toLowerCase() !== suggestedText.toLowerCase()) {\n this.suggested = suggestedText.substring(value.length);\n }\n }\n }\n },\n focusedIndex: function focusedIndex(value) {\n var _this = this;\n\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n textField = _a.textField,\n focusedItemIndex = _a.focusedItemIndex;\n var inputValue = value !== undefined ? value : this.computedValue();\n return this.$data.focusedItem !== undefined ? dataItems.findIndex(function (i) {\n return areSame(i, _this.$data.focusedItem, textField);\n }) : focusedItemIndex ? focusedItemIndex(dataItems, inputValue, textField) : Math.max(0, dataItems.indexOf(getFocusedItem(dataItems, inputValue, textField)));\n }\n },\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var _a = this.$props,\n dir = _a.dir,\n disabled = _a.disabled,\n label = _a.label,\n className = _a.className,\n style = _a.style,\n loading = _a.loading,\n suggest = _a.suggest;\n var isValid = !this.$props.validityStyles || this.validity().valid;\n var focused = this.currentFocused;\n var base = this.base;\n var value = this.computedValue();\n var clearButton = !loading && !!value;\n var id = this.$props.id || this.inputId;\n var popupSettings = Object.assign({}, {\n animate: true,\n height: '200px'\n }, this.$props.popupSettings);\n\n if (typeof suggest === 'string') {\n this.suggested = suggest;\n }\n\n var renderSearchBar = function renderSearchBar(searchValue, searchId) {\n var _this = this;\n\n var _a = this.$props,\n placeholder = _a.placeholder,\n tabIndex = _a.tabIndex,\n readonly = _a.readonly;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n return (// @ts-ignore function children\n h(SearchBar, {\n id: searchId,\n attrs: this.v3 ? undefined : {\n id: searchId,\n placeholder: placeholder,\n tabIndex: tabIndex || undefined,\n accessKey: this.$props.accessKey,\n value: searchValue,\n suggestedText: this.suggested,\n focused: focused,\n name: this.$props.name,\n disabled: disabled,\n readOnly: readonly,\n expanded: opened,\n owns: base.listBoxId,\n activedescendant: 'option-' + base.guid + '-' + this.focusedIndex(),\n ariaLabelledBy: this.$props.ariaLabelledBy,\n ariaDescribedBy: this.$props.ariaDescribedBy\n },\n placeholder: placeholder,\n tabIndex: tabIndex || undefined,\n accessKey: this.$props.accessKey,\n value: searchValue,\n suggestedText: this.suggested,\n focused: focused,\n name: this.$props.name,\n ref: this.v3 ? function (el) {\n _this.inputRef = el;\n } : 'input',\n onKeydown: this.onInputKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.onInputKeyDown,\n \"change\": this.onChangeHandler,\n \"focus\": base.handleFocus,\n \"blur\": this.handleBlur,\n \"clearbuttonclick\": this.clearButtonClick\n },\n onChange: this.onChangeHandler,\n onFocus: base.handleFocus,\n onBlur: this.handleBlur,\n disabled: disabled,\n readOnly: readonly,\n expanded: opened,\n owns: base.listBoxId,\n activedescendant: 'option-' + base.guid + '-' + this.focusedIndex(),\n onClearbuttonclick: this.clearButtonClick,\n ariaLabelledBy: this.$props.ariaLabelledBy,\n ariaDescribedBy: this.$props.ariaDescribedBy\n })\n );\n };\n\n var renderList = function renderList() {\n var _a = this.$props,\n textField = _a.textField,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b;\n var itemRender = templateRendering.call(this, this.$props.itemRender, getListeners.call(this));\n var listNoDataRender = templateRendering.call(this, this.$props.listNoDataRender, getListeners.call(this));\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n return (// @ts-ignore\n h(List, {\n id: base.listBoxId,\n attrs: this.v3 ? undefined : {\n id: base.listBoxId,\n show: opened,\n dataItems: dataItems.slice(),\n focusedIndex: this.focusedIndex(),\n value: value,\n textField: textField,\n valueField: textField,\n highlightSelected: false,\n optionsGuid: base.guid,\n wrapperStyle: {\n maxHeight: popupSettings.height\n },\n wrapperCssClass: \"k-list-scroller\",\n itemRender: itemRender,\n noDataRender: listNoDataRender\n },\n show: opened,\n dataItems: dataItems.slice(),\n focusedIndex: this.focusedIndex(),\n value: value,\n textField: textField,\n valueField: textField,\n highlightSelected: false,\n optionsGuid: base.guid,\n ref: 'list',\n wrapperStyle: {\n maxHeight: popupSettings.height\n },\n wrapperCssClass: \"k-list-scroller\",\n onListclick: this.handleItemClick,\n on: this.v3 ? undefined : {\n \"listclick\": this.handleItemClick\n },\n itemRender: itemRender,\n noDataRender: listNoDataRender\n })\n );\n };\n\n var renderListContainer = function renderListContainer() {\n var _this2 = this;\n\n var headerTemplate = templateRendering.call(this, this.$props.header, getListeners.call(this));\n var footerTemplate = templateRendering.call(this, this.$props.footer, getListeners.call(this));\n var header = getTemplate.call(this, {\n h: h,\n template: headerTemplate\n });\n var footer = getTemplate.call(this, {\n h: h,\n template: footerTemplate\n });\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var popupWidth = popupSettings.width !== undefined ? popupSettings.width : base.popupWidth;\n return (// @ts-ignore function children\n h(ListContainer, {\n onMousedown: function onMousedown(e) {\n return e.preventDefault();\n },\n on: this.v3 ? undefined : {\n \"mousedown\": function onMousedown(e) {\n return e.preventDefault();\n }\n },\n width: popupWidth,\n attrs: this.v3 ? undefined : {\n width: popupWidth,\n popupSettings: {\n animate: popupSettings.animate,\n anchor: this.anchor,\n show: opened,\n className: classNames('k-list-container k-reset', popupSettings.className),\n appendTo: popupSettings.appendTo\n },\n dir: dir !== undefined ? dir : this.base.dirCalculated\n },\n ref: 'container',\n popupSettings: {\n animate: popupSettings.animate,\n anchor: this.anchor,\n show: opened,\n className: classNames('k-list-container k-reset', popupSettings.className),\n appendTo: popupSettings.appendTo\n },\n dir: dir !== undefined ? dir : this.base.dirCalculated\n }, this.v3 ? function () {\n return [header, renderList.call(_this2), footer];\n } : [header, renderList.call(_this2), footer])\n );\n };\n\n var renderClearButton = function renderClearButton(cbutton) {\n if (cbutton) {\n // @ts-ignore function children\n return h(ClearButton, {\n onClearclick: this.clearButtonClick,\n on: this.v3 ? undefined : {\n \"clearclick\": this.clearButtonClick\n },\n key: \"clearbutton\"\n });\n }\n\n return h(\"span\");\n };\n\n var renderLoading = function renderLoading(cloading) {\n if (cloading) {\n return h(\"span\", {\n \"class\": \"k-icon k-i-loading\"\n });\n }\n\n return h(\"span\");\n };\n\n var autoComplete = h(\"span\", {\n \"class\": classNames('k-widget k-autocomplete', className, {\n 'k-state-disabled': disabled,\n 'k-state-focused': focused && !disabled,\n 'k-state-invalid': !isValid\n }),\n ref: this.v3 ? function (el) {\n _this.kendoAnchorRef = el;\n } : this.anchor,\n style: !label ? style : __assign(__assign({}, style), {\n width: undefined\n }),\n dir: dir,\n attrs: this.v3 ? undefined : {\n dir: dir\n }\n }, [renderSearchBar.call(this, value || '', id), renderClearButton.call(this, clearButton), renderLoading.call(this, loading), renderListContainer.call(this)]);\n return label ? h(\"span\", {\n \"class\": this.spanClassNames,\n dir: this.$props.dir,\n attrs: this.v3 ? undefined : {\n dir: this.$props.dir\n }\n }, [autoComplete, this.$props.label ? id ? h(\"label\", {\n \"for\": id,\n attrs: this.v3 ? undefined : {\n \"for\": id\n },\n \"class\": \"k-label\"\n }, [this.$props.label]) : h(\"span\", {\n \"class\": \"k-label\"\n }, [this.$props.label]) : null]) : autoComplete;\n }\n};\nvar AutoCompleteVue3 = AutoComplete;\nexport { AutoComplete, AutoCompleteVue3 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport { getTemplate } from '@progress/kendo-vue-common';\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nvar tagClassName = 'k-button';\nvar focusedTagClassName = tagClassName + ' k-state-focused';\n\nvar preventDefault = function preventDefault(event) {\n return event.preventDefault();\n};\n\nvar stopPropagation = function stopPropagation(event) {\n return event.stopPropagation();\n};\n/**\n * Represents the default `TagList` component.\n */\n\n\nvar TagList = {\n name: 'TagList',\n props: {\n dataItems: Array,\n guid: String,\n focused: Object,\n tagRender: [String, Function, Object]\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n methods: {\n onTagDelete: function onTagDelete(tagData, event) {\n this.$emit('tagdelete', tagData, event);\n }\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n dataItems = _a.dataItems,\n guid = _a.guid;\n return h(\"ul\", {\n \"class\": \"k-reset\",\n role: \"listbox\",\n attrs: this.v3 ? undefined : {\n role: \"listbox\",\n id: 'tagslist-' + guid\n },\n id: 'tagslist-' + guid\n }, [dataItems.map(function (tagData, index) {\n var _this = this;\n\n var defaultRendering = h(\"li\", {\n \"class\": tagData === this.$props.focused ? focusedTagClassName : tagClassName,\n key: tagData.text + index,\n id: \"tag-\" + guid + \"-\" + tagData.text.replace(/\\s+/g, '-'),\n attrs: this.v3 ? undefined : {\n id: \"tag-\" + guid + \"-\" + tagData.text.replace(/\\s+/g, '-'),\n \"aria-selected\": true,\n role: \"option\",\n \"aria-setsize\": dataItems.length\n },\n onMousedown: preventDefault,\n on: this.v3 ? undefined : {\n \"mousedown\": preventDefault,\n \"click\": stopPropagation\n },\n onClick: stopPropagation,\n \"aria-selected\": true,\n role: \"option\",\n \"aria-setsize\": dataItems.length\n }, [h(\"span\", [tagData.text]), h(\"span\", {\n \"aria-label\": \"delete\",\n attrs: this.v3 ? undefined : {\n \"aria-label\": \"delete\"\n },\n \"class\": \"k-select\",\n onClick: function onClick(e) {\n return _this.onTagDelete(tagData.data, e);\n },\n on: this.v3 ? undefined : {\n \"click\": function onClick(e) {\n return _this.onTagDelete(tagData.data, e);\n }\n }\n }, [h(\"span\", {\n \"class\": \"k-icon k-i-close\"\n })])]);\n return getTemplate.call(this, {\n h: h,\n template: this.$props.tagRender,\n defaultRendering: defaultRendering,\n additionalProps: __assign(__assign({}, this.$props), {\n tagData: tagData,\n index: index\n }),\n additionalListeners: {\n tagdelete: this.onTagDelete\n }\n });\n }, this)]);\n }\n};\nexport { TagList };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nimport { classNames, Keys, guid, templateRendering, getListeners, getTemplate } from '@progress/kendo-vue-common';\nimport { ListContainer } from '../common/ListContainer';\nimport { List } from '../common/List';\nimport { TagList } from './TagList';\nimport { SearchBar } from '../common/SearchBar';\nimport DropDownBase from '../common/DropDownBase';\nimport { ClearButton } from '../common/ClearButton';\nimport { ActiveDescendant } from './../common/settings';\nimport { itemIndexStartsWith, getItemValue, areSame, matchDataCollections, removeDataItems, isPresent, preventDefaultNonInputs } from '../common/utils';\nvar VALIDATION_MESSAGE = 'Please enter a valid value!';\n\nvar preventDefault = function preventDefault(event) {\n return event.preventDefault();\n};\n\nvar matchTags = function matchTags(tag1, tag2, key) {\n if (!!tag1 !== !!tag2 || tag1.text !== tag2.text) {\n return false;\n }\n\n return tag1 === tag2 || matchDataCollections(tag1.data, tag2.data, key);\n};\n\nvar isCustom = function isCustom(type) {\n return type === FocusedItemType.CustomItem;\n};\n\nvar FocusedItemType;\n\n(function (FocusedItemType) {\n FocusedItemType[FocusedItemType[\"None\"] = 0] = \"None\";\n FocusedItemType[FocusedItemType[\"ListItem\"] = 1] = \"ListItem\";\n FocusedItemType[FocusedItemType[\"CustomItem\"] = 2] = \"CustomItem\";\n})(FocusedItemType || (FocusedItemType = {}));\n/**\n * Represents the default `MultiSelect` component.\n */\n\n\nvar MultiSelect = {\n name: 'KendoMultiSelect',\n model: {\n event: 'changemodel'\n },\n props: {\n autoClose: {\n type: Boolean,\n default: true\n },\n allowCustom: Boolean,\n modelValue: Array,\n opened: {\n type: Boolean,\n default: undefined\n },\n disabled: Boolean,\n dir: String,\n tabIndex: {\n type: Number,\n default: 0\n },\n accessKey: String,\n dataItems: Array,\n textField: String,\n label: String,\n loading: Boolean,\n name: String,\n value: Array,\n defaultValue: Array,\n dataItemKey: String,\n placeholder: String,\n tags: Array,\n required: {\n type: Boolean,\n default: false\n },\n valid: {\n type: Boolean,\n default: undefined\n },\n validate: {\n type: Boolean\n },\n validationMessage: {\n type: String,\n default: undefined\n },\n validityStyles: {\n type: Boolean,\n default: true\n },\n tagRender: [String, Function, Object],\n id: String,\n popupSettings: {\n type: Object,\n default: function _default() {\n return {\n animate: true,\n height: '200px'\n };\n }\n },\n itemRender: [String, Function, Object],\n listNoDataRender: [String, Function, Object],\n focusedItemIndex: Function,\n virtual: {\n type: Object,\n default: undefined\n },\n header: [String, Function, Object],\n footer: [String, Function, Object],\n filterable: Boolean,\n filter: {\n type: String,\n default: undefined\n },\n ariaLabelledBy: String,\n ariaDescribedBy: String\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var inputRef = ref(null);\n var kendoAnchorRef = ref(null);\n return {\n v3: v3,\n inputRef: inputRef,\n kendoAnchorRef: kendoAnchorRef\n };\n },\n computed: {\n spanClassNames: {\n get: function get() {\n var isValid = !this.hasMounted || !this.$props.validityStyles || this.validity().valid;\n var editorValue = this.currentText || getItemValue(this.computedValue()[0], this.$props.textField);\n return {\n 'k-textbox-container': true,\n 'k-state-focused': this.currentFocused,\n 'k-state-empty': !(editorValue && editorValue !== 0),\n 'k-state-invalid': !isValid && isValid !== undefined,\n 'k-rtl': this.$props.dir === 'rtl'\n };\n }\n }\n },\n created: function created() {\n this.valuesItemsDuringOnChange = null;\n this._tags = [];\n this._skipFocusEvent = false;\n this.scrollToFocused = false;\n this.base = new DropDownBase(this);\n this.anchor = guid();\n this.inputId = guid();\n },\n data: function data() {\n return {\n hasMounted: false,\n currentText: '',\n currentValue: '',\n currentFocused: false,\n currentOpened: false,\n currentFocusedIndex: undefined,\n currentFocusedTag: undefined,\n searchState: {\n word: '',\n last: ''\n },\n suggested: '',\n activedescendant: ActiveDescendant.PopupList\n };\n },\n watch: {\n currentOpened: function currentOpened(_, oldValue) {\n this.prevCurrentOpened = oldValue;\n },\n opened: function opened(_, oldValue) {\n this.prevOpened = oldValue;\n },\n virtual: function virtual(_newValue, _oldValue) {\n if (_newValue.total !== _oldValue.total) {\n this.virtualTotalHasChanged = true;\n }\n }\n },\n updated: function updated() {\n var virtual = this.$props.virtual;\n var skip = virtual ? virtual.skip : 0;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var prevOpened = this.prevOpened !== undefined ? this.prevOpened : this.prevCurrentOpened;\n var opening = !prevOpened && opened;\n var closing = prevOpened && !opened;\n var popupSettings = Object.assign({}, {\n animate: true,\n height: '200px'\n }, this.$props.popupSettings);\n var list = this.$refs.list;\n var scrollElement = this.$refs.scrollElement;\n var scroller = this.$refs.scroller;\n\n if (list) {\n // @ts-ignore\n this.base.vs.list = list.list; // @ts-ignore\n\n this.base.list = list.list;\n }\n\n if (scrollElement) {\n this.base.vs.scrollElement = scrollElement;\n }\n\n if (scroller) {\n this.base.vs.scrollerRef(scroller);\n }\n\n if (!popupSettings.animate && closing) {\n this.onPopupClosed();\n }\n\n if (virtual && this.virtualTotalHasChanged) {\n this.base.vs.calcScrollElementHeight();\n this.base.vs.reset();\n this.virtualTotalHasChanged = false;\n } else {\n var _a = this.getFocusedState(),\n focusedItem = _a.focusedItem,\n focusedIndex = _a.focusedIndex;\n\n if (opening && virtual) {\n this.base.scrollToVirtualItem(virtual, focusedIndex - skip);\n this.prevCurrentOpened = true;\n } else if (opening && !virtual) {\n this.base.scrollToItem(focusedIndex);\n this.prevCurrentOpened = true;\n } else if (opened && prevOpened && focusedItem && this.scrollToFocused) {\n this.base.scrollToItem(focusedIndex - skip);\n }\n }\n\n this.scrollToFocused = false;\n this.searchBarRef();\n this.setValidity();\n },\n mounted: function mounted() {\n this.hasMounted = true; // @ts-ignore\n\n this.input = this.v3 ? this.inputRef.input : this.$refs.input.input;\n this.base.wrapper = this.v3 ? this.baseWrapperRef : this.$refs.baseWrapper;\n this.element = this.v3 ? this.kendoAnchorRef : this.$refs[this.anchor];\n this.base.didMount();\n this.searchBarRef();\n this.setValidity();\n },\n methods: {\n computedValue: function computedValue() {\n var result = [];\n\n if (this.valuesItemsDuringOnChange) {\n result.push.apply(result, this.valuesItemsDuringOnChange);\n } else if (this.$props.value) {\n result.push.apply(result, this.$props.value);\n } else if (this.$props.modelValue !== undefined) {\n result.push.apply(result, this.$props.modelValue);\n } else if (this.currentValue) {\n result.push.apply(result, this.currentValue);\n } else if (this.$props.defaultValue) {\n result.push.apply(result, this.$props.defaultValue);\n }\n\n return result;\n },\n validity: function validity() {\n var customError = this.$props.validationMessage !== undefined;\n var value = this.computedValue();\n var isValid = !this.$props.required || value !== null && value.length > 0 && value !== undefined;\n var valid = this.$props.valid !== undefined ? this.$props.valid : isValid;\n return {\n customError: customError,\n valid: valid,\n valueMissing: value === null\n };\n },\n handleItemSelect: function handleItemSelect(index, state) {\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n dataItemKey = _a.dataItemKey,\n virtual = _a.virtual;\n var value = this.computedValue();\n var skip = virtual ? virtual.skip : 0;\n var dataItem = dataItems[index - skip];\n var indexInValue = value.findIndex(function (i) {\n return areSame(i, dataItem, dataItemKey);\n });\n var newItems = [];\n\n if (indexInValue !== -1) {\n // item is already selected\n newItems = value;\n newItems.splice(indexInValue, 1);\n } else {\n newItems = __spreadArrays(value, [dataItem]);\n }\n\n var text = this.$props.filter !== undefined ? this.$props.filter : this.currentText;\n\n if (text) {\n if (this.currentText) {\n state.data.currentText = '';\n }\n\n this.base.filterChanged('', state);\n }\n\n if (this.currentFocusedIndex !== undefined) {\n state.data.currentFocusedIndex = undefined;\n }\n\n this.triggerOnChange(newItems, state);\n this.base.triggerPageChangeCornerItems(dataItem, state);\n },\n onTagDelete: function onTagDelete(itemsToRemove, event) {\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var state = this.base.initState();\n state.event = event;\n\n if (opened) {\n this.base.togglePopup(state);\n }\n\n if (!this.currentFocused) {\n state.data.currentFocused = true;\n }\n\n var selected = this.computedValue();\n removeDataItems(selected, itemsToRemove, this.$props.dataItemKey);\n this.triggerOnChange(selected, state);\n this.applyState(state);\n },\n onNavigate: function onNavigate(state, keyCode) {\n var _a = this.$props,\n allowCustom = _a.allowCustom,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var text = this.$props.filter !== undefined ? this.$props.filter : this.currentText;\n\n var _c = this.getFocusedState(),\n focusedType = _c.focusedType,\n focusedIndex = _c.focusedIndex;\n\n var customItem = allowCustom && text;\n var customItemFocused = isCustom(focusedType);\n var base = this.base;\n var vs = base.vs;\n\n if (opened && keyCode === Keys.up && customItemFocused) {\n if (this.currentFocusedIndex !== undefined) {\n state.data.currentFocusedIndex = undefined;\n }\n } else {\n var newFocused = base.navigation.navigate({\n keyCode: keyCode,\n current: focusedIndex,\n max: (vs.enabled ? vs.total : dataItems.length) - 1,\n min: customItem ? -1 : 0\n });\n\n if (newFocused !== undefined) {\n this.itemFocus(newFocused, state);\n this.scrollToFocused = true;\n }\n }\n\n this.applyState(state);\n },\n itemFocus: function itemFocus(index, state) {\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n allowCustom = _a.allowCustom,\n virtual = _a.virtual;\n var skip = virtual ? virtual.skip : 0;\n var text = this.$props.filter !== undefined ? this.$props.filter : this.currentText;\n var focusedIndex = this.getFocusedState().focusedIndex;\n var customItem = allowCustom && text;\n var nextFocusedItem = dataItems[index - skip];\n\n if (nextFocusedItem && focusedIndex !== index) {\n if (this.currentFocusedIndex !== index) {\n state.data.currentFocusedIndex = index;\n state.data.activedescendant = ActiveDescendant.PopupList;\n }\n } else if (customItem && index === -1) {\n if (this.currentFocusedIndex !== undefined) {\n state.data.currentFocusedIndex = undefined;\n }\n }\n\n this.base.triggerPageChangeCornerItems(nextFocusedItem, state);\n },\n searchBarRef: function searchBarRef() {\n var _this = this;\n\n if (this.input && this.currentFocused) {\n setTimeout(function () {\n return _this.input.focus();\n }, 0);\n }\n },\n onChangeHandler: function onChangeHandler(event) {\n var state = this.base.initState();\n var value = event.currentTarget.value;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n state.event = event;\n\n if (this.$props.filter === undefined) {\n state.data.currentText = value;\n }\n\n state.data.currentFocusedIndex = undefined;\n\n if (!opened) {\n this.base.togglePopup(state);\n }\n\n this.base.filterChanged(value, state);\n this.applyState(state);\n },\n clearButtonClick: function clearButtonClick(event) {\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var state = this.base.initState();\n state.event = event;\n event.stopPropagation();\n\n if (this.computedValue().length > 0) {\n this.triggerOnChange([], state);\n }\n\n if (this.currentFocusedIndex !== undefined) {\n state.data.currentFocusedIndex = undefined;\n }\n\n if (opened) {\n this.base.togglePopup(state);\n }\n\n var text = this.$props.filter !== undefined ? this.$props.filter : this.currentText;\n\n if (isPresent(text) && text !== '') {\n this.base.filterChanged('', state);\n }\n\n if (this.currentText) {\n state.data.currentText = '';\n }\n\n this.applyState(state);\n },\n onInputKeyDown: function onInputKeyDown(event) {\n var _this = this;\n\n var keyCode = event.keyCode;\n var text = this.$props.filter !== undefined ? this.$props.filter : this.currentText;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var focusedItem = this.getFocusedState().focusedItem;\n var state = this.base.initState();\n state.event = event;\n\n if (!text && this.computedValue().length > 0 && (keyCode === Keys.left || keyCode === Keys.right || keyCode === Keys.home || keyCode === Keys.end || keyCode === Keys.delete || keyCode === Keys.backspace)) {\n return this.onTagsNavigate(event, state);\n }\n\n var togglePopup = function togglePopup() {\n event.preventDefault();\n\n _this.base.togglePopup(state);\n\n _this.applyState(state);\n };\n\n if (opened) {\n if (event.altKey && keyCode === Keys.up) {\n togglePopup();\n } else if (keyCode === Keys.up || keyCode === Keys.down) {\n event.preventDefault();\n this.onNavigate(state, keyCode);\n } else if (keyCode === Keys.enter) {\n event.preventDefault();\n\n if (this.$props.allowCustom && text && focusedItem === null) {\n this.customItemSelect(event);\n } else {\n this.selectFocusedItem(event);\n }\n } else if (keyCode === Keys.esc) {\n togglePopup();\n }\n } else if (event.altKey && keyCode === Keys.down) {\n togglePopup();\n }\n },\n onTagsNavigate: function onTagsNavigate(event, state) {\n var keyCode = event.keyCode;\n var focusedTag = this.currentFocusedTag;\n var tags = this._tags;\n var itemsKey = this.$props.dataItemKey;\n var focusedIndex = focusedTag ? tags.findIndex(function (t) {\n return matchTags(t, focusedTag, itemsKey);\n }) : -1;\n var newFocusedTag = undefined;\n var hasFocused = focusedIndex !== -1;\n\n if (keyCode === Keys.left) {\n if (hasFocused) {\n focusedIndex = Math.max(0, focusedIndex - 1);\n } else {\n focusedIndex = tags.length - 1;\n }\n\n newFocusedTag = tags[focusedIndex];\n } else if (keyCode === Keys.right) {\n if (focusedIndex === tags.length - 1) {\n newFocusedTag = undefined;\n } else if (hasFocused) {\n focusedIndex = Math.min(tags.length - 1, focusedIndex + 1);\n newFocusedTag = tags[focusedIndex];\n }\n } else if (keyCode === Keys.home) {\n newFocusedTag = tags[0];\n } else if (keyCode === Keys.end) {\n newFocusedTag = tags[tags.length - 1];\n } else if (keyCode === Keys.delete) {\n if (hasFocused) {\n var items = this.computedValue();\n removeDataItems(items, tags[focusedIndex].data, itemsKey);\n this.triggerOnChange(items, state);\n }\n } else if (keyCode === Keys.backspace) {\n var items = this.computedValue();\n\n if (hasFocused) {\n removeDataItems(items, tags[focusedIndex].data, itemsKey);\n this.triggerOnChange(items, state);\n } else if (!hasFocused && tags.length) {\n var removed = tags.pop();\n removeDataItems(items, removed.data, itemsKey);\n this.triggerOnChange(items, state);\n }\n }\n\n if (newFocusedTag !== focusedTag) {\n state.data.currentFocusedTag = newFocusedTag;\n state.data.activedescendant = ActiveDescendant.TagsList;\n }\n\n this.applyState(state);\n },\n triggerOnChange: function triggerOnChange(items, state) {\n if (this.$props.value === undefined) {\n state.data.currentValue = __spreadArrays(items);\n }\n\n this.valuesItemsDuringOnChange = [];\n this.setItems(items, this.valuesItemsDuringOnChange);\n state.events.push({\n type: 'change'\n });\n },\n selectFocusedItem: function selectFocusedItem(event) {\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n virtual = _a.virtual;\n var focusedIndex = this.getFocusedState().focusedIndex;\n var skip = virtual ? virtual.skip : 0;\n\n if (dataItems[focusedIndex - skip] !== undefined) {\n this.handleItemClick(focusedIndex, event);\n }\n },\n setItems: function setItems(srcItems, destItems) {\n destItems.length = 0;\n destItems.push.apply(destItems, srcItems);\n },\n getFocusedState: function getFocusedState() {\n var focusedIndex = this.currentFocusedIndex;\n var text = this.$props.filter !== undefined ? this.$props.filter : this.currentText;\n var _a = this.$props,\n allowCustom = _a.allowCustom,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n dataItemKey = _a.dataItemKey,\n virtual = _a.virtual,\n textField = _a.textField,\n _c = _a.focusedItemIndex,\n focusedItemIndex = _c === void 0 ? itemIndexStartsWith : _c;\n var skip = virtual && virtual.skip || 0;\n var focusedInd;\n\n if (focusedIndex !== undefined) {\n return {\n focusedIndex: focusedIndex,\n focusedItem: dataItems[focusedIndex - skip],\n focusedType: FocusedItemType.ListItem\n };\n }\n\n var selected = this.computedValue();\n\n if (allowCustom && text) {\n return {\n focusedItem: null,\n focusedIndex: -1,\n focusedType: FocusedItemType.CustomItem\n };\n } else if (text) {\n focusedInd = focusedItemIndex(dataItems, text, textField);\n return {\n focusedItem: dataItems[focusedInd],\n focusedIndex: focusedInd + skip,\n focusedType: FocusedItemType.ListItem\n };\n } else if (selected.length) {\n var last_1 = selected[selected.length - 1];\n focusedInd = dataItems.findIndex(function (i) {\n return areSame(i, last_1, dataItemKey);\n });\n\n if (dataItems[focusedInd] !== undefined) {\n return {\n focusedIndex: focusedInd + skip,\n focusedItem: dataItems[focusedInd],\n focusedType: FocusedItemType.ListItem\n };\n }\n\n return {\n focusedType: FocusedItemType.None,\n focusedIndex: -1\n };\n }\n\n return skip === 0 ? {\n focusedItem: dataItems[0],\n focusedIndex: 0,\n focusedType: FocusedItemType.ListItem\n } : {\n focusedType: FocusedItemType.None,\n focusedIndex: -1\n };\n },\n customItemSelect: function customItemSelect(event) {\n var _a;\n\n var itemText = this.$props.filter !== undefined ? this.$props.filter : this.currentText;\n var textField = this.$props.textField;\n\n if (!itemText) {\n return;\n }\n\n var state = this.base.initState();\n state.event = event;\n var item = textField ? (_a = {}, _a[textField] = itemText, _a) : itemText;\n\n if (this.currentText !== undefined) {\n state.data.currentText = '';\n }\n\n state.data.currentFocusedIndex = undefined;\n this.base.filterChanged('', state);\n\n var newItems = __spreadArrays(this.computedValue(), [item]);\n\n this.triggerOnChange(newItems, state);\n this.base.togglePopup(state);\n this.applyState(state);\n },\n handleWrapperClick: function handleWrapperClick(event) {\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var input = this.input;\n\n if (!opened && input) {\n this.focusElement(input);\n }\n\n var state = this.base.initState();\n state.event = event;\n\n if (!this.currentFocused) {\n state.events.push({\n type: 'focus'\n });\n state.data.currentFocused = true;\n }\n\n this.base.togglePopup(state);\n this.applyState(state);\n },\n handleItemClick: function handleItemClick(index, event) {\n var state = this.base.initState();\n state.event = event;\n this.handleItemSelect(index, state);\n\n if (this.$props.autoClose) {\n this.base.togglePopup(state);\n }\n\n this.applyState(state);\n },\n handleBlur: function handleBlur(event) {\n if (!this.currentFocused || this._skipFocusEvent) {\n return;\n }\n\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var state = this.base.initState();\n var _a = this.$props,\n allowCustom = _a.allowCustom,\n filterable = _a.filterable;\n state.event = event;\n state.data.currentFocused = false;\n state.events.push({\n type: 'blur'\n });\n\n if (opened) {\n if (this.currentOpened) {\n state.data.currentOpened = false;\n }\n\n state.events.push({\n type: 'close'\n });\n }\n\n if (!allowCustom && !filterable && this.currentText) {\n state.data.currentText = '';\n }\n\n this.applyState(state);\n },\n handleFocus: function handleFocus(event) {\n if (this._skipFocusEvent) {\n return;\n }\n\n this.base.handleFocus(event);\n },\n onPopupOpened: function onPopupOpened() {\n if (this.input && this.currentFocused) {\n this.focusElement(this.input);\n }\n },\n onPopupClosed: function onPopupClosed() {\n var _this = this;\n\n if (this.currentFocused) {\n setTimeout(function () {\n if (_this.currentFocused) {\n _this.focusElement(_this.input);\n }\n }, 0);\n }\n },\n focusElement: function focusElement(element) {\n var _this = this;\n\n this._skipFocusEvent = true;\n element.focus();\n setTimeout(function () {\n return _this._skipFocusEvent = false;\n }, 30);\n },\n applyState: function applyState(state) {\n this.base.applyState(state);\n this.valuesItemsDuringOnChange = null;\n },\n setValidity: function setValidity() {\n if (this.input && this.input.setCustomValidity) {\n this.input.setCustomValidity(this.validity().valid ? '' : this.$props.validationMessage || VALIDATION_MESSAGE);\n }\n },\n focus: function focus() {\n if (this.input) {\n this.input.focus();\n }\n }\n },\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var _a = this.$props,\n style = _a.style,\n label = _a.label,\n dir = _a.dir,\n disabled = _a.disabled,\n tags = _a.tags,\n textField = _a.textField,\n dataItemKey = _a.dataItemKey,\n virtual = _a.virtual,\n loading = _a.loading;\n var focused = this.currentFocused;\n var popupSettings = Object.assign({}, {\n animate: true,\n height: '200px'\n }, this.$props.popupSettings);\n var focusedTag = this.currentFocusedTag;\n var value = this.computedValue();\n var searchText = (this.$props.filter !== undefined ? this.$props.filter : this.currentText) || '';\n var clearButton = !loading && (!!searchText || value.length > 0);\n var vs = this.base.vs;\n var id = this.$props.id || this.inputId;\n var tagRender = templateRendering.call(this, this.$props.tagRender, getListeners.call(this));\n vs.enabled = virtual !== undefined;\n\n if (virtual !== undefined) {\n vs.skip = virtual.skip;\n vs.total = virtual.total;\n vs.pageSize = virtual.pageSize;\n }\n\n var tagsToRender = [];\n\n if (tags === undefined) {\n this.computedValue().forEach(function (item) {\n tagsToRender.push({\n text: getItemValue(item, textField),\n data: [item]\n });\n });\n } else {\n tagsToRender.push.apply(tagsToRender, tags);\n }\n\n this.setItems(tagsToRender, this._tags);\n var isValid = !this.$props.validityStyles || this.validity().valid;\n\n var renderClearButton = function renderClearButton(cbutton) {\n if (cbutton) {\n // @ts-ignore function children\n return h(ClearButton, {\n onClearclick: this.clearButtonClick,\n on: this.v3 ? undefined : {\n \"clearclick\": this.clearButtonClick\n },\n key: \"clearbutton\"\n });\n }\n\n return h(\"span\");\n };\n\n var renderLoading = function renderLoading(cloading) {\n if (cloading) {\n return h(\"span\", {\n \"class\": \"k-icon k-i-loading\"\n });\n }\n\n return h(\"span\");\n };\n\n var renderSearchBar = function renderSearchBar(searchId) {\n var _this = this;\n\n var activedescendant = this.activedescendant;\n var placeholder = this.$props.placeholder;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var focusedIndex = this.getFocusedState().focusedIndex;\n var placeholderToShow = value.length === 0 && !searchText ? placeholder : undefined;\n var ariaActivedescendant = activedescendant === ActiveDescendant.TagsList && focusedTag !== undefined ? \"tag-\" + this.base.guid + \"-\" + focusedTag.text.replace(/\\s+/g, '-') : \"option-\" + this.base.guid + \"-\" + focusedIndex;\n return (// @ts-ignore function children\n h(SearchBar, {\n id: searchId,\n attrs: this.v3 ? undefined : {\n id: searchId,\n size: Math.max((placeholderToShow || '').length, searchText.length, 1),\n tabIndex: this.$props.tabIndex,\n accessKey: this.$props.accessKey,\n placeholder: placeholderToShow,\n value: searchText,\n disabled: disabled,\n expanded: opened,\n owns: this.base.listBoxId,\n activedescendant: ariaActivedescendant,\n \"aria-describedBy\": \"tagslist-\" + this.base.guid + \" \" + (this.$props.ariaDescribedBy || ''),\n \"aria-labelledBy\": this.$props.ariaLabelledBy\n },\n size: Math.max((placeholderToShow || '').length, searchText.length, 1),\n tabIndex: this.$props.tabIndex,\n accessKey: this.$props.accessKey,\n placeholder: placeholderToShow,\n value: searchText,\n onChange: this.onChangeHandler,\n on: this.v3 ? undefined : {\n \"change\": this.onChangeHandler,\n \"blur\": this.handleBlur,\n \"keydown\": this.onInputKeyDown\n },\n onBlur: this.handleBlur,\n onKeydown: this.onInputKeyDown,\n ref: this.v3 ? function (el) {\n _this.inputRef = el;\n } : 'input',\n disabled: disabled,\n expanded: opened,\n owns: this.base.listBoxId,\n activedescendant: ariaActivedescendant,\n \"aria-describedBy\": \"tagslist-\" + this.base.guid + \" \" + (this.$props.ariaDescribedBy || ''),\n \"aria-labelledBy\": this.$props.ariaLabelledBy\n })\n );\n };\n\n var renderList = function renderList() {\n var _a = this.$props.dataItems,\n dataItems = _a === void 0 ? [] : _a;\n var itemRender = templateRendering.call(this, this.$props.itemRender, getListeners.call(this));\n var listNoDataRender = templateRendering.call(this, this.$props.listNoDataRender, getListeners.call(this));\n var skip = virtual ? virtual.skip : 0;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var focusedIndex = this.getFocusedState().focusedIndex;\n var translate = \"translateY(\" + vs.translate + \"px)\";\n return (// @ts-ignore\n h(List, {\n id: this.base.listBoxId,\n attrs: this.v3 ? undefined : {\n id: this.base.listBoxId,\n show: opened,\n dataItems: dataItems.slice(),\n focusedIndex: focusedIndex - skip,\n value: this.computedValue(),\n textField: textField,\n valueField: dataItemKey,\n optionsGuid: this.base.guid,\n wrapperStyle: vs.enabled ? {\n float: 'left',\n width: '100%'\n } : {\n maxHeight: popupSettings.height\n },\n wrapperCssClass: vs.enabled ? undefined : 'k-list-scroller',\n listStyle: vs.enabled ? {\n transform: translate\n } : undefined,\n skip: skip,\n itemRender: itemRender,\n noDataRender: listNoDataRender\n },\n show: opened,\n dataItems: dataItems.slice(),\n focusedIndex: focusedIndex - skip,\n value: this.computedValue(),\n textField: textField,\n valueField: dataItemKey,\n optionsGuid: this.base.guid,\n ref: 'list',\n wrapperStyle: vs.enabled ? {\n float: 'left',\n width: '100%'\n } : {\n maxHeight: popupSettings.height\n },\n wrapperCssClass: vs.enabled ? undefined : 'k-list-scroller',\n listStyle: vs.enabled ? {\n transform: translate\n } : undefined,\n key: \"listKey\",\n skip: skip,\n onListclick: this.handleItemClick,\n on: this.v3 ? undefined : {\n \"listclick\": this.handleItemClick\n },\n itemRender: itemRender,\n noDataRender: listNoDataRender\n })\n );\n }; // Common rendering\n\n\n var renderScrollWrapper = function renderScrollWrapper(children) {\n return vs.enabled ? h(\"div\", {\n onScroll: vs.scrollHandler,\n on: this.v3 ? undefined : {\n \"scroll\": vs.scrollHandler\n },\n ref: 'scroller',\n style: {\n height: popupSettings.height,\n overflowY: 'scroll'\n }\n }, [children]) : children;\n };\n\n var renderScrollElement = function renderScrollElement() {\n return vs.enabled && h(\"div\", {\n ref: 'scrollElement',\n key: 'scrollElementKey'\n });\n };\n\n var renderListContainer = function renderListContainer() {\n var _this2 = this;\n\n var base = this.base;\n var _a = this.$props,\n allowCustom = _a.allowCustom,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b;\n var headerTemplate = templateRendering.call(this, this.$props.header, getListeners.call(this));\n var footerTemplate = templateRendering.call(this, this.$props.footer, getListeners.call(this));\n var header = getTemplate.call(this, {\n h: h,\n template: headerTemplate\n });\n var footer = getTemplate.call(this, {\n h: h,\n template: footerTemplate\n });\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var currentText = this.$props.filter !== undefined ? this.$props.filter : this.currentText;\n var popupWidth = popupSettings.width !== undefined ? popupSettings.width : base.popupWidth;\n var focusedType = this.getFocusedState().focusedType;\n var customItem = allowCustom && currentText && h(\"div\", {\n \"class\": \"k-list\",\n key: \"customitem\",\n onClick: this.customItemSelect,\n on: this.v3 ? undefined : {\n \"click\": this.customItemSelect\n }\n }, [h(\"div\", {\n \"class\": classNames('k-item k-custom-item', {\n 'k-state-focused': isCustom(focusedType)\n })\n }, [currentText, h(\"span\", {\n \"class\": \"k-icon k-i-plus\",\n style: {\n float: 'right'\n }\n })])]);\n return (// @ts-ignore function children\n h(ListContainer, {\n ref: 'container',\n onMousedown: preventDefault,\n on: this.v3 ? undefined : {\n \"mousedown\": preventDefault,\n \"blur\": this.handleBlur\n },\n dir: dir !== undefined ? dir : base.dirCalculated,\n attrs: this.v3 ? undefined : {\n dir: dir !== undefined ? dir : base.dirCalculated,\n width: popupWidth,\n popupSettings: {\n animate: popupSettings.animate,\n anchor: this.anchor,\n show: opened,\n onOpen: this.onPopupOpened,\n onClose: this.onPopupClosed,\n className: classNames('k-list-container k-reset', popupSettings.className),\n appendTo: popupSettings.appendTo\n },\n itemsCount: dataItems.length\n },\n onBlur: this.handleBlur,\n width: popupWidth,\n popupSettings: {\n animate: popupSettings.animate,\n anchor: this.anchor,\n show: opened,\n onOpen: this.onPopupOpened,\n onClose: this.onPopupClosed,\n className: classNames('k-list-container k-reset', popupSettings.className),\n appendTo: popupSettings.appendTo\n },\n itemsCount: dataItems.length\n }, this.v3 ? function () {\n return [virtual && header, renderScrollWrapper.call(_this2, [!virtual && header, customItem, renderList.call(_this2), !virtual && footer, renderScrollElement.call(_this2)]), virtual && footer];\n } : [virtual && header, renderScrollWrapper.call(_this2, [!virtual && header, customItem, renderList.call(_this2), !virtual && footer, renderScrollElement.call(_this2)]), virtual && footer])\n );\n };\n\n var component = h(\"span\", {\n ref: this.v3 ? function (el) {\n _this.kendoAnchorRef = el;\n } : this.anchor,\n \"class\": classNames('k-widget k-multiselect', {\n 'k-state-focused': focused && !disabled,\n 'k-state-invalid': !isValid,\n 'k-state-disabled': disabled\n }),\n style: !label ? style : __assign(__assign({}, style), {\n width: undefined\n }),\n dir: dir,\n attrs: this.v3 ? undefined : {\n dir: dir\n },\n onFocusin: this.handleFocus,\n on: this.v3 ? undefined : {\n \"focusin\": this.handleFocus\n }\n }, [h(\"div\", {\n onClick: this.handleWrapperClick,\n on: this.v3 ? undefined : {\n \"click\": this.handleWrapperClick,\n \"mousedown\": preventDefaultNonInputs\n },\n ref: this.v3 ? function (el) {\n _this.baseWrapperRef = el;\n } : 'baseWrapper',\n \"class\": \"k-multiselect-wrap k-floatwrap\",\n onMousedown: preventDefaultNonInputs\n }, [tagsToRender.length > 0 && // @ts-ignore function children\n h(TagList, {\n tagRender: tagRender,\n attrs: this.v3 ? undefined : {\n tagRender: tagRender,\n dataItems: tagsToRender,\n guid: this.base.guid,\n focused: focusedTag ? tagsToRender.find(function (t) {\n return matchTags(t, focusedTag, dataItemKey);\n }) : undefined\n },\n onTagdelete: this.onTagDelete,\n on: this.v3 ? undefined : {\n \"tagdelete\": this.onTagDelete\n },\n dataItems: tagsToRender,\n guid: this.base.guid,\n focused: focusedTag ? tagsToRender.find(function (t) {\n return matchTags(t, focusedTag, dataItemKey);\n }) : undefined\n }), renderSearchBar.call(this, id), renderClearButton.call(this, clearButton), renderLoading.call(this, loading)]), renderListContainer.call(this)]);\n return label ? h(\"span\", {\n \"class\": this.spanClassNames,\n dir: this.$props.dir,\n attrs: this.v3 ? undefined : {\n dir: this.$props.dir\n }\n }, [component, this.$props.label ? id ? h(\"label\", {\n \"for\": id,\n attrs: this.v3 ? undefined : {\n \"for\": id\n },\n \"class\": \"k-label\"\n }, [this.$props.label]) : h(\"span\", {\n \"class\": \"k-label\"\n }, [this.$props.label]) : null]) : component;\n }\n};\nvar MultiSelectVue3 = MultiSelect;\nexport { MultiSelect, MultiSelectVue3 };","var _Draggable;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport KendoDraggable from '@telerik/kendo-draggable';\nimport { getDefaultSlots } from './defaultSlots';\n/**\n * Represents the default `Draggable` component.\n */\n\nvar Draggable = (_Draggable = {\n // @ts-ignore\n emits: {\n press: null,\n drag: null,\n release: null\n },\n inheritAttrs: false,\n created: function created() {\n this.element = null;\n this.draggable = new KendoDraggable({\n press: this.press,\n drag: this.drag,\n release: this.release\n });\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n mounted: function mounted() {\n if (this.$el) {\n this.element = this.$el.nodeType === 3 ? this.$el.nextElementSibling : this.$el;\n this.draggable.bindTo(this.element);\n }\n },\n destroyed: !!gh ? undefined : function () {\n this.draggable.destroy();\n },\n // @ts-ignore\n unmounted: function unmounted() {\n this.draggable.destroy();\n },\n methods: {\n press: function press(event) {\n if (this.element) {\n this.$emit('press', event, this.element);\n }\n },\n drag: function drag(event) {\n if (this.element) {\n this.$emit('drag', event, this.element);\n }\n },\n release: function release(event) {\n if (this.element) {\n this.$emit('release', event, this.element);\n }\n }\n }\n}, _defineProperty(_Draggable, \"setup\", !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n}), _defineProperty(_Draggable, \"render\", function render(createElement) {\n // @ts-ignore\n var h = gh || createElement;\n return getDefaultSlots(this);\n}), _Draggable);\nexport { Draggable };","/* tslint:disable:no-bitwise */\n/**\n * @hidden\n */\nvar guid = function () {\n var id = '';\n var i;\n var random;\n for (i = 0; i < 32; i++) {\n random = Math.random() * 16 | 0;\n if (i === 8 || i === 12 || i === 16 || i === 20) {\n id += '-';\n }\n id += (i === 12 ? 4 : (i === 16 ? (random & 3 | 8) : random)).toString(16);\n }\n return id;\n};\nexport { guid };\n","/**\n * @hidden\n */\nvar canUseDOM = Boolean(\n// from fbjs\ntypeof window !== 'undefined' &&\n window.document &&\n window.document.createElement);\nexport { canUseDOM };\n","/**\n * @hidden\n */\nexport function getDefaultSlots(component) {\n var defaultSlots = component.$slots.default;\n return (component.v3 && defaultSlots && typeof defaultSlots === 'function') ? defaultSlots() : defaultSlots;\n}\n","/**\n * @hidden\n */\nexport var cloneDate = function (date) { return date ? new Date(date.getTime()) : null; };\n/**\n * @hidden\n */\nexport function clone(obj) {\n var result = {};\n cloneObject(obj, result);\n return result;\n}\n/**\n * @hidden\n */\nexport function cloneObject(obj, result) {\n for (var field in obj) {\n if (obj.hasOwnProperty(field)) {\n var value = obj[field];\n result[field] = cloneValue(value, result[field]);\n }\n }\n}\n/**\n * @hidden\n */\nexport function cloneValue(value, nextValue) {\n if (Array.isArray(value)) {\n return cloneArray(value);\n }\n else if (value instanceof Date) {\n return cloneDate(value);\n }\n else if (value && typeof value === 'object') {\n var newNextValue = nextValue || {};\n cloneObject(value, newNextValue);\n return newNextValue;\n }\n else {\n return value;\n }\n}\n/**\n * @hidden\n */\nexport function cloneArray(array) {\n return array.map(function (value) { return cloneValue(value, undefined); });\n}\n","import { FIELD_REGEX } from './constants';\nvar getterCache = {};\ngetterCache.undefined = function () { return undefined; };\n/**\n * @hidden\n */\nexport function getter(field) {\n if (getterCache[field]) {\n return getterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n getterCache[field] = function (obj) {\n var result = obj;\n for (var idx = 0; idx < fields.length && result; idx++) {\n result = result[fields[idx]];\n }\n return result;\n };\n return getterCache[field];\n}\n","import { FIELD_REGEX } from './constants';\nvar setterCache = {};\nsetterCache.undefined = function (obj) { return obj; };\n/**\n * @hidden\n */\nexport function setter(field) {\n if (setterCache[field]) {\n return setterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n setterCache[field] = function (obj, value) {\n var root = obj;\n var depth = fields.length - 1;\n for (var idx = 0; idx < depth && root; idx++) {\n root = root[fields[idx]] = root[fields[idx]] || {};\n }\n root[fields[depth]] = value;\n };\n return setterCache[field];\n}\n","/**\n * @hidden\n */\nexport function hasListener(eventName) {\n if (this.v3) {\n return Object.keys(this.$attrs).map(function (name) { return name.toLowerCase(); })\n .some(function (event) { return event.endsWith(eventName.toLowerCase()); });\n }\n else {\n return this.$listeners[eventName];\n }\n}\n/**\n * @hidden\n */\nexport function getListeners() {\n if (this.v3) {\n var listeners = {};\n for (var key in (this.$attrs)) {\n if (key.startsWith('on')) {\n listeners[key] = this.$attrs[key];\n }\n }\n return listeners;\n }\n else {\n return this.$listeners;\n }\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\n/**\n * @hidden\n */\nexport function templateRendering(template, listeners) {\n if (!template) {\n return undefined;\n }\n var scopedSlot = gh ?\n this.$slots[template] ||\n (template.toLowerCase ? this.$slots[template.toLowerCase()]\n : null) :\n this.$scopedSlots[template] ||\n (template.toLowerCase ? this.$scopedSlots[template.toLowerCase()]\n : null);\n // @ts-ignore\n if (typeof template === 'string' && scopedSlot) {\n // @ts-ignore\n return { type: 'slot', render: scopedSlot, listeners: listeners };\n }\n if (typeof template === 'string' || typeof template === 'object' ||\n (typeof template === 'function' && template.component)) {\n return { type: 'component', render: template, listeners: listeners };\n }\n return { type: 'renderFunction', render: template, listeners: listeners };\n}\n/**\n * @hidden\n */\nexport function getTemplate(_a) {\n var h = _a.h, template = _a.template, defaultRendering = _a.defaultRendering, defaultSlots = _a.defaultSlots, additionalProps = _a.additionalProps, additionalListeners = _a.additionalListeners, swapDefaultSlots = _a.swapDefaultSlots;\n if (!template) {\n return defaultRendering;\n }\n var events;\n var props;\n var componentOptions;\n if (gh) {\n var passedProps = defaultRendering ? defaultRendering.props : {};\n events = __assign(__assign({}, transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, passedProps), additionalProps), events);\n componentOptions = __assign(__assign({}, props), events);\n }\n else {\n var hasComponentOptions = defaultRendering && defaultRendering.componentOptions;\n var defaultListeners = hasComponentOptions ?\n defaultRendering.componentOptions.listeners : {};\n var defaultProps = hasComponentOptions ?\n defaultRendering.componentOptions.propsData : {};\n events = __assign(__assign(__assign(__assign({}, defaultListeners), additionalListeners), transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, defaultProps), additionalProps), events);\n componentOptions = { props: props, on: events };\n }\n if (template.type === 'slot') {\n var slotTemplate = template.render({ props: props, listeners: events, methods: events,\n defaultSlots: defaultSlots });\n return slotTemplate ? slotTemplate[0] : undefined;\n }\n else if (template.type === 'renderFunction') {\n if (swapDefaultSlots) {\n return template.render(h, defaultRendering, defaultSlots, props, events);\n }\n return template.render(h, defaultRendering, props, events, defaultSlots);\n }\n else {\n return h(template.render, componentOptions, gh ? function () { return [defaultSlots]; } : [defaultSlots]);\n }\n}\n/**\n * @hidden\n */\nexport function transformListeners(listeners) {\n if (!listeners) {\n return listeners;\n }\n var newListeners = {};\n var listenersKeys = Object.keys(listeners);\n for (var i = 0; i < listenersKeys.length; i++) {\n var currentKey = listenersKeys[i];\n newListeners['on' + currentKey.charAt(0).toUpperCase() + currentKey.slice(1)] =\n listeners[currentKey];\n }\n return newListeners;\n}\n","import * as licensing from '@progress/kendo-licensing';\n/**\n * @hidden\n */\nexport function validatePackage(packageMetadata) {\n if (typeof licensing !== 'undefined') {\n licensing.validatePackage(packageMetadata);\n }\n else {\n var message = \"License activation failed for \" + packageMetadata.name + \"\\n\";\n message += 'The @progress/kendo-licensing script is not loaded.\\n';\n message += \"See \" + packageMetadata.licensingDocsUrl + \" for more information.\\n\";\n console.warn(message);\n }\n}\n","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getListeners, getTemplate, templateRendering } from '@progress/kendo-vue-common';\n/**\n * Represents the default `Field` component.\n */\n\nvar Field = {\n name: 'KendoField',\n props: {\n value: [String, Number, Boolean, Object, Array],\n component: [String, Number, Boolean, Object],\n render: [String, Number, Boolean, Object],\n validationMessage: String,\n touched: Boolean,\n modified: Boolean,\n visited: Boolean,\n valid: Boolean,\n validator: [Function, Array],\n name: String,\n id: String\n },\n created: function created() {\n if (!this.kendoForm) {\n return;\n }\n\n var unregisterField = this.kendoForm.registerField(this.$props.name, this.$props.validator);\n return unregisterField;\n },\n inject: {\n kendoForm: {\n default: null\n }\n },\n methods: {\n handleOnChange: function handleOnChange(event) {\n var newValue = event ? event.value !== undefined ? event.value : event.target ? event.target.value : event.target : event;\n this.kendoForm.onChange(this.$props.name, {\n value: newValue\n });\n this.$emit('change', event);\n },\n onNativeComponentChange: function onNativeComponentChange(event) {\n this.kendoForm.onChange(this.$props.name, {\n value: event.target.value\n });\n },\n handleOnBlur: function handleOnBlur() {\n this.kendoForm.onBlur(this.$props.name);\n },\n handleOnFocus: function handleOnFocus() {\n this.kendoForm.onFocus(this.$props.name);\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n\n var _a = this.$props,\n name = _a.name,\n component = _a.component,\n validator = _a.validator,\n render = _a.render,\n id = _a.id,\n others = __rest(_a, [\"name\", \"component\", \"validator\", \"render\", \"id\"]);\n\n if (!this.kendoForm) {\n return null;\n }\n\n var value = this.kendoForm.values[name];\n\n if (typeof component === 'string' && component === ('input' || 'textarea')) {\n return h(component, __assign(__assign({\n attrs: this.$attrs\n }, this.$attrs), {\n onChange: this.onNativeComponentChange,\n onBlur: this.handleOnBlur,\n onFocus: this.handleOnFocus,\n on: this.v3 ? undefined : {\n change: this.handleOnChange,\n blur: this.handleOnBlur,\n focus: this.handleOnFocus\n },\n domProps: this.v3 ? undefined : {\n value: value ? value : ''\n },\n value: value ? value : ''\n }));\n }\n\n if (component) {\n var renderTemplate = component ? templateRendering.call(this, component, getListeners.call(this)) : null;\n return getTemplate.call(this, {\n h: h,\n template: renderTemplate,\n additionalProps: __assign({\n value: value,\n // meta\n validationMessage: this.kendoForm.errors[name],\n touched: this.kendoForm.touchedByField[name],\n modified: this.kendoForm.modifiedByField[name],\n visited: this.kendoForm.visitedByField[name],\n // Our `valid` implementation requires double submit to show html5 validation errors,\n // however it's NOT recommended to show html5 validation errors at all as:\n // - There is no standard way to change validation look and feel with CSS.\n // - Look different in each browser / OS\n // - You can have a page in one language but an error message\n // displayed in another language (not localizable)\n valid: !(Boolean(this.kendoForm.errors[name]) && this.kendoForm.touchedByField[name]),\n name: name,\n id: id\n }, this.$attrs),\n additionalListeners: {\n change: this.handleOnChange,\n blur: this.handleOnBlur,\n focus: this.handleOnFocus\n }\n });\n }\n }\n};\nvar FieldVue3 = Field;\nexport { Field, FieldVue3 };","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-vue-form',\n productName: 'Kendo UI for Vue',\n productCodes: ['KENDOUIVUE', 'KENDOUICOMPLETE'],\n publishDate: 1641561393,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning'\n};\n","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n};\n\nimport { clone, cloneObject, guid, validatePackage } from '@progress/kendo-vue-common';\nimport { packageMetadata } from './package-metadata'; // @ts-ignore\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * @hidden\n */\n\nvar FORCEUPDATE_ACCUMULATOR_TIMEOUT = 0;\n/**\n * Represents the default `Form` component.\n */\n\nvar Form = {\n name: 'KendoForm',\n props: {\n renderForm: [Object, Function],\n initialValues: Object,\n validator: Function,\n ignoreModified: Boolean\n },\n created: function created() {\n this._accumulatorTimeout = undefined;\n validatePackage(packageMetadata);\n this.form.values = clone(this.$props.initialValues);\n },\n mounted: function mounted() {\n this.form.errors = this.getErrors();\n this.form.allowSubmit = this.allowSubmit();\n this.form.valid = this.isValid();\n },\n destroyed: !!gh ? undefined : function () {\n this.onDestroy();\n },\n // @ts-ignore\n unmounted: function unmounted() {\n this.onDestroy();\n },\n data: function data() {\n return {\n validatorsByField: {},\n fields: [],\n unmounted: false,\n form: {\n id: this.id,\n errors: {},\n values: {},\n modifiedByField: {},\n touchedByField: {},\n visitedByField: {},\n valid: false,\n modified: false,\n touched: false,\n visited: false,\n submitted: false,\n valueGetter: this.valueGetter,\n allowSubmit: false,\n onChange: this.onChange,\n onSubmit: this.onSubmit,\n onFormReset: this.resetForm,\n registerField: this.onFieldRegister,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onUnshift: this.onUnshift,\n onPush: this.onPush,\n onInsert: this.onInsert,\n onPop: this.onPop,\n onRemove: this.onRemove,\n onReplace: this.onReplace,\n onMove: this.onMove\n }\n };\n },\n provide: function provide() {\n return {\n kendoForm: this.$data.form\n };\n },\n watch: {\n 'form.values': function formValues() {\n this.form.errors = this.getErrors();\n this.form.allowSubmit = this.allowSubmit();\n this.form.valid = this.isValid();\n },\n 'form.touchedByField': function formTouchedByField(newValue) {\n this.form.touched = this.isFormTouched(newValue, this.fields);\n this.form.allowSubmit = this.allowSubmit();\n },\n 'form.modifiedByField': function formModifiedByField(newValue) {\n this.form.modified = this.isFormModified(newValue, this.fields);\n this.form.allowSubmit = this.allowSubmit();\n },\n 'form.visitedByField': function formVisitedByField(newValue) {\n this.form.visited = this.isFormVisited(newValue, this.fields);\n }\n },\n methods: {\n isValid: function isValid() {\n return this.isFormValid(this.form.errors);\n },\n formErrors: function formErrors() {\n if (this.$props.validator) {\n return this.$props.validator(this.form.values, this.valueGetter);\n }\n },\n getErrors: function getErrors() {\n var _this = this;\n\n var errors = {};\n var validatorsByField = this.validatorsByField;\n Object.keys(this.fields).forEach(function (fieldName) {\n errors[fieldName] = '';\n\n if (validatorsByField[fieldName]) {\n var validators_1 = [];\n validatorsByField[fieldName].forEach(function (validator) {\n if (Array.isArray(validator)) {\n validators_1.push.apply(validators_1, validator);\n } else {\n validators_1.push(validator);\n }\n }); // find first validation error\n\n validators_1.find(function (validator) {\n if (validator) {\n var result = validator(_this.valueGetter(fieldName), _this.valueGetter, {\n name: fieldName\n });\n\n if (result) {\n errors[fieldName] = result;\n return true;\n }\n }\n\n return false;\n });\n }\n });\n var formErrors = this.formErrors();\n\n if (formErrors) {\n cloneObject(this.formErrors(), errors);\n }\n\n return errors;\n },\n\n /**\n * @hidden\n */\n accumulatedForceUpdate: function accumulatedForceUpdate() {\n var _this = this; // IMPORTANT:\n // Should only be used for updates not coming from editors as it\n // will cause cursor jump as vue will reset the editor to old value\n\n\n if (this._accumulatorTimeout) {\n clearTimeout(this._accumulatorTimeout);\n }\n\n this._accumulatorTimeout = window.setTimeout(function () {\n _this._accumulatorTimeout = undefined;\n }, FORCEUPDATE_ACCUMULATOR_TIMEOUT);\n },\n\n /**\n * @hidden\n */\n resetForm: function resetForm() {\n this.form.values = clone(this.$props.initialValues);\n this.id = guid();\n this.form.touchedByField = {};\n this.form.visitedByField = {};\n this.form.modifiedByField = {}; // this.validatorsByField = {};\n // this.fields = [];\n\n this.form.submitted = false;\n },\n\n /**\n * Method for resetting the form state outside the form component.\n *\n * > Use `onReset` only if you cannot achieve the desired behavior\n * through the Field component or by FormRenderProps.\n */\n onReset: function onReset() {\n this.resetForm();\n },\n addField: function addField(field) {\n this.fields[field] = true;\n },\n onSubmit: function onSubmit(event) {\n var touchedVisited = {};\n var fields = this.fields;\n\n if (event) {\n if (typeof event.preventDefault === 'function') {\n event.preventDefault();\n }\n\n if (typeof event.stopPropagation === 'function') {\n event.stopPropagation();\n }\n }\n\n Object.keys(fields).forEach(function (fieldName) {\n touchedVisited[fieldName] = true;\n }); // show validations\n\n this.form.visitedByField = __assign({}, touchedVisited);\n this.form.touchedByField = __assign({}, touchedVisited);\n var values = this.form.values;\n var isValid = this.isValid();\n var isModified = this.isFormModified(this.form.modifiedByField, fields);\n this.$emit('submitclick', {\n values: values,\n isValid: isValid,\n isModified: isModified,\n event: event\n });\n\n if (isValid && (this.$props.ignoreModified || isModified)) {\n this.form.submitted = true;\n this.$emit('submit', values, event);\n }\n },\n\n /**\n * Method for emitting changes to a specific field outside the form component.\n *\n * > Use `onChange` only if you cannot achieve the desired behavior\n * through the Field component by FormRenderProps.\n */\n onChange: function onChange(name, options) {\n var _a;\n\n var value = options.value;\n this.addField(name);\n\n if (!this.form.modifiedByField[name]) {\n this.form.modifiedByField = __assign(__assign({}, this.form.modifiedByField), (_a = {}, _a[name] = true, _a));\n }\n\n this.valueSetter(name, value);\n },\n onFocus: function onFocus(name) {\n var _a;\n\n if (this.form.visitedByField[name]) {\n return;\n }\n\n this.form.visitedByField = __assign(__assign({}, this.form.visitedByField), (_a = {}, _a[name] = true, _a));\n },\n onBlur: function onBlur(name) {\n var _a;\n\n if (this.form.touchedByField[name]) {\n return;\n }\n\n this.onFocus(name);\n this.form.touchedByField = __assign(__assign({}, this.form.touchedByField), (_a = {}, _a[name] = true, _a));\n },\n onFieldRegister: function onFieldRegister(name, validator) {\n var _a;\n\n var _this = this;\n\n this.addField(name); // The sole reason for using class props over state - nextIndex, needed for destroying validators\n\n var oldValidators = this.validatorsByField[name] || [];\n var nextIndex = oldValidators.length;\n this.validatorsByField = __assign(__assign({}, this.validatorsByField), (_a = {}, _a[name] = __spreadArrays(oldValidators, [validator]), _a));\n this.accumulatedForceUpdate();\n return function () {\n var _a; // onFieldUnregister:\n\n\n if (_this._unmounted) {\n return;\n }\n\n var newValidators = __spreadArrays(_this.validatorsByField[name] || []);\n\n var validatorIsUnregistered = Boolean(newValidators[nextIndex]);\n newValidators[nextIndex] = undefined;\n _this.validatorsByField = __assign(__assign({}, _this.validatorsByField), (_a = {}, _a[name] = newValidators, _a));\n\n if (validatorIsUnregistered) {\n _this.accumulatedForceUpdate();\n }\n };\n },\n isFormValid: function isFormValid(errors) {\n return !Object.keys(errors).some(function (fieldName) {\n return Boolean(errors[fieldName]);\n });\n },\n isFormModified: function isFormModified(modified, fields) {\n return Object.keys(fields).some(function (fieldName) {\n return modified[fieldName];\n });\n },\n isFormHasNotTouched: function isFormHasNotTouched(touched, fields) {\n return Object.keys(fields).some(function (fieldName) {\n return !touched[fieldName];\n });\n },\n isFormTouched: function isFormTouched(touched, fields) {\n return Object.keys(fields).some(function (fieldName) {\n return touched[fieldName];\n });\n },\n isFormVisited: function isFormVisited(visited, fields) {\n return Object.keys(fields).some(function (fieldName) {\n return visited[fieldName];\n });\n },\n formHasNotTouched: function formHasNotTouched() {\n return this.isFormHasNotTouched(this.form.touchedByField, this.fields);\n },\n // 1. The form is not touched, but has errors - allow submit to force validation.\n // 2. The form is valid and modified - if not modified, disable submit.\n allowSubmit: function allowSubmit() {\n return this.formHasNotTouched() && !this.isValid() || this.isValid() && (this.$props.ignoreModified || this.isFormModified(this.form.modifiedByField, this.fields));\n },\n valueGetter: function valueGetter(fieldName) {\n return this.form.values[fieldName];\n },\n valueSetter: function valueSetter(fieldName, value) {\n var _a;\n\n this.form.values = __assign(__assign({}, this.form.values), (_a = {}, _a[fieldName] = value, _a));\n },\n onArrayAction: function onArrayAction(name) {\n var _a;\n\n this.addField(name);\n\n if (!this.form.modifiedByField[name]) {\n this.form.modifiedByField = __assign(__assign({}, this.form.modifiedByField), (_a = {}, _a[name] = true, _a));\n }\n\n this.onBlur(name, true);\n },\n onInsert: function onInsert(name, options) {\n this.onArrayAction(name);\n\n var newArray = __spreadArrays(this.valueGetter(name) || []);\n\n newArray.splice(options.index, 0, options.value);\n this.valueSetter(name, newArray);\n },\n onUnshift: function onUnshift(name, options) {\n this.onInsert(name, {\n value: options.value,\n index: 0\n });\n },\n onPush: function onPush(name, options) {\n this.onArrayAction(name);\n\n var newArray = __spreadArrays(this.valueGetter(name) || [], [options.value]);\n\n this.valueSetter(name, newArray);\n },\n onPop: function onPop(name) {\n this.onArrayAction(name);\n\n var newArray = __spreadArrays(this.valueGetter(name) || []);\n\n var value = newArray.pop();\n this.valueSetter(name, newArray);\n return value;\n },\n onRemove: function onRemove(name, options) {\n this.onArrayAction(name);\n\n var newArray = __spreadArrays(this.valueGetter(name) || []);\n\n var value = newArray.splice(options.index, 1);\n this.valueSetter(name, newArray);\n return value;\n },\n onReplace: function onReplace(name, options) {\n this.onArrayAction(name);\n\n var newArray = __spreadArrays(this.valueGetter(name) || []);\n\n newArray.splice(options.index, 1, options.value);\n this.valueSetter(name, newArray);\n },\n onMove: function onMove(name, options) {\n this.onArrayAction(name);\n\n var newArray = __spreadArrays(this.valueGetter(name) || []);\n\n var value = newArray[options.prevIndex];\n newArray.splice(options.prevIndex, 1);\n newArray.splice(options.nextIndex, 0, value);\n this.valueSetter(name, newArray);\n },\n onDestroy: function onDestroy() {\n this.unmounted = true;\n\n if (this._accumulatorTimeout) {\n clearTimeout(this._accumulatorTimeout);\n }\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlots = getDefaultSlots(this);\n return h(\"div\", [defaultSlots]);\n }\n};\nvar FormVue3 = Form;\nexport { Form, FormVue3 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getListeners, getTemplate, templateRendering } from '@progress/kendo-vue-common';\n/**\n * Represents the default `FieldArray` component.\n */\n\nvar FieldArray = {\n name: 'KendoFieldArray',\n props: {\n value: [String, Number, Boolean, Object, Array],\n component: [String, Number, Boolean, Object],\n validationMessage: String,\n touched: Boolean,\n modified: Boolean,\n validator: [Function, Array],\n visited: Boolean,\n valid: Boolean,\n name: String,\n id: String\n },\n created: function created() {\n if (!this.kendoForm) {\n return;\n }\n\n var unregisterField = this.kendoForm.registerField(this.$props.name, this.$props.validator);\n return unregisterField;\n },\n methods: {\n onUnshift: function onUnshift(event) {\n this.kendoForm.onUnshift(this.$props.name, event);\n },\n onPush: function onPush(event) {\n this.kendoForm.onPush(this.$props.name, event);\n },\n onInsert: function onInsert(event) {\n this.kendoForm.onInsert(this.$props.name, event);\n },\n onPop: function onPop() {\n this.kendoForm.onPop(this.$props.name);\n },\n onRemove: function onRemove(event) {\n this.kendoForm.onRemove(this.$props.name, event);\n },\n onReplace: function onReplace(event) {\n this.kendoForm.onReplace(this.$props.name, event);\n },\n onMove: function onMove(event) {\n this.kendoForm.onMove(this.$props.name, event);\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n inject: {\n kendoForm: {\n default: null\n }\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n name = _a.name,\n component = _a.component,\n id = _a.id;\n\n if (!this.kendoForm) {\n return null;\n } // TODO: remove this and pass down getter to allow users optimize when to refresh the data?\n\n\n var value = this.kendoForm.values[name];\n\n if (component) {\n var renderTemplate = component ? templateRendering.call(this, component, getListeners.call(this)) : null;\n return getTemplate.call(this, {\n h: h,\n template: renderTemplate,\n additionalProps: __assign({\n value: value,\n // meta\n validationMessage: this.kendoForm.errors[name],\n touched: this.kendoForm.touchedByField[name],\n modified: this.kendoForm.modifiedByField[name],\n visited: this.kendoForm.visitedByField[name],\n // Our `valid` implementation requires double submit to show html5 validation errors,\n // however it's NOT recommended to show html5 validation errors at all as:\n // - There is no standard way to change validation look and feel with CSS.\n // - Look different in each browser / OS\n // - You can have a page in one language but an error message\n // displayed in another language (not localizable)\n valid: !(Boolean(this.kendoForm.errors[name]) && this.kendoForm.touchedByField[name]),\n name: name,\n id: id\n }, this.$attrs),\n additionalListeners: {\n unshift: this.onUnshift,\n push: this.onPush,\n insert: this.onInsert,\n pop: this.onPop,\n remove: this.onRemove,\n replace: this.onReplace,\n move: this.onMove\n }\n });\n }\n }\n};\nvar FieldArrayVue3 = FieldArray;\nexport { FieldArray, FieldArrayVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { packageMetadata } from './package-metadata';\nimport { getDefaultSlots, validatePackage } from '@progress/kendo-vue-common';\n/**\n * Represents the default `FieldWrapper` component.\n */\n\nvar FieldWrapper = {\n name: 'KendoFieldWrapper',\n props: {\n dir: String\n },\n created: function created() {\n validatePackage(packageMetadata);\n },\n computed: {\n fieldClassName: function fieldClassName() {\n return {\n 'k-form-field': true,\n 'k-rtl': this.$props.dir === 'rtl'\n };\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlots = getDefaultSlots(this);\n return h(\"div\", {\n \"class\": this.fieldClassName\n }, [defaultSlots]);\n }\n};\nvar FieldWrapperVue3 = FieldWrapper;\nexport { FieldWrapper, FieldWrapperVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { packageMetadata } from './package-metadata';\nimport { getDefaultSlots, validatePackage } from '@progress/kendo-vue-common';\n/**\n * Represents the default `FormElement` component.\n */\n\nvar FormElement = {\n name: 'KendoFormElement',\n props: {\n horizontal: Boolean\n },\n created: function created() {\n validatePackage(packageMetadata);\n },\n inject: {\n kendoForm: {\n default: null\n }\n },\n computed: {\n formElementClassName: function formElementClassName() {\n return {\n 'k-form': true,\n 'k-form-horizontal': this.$props.horizontal === true\n };\n }\n },\n methods: {\n handleSubmit: function handleSubmit(e) {\n if (this.kendoForm) {\n this.kendoForm.onSubmit(e);\n }\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlots = getDefaultSlots(this);\n return h(\"form\", {\n \"class\": this.formElementClassName,\n onSubmit: this.handleSubmit,\n on: this.v3 ? undefined : {\n \"submit\": this.handleSubmit\n }\n }, [defaultSlots]);\n }\n};\nvar FormElementVue3 = FormElement;\nexport { FormElement, FormElementVue3 };","var _Draggable;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport KendoDraggable from '@telerik/kendo-draggable';\nimport { getDefaultSlots } from './defaultSlots';\n/**\n * Represents the default `Draggable` component.\n */\n\nvar Draggable = (_Draggable = {\n // @ts-ignore\n emits: {\n press: null,\n drag: null,\n release: null\n },\n inheritAttrs: false,\n created: function created() {\n this.element = null;\n this.draggable = new KendoDraggable({\n press: this.press,\n drag: this.drag,\n release: this.release\n });\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n mounted: function mounted() {\n if (this.$el) {\n this.element = this.$el.nodeType === 3 ? this.$el.nextElementSibling : this.$el;\n this.draggable.bindTo(this.element);\n }\n },\n destroyed: !!gh ? undefined : function () {\n this.draggable.destroy();\n },\n // @ts-ignore\n unmounted: function unmounted() {\n this.draggable.destroy();\n },\n methods: {\n press: function press(event) {\n if (this.element) {\n this.$emit('press', event, this.element);\n }\n },\n drag: function drag(event) {\n if (this.element) {\n this.$emit('drag', event, this.element);\n }\n },\n release: function release(event) {\n if (this.element) {\n this.$emit('release', event, this.element);\n }\n }\n }\n}, _defineProperty(_Draggable, \"setup\", !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n}), _defineProperty(_Draggable, \"render\", function render(createElement) {\n // @ts-ignore\n var h = gh || createElement;\n return getDefaultSlots(this);\n}), _Draggable);\nexport { Draggable };","/* tslint:disable:no-bitwise */\n/**\n * @hidden\n */\nvar guid = function () {\n var id = '';\n var i;\n var random;\n for (i = 0; i < 32; i++) {\n random = Math.random() * 16 | 0;\n if (i === 8 || i === 12 || i === 16 || i === 20) {\n id += '-';\n }\n id += (i === 12 ? 4 : (i === 16 ? (random & 3 | 8) : random)).toString(16);\n }\n return id;\n};\nexport { guid };\n","/**\n * @hidden\n */\nvar Keys = {\n backspace: 8,\n tab: 9,\n enter: 13,\n shift: 16,\n esc: 27,\n space: 32,\n pageUp: 33,\n pageDown: 34,\n end: 35,\n home: 36,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n delete: 46\n};\nexport { Keys };\n","/**\n * @hidden\n */\nvar canUseDOM = Boolean(\n// from fbjs\ntypeof window !== 'undefined' &&\n window.document &&\n window.document.createElement);\nexport { canUseDOM };\n","/**\n * @hidden\n */\nexport function getDefaultSlots(component) {\n var defaultSlots = component.$slots.default;\n return (component.v3 && defaultSlots && typeof defaultSlots === 'function') ? defaultSlots() : defaultSlots;\n}\n","/**\n * @hidden\n */\nexport var cloneDate = function (date) { return date ? new Date(date.getTime()) : null; };\n/**\n * @hidden\n */\nexport function clone(obj) {\n var result = {};\n cloneObject(obj, result);\n return result;\n}\n/**\n * @hidden\n */\nexport function cloneObject(obj, result) {\n for (var field in obj) {\n if (obj.hasOwnProperty(field)) {\n var value = obj[field];\n result[field] = cloneValue(value, result[field]);\n }\n }\n}\n/**\n * @hidden\n */\nexport function cloneValue(value, nextValue) {\n if (Array.isArray(value)) {\n return cloneArray(value);\n }\n else if (value instanceof Date) {\n return cloneDate(value);\n }\n else if (value && typeof value === 'object') {\n var newNextValue = nextValue || {};\n cloneObject(value, newNextValue);\n return newNextValue;\n }\n else {\n return value;\n }\n}\n/**\n * @hidden\n */\nexport function cloneArray(array) {\n return array.map(function (value) { return cloneValue(value, undefined); });\n}\n","/**\n * @hidden\n */\nvar noop = function () { };\nexport { noop };\n","/**\n * @hidden\n */\nexport var FIELD_REGEX = /\\[(?:(\\d+)|['\"](.*?)['\"])\\]|((?:(?!\\[.*?\\]|\\.).)+)/g;\n","import { FIELD_REGEX } from './constants';\nvar getterCache = {};\ngetterCache.undefined = function () { return undefined; };\n/**\n * @hidden\n */\nexport function getter(field) {\n if (getterCache[field]) {\n return getterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n getterCache[field] = function (obj) {\n var result = obj;\n for (var idx = 0; idx < fields.length && result; idx++) {\n result = result[fields[idx]];\n }\n return result;\n };\n return getterCache[field];\n}\n","import { FIELD_REGEX } from './constants';\nvar setterCache = {};\nsetterCache.undefined = function (obj) { return obj; };\n/**\n * @hidden\n */\nexport function setter(field) {\n if (setterCache[field]) {\n return setterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n setterCache[field] = function (obj, value) {\n var root = obj;\n var depth = fields.length - 1;\n for (var idx = 0; idx < depth && root; idx++) {\n root = root[fields[idx]] = root[fields[idx]] || {};\n }\n root[fields[depth]] = value;\n };\n return setterCache[field];\n}\n","/**\n * @hidden\n */\nexport function hasListener(eventName) {\n if (this.v3) {\n return Object.keys(this.$attrs).map(function (name) { return name.toLowerCase(); })\n .some(function (event) { return event.endsWith(eventName.toLowerCase()); });\n }\n else {\n return this.$listeners[eventName];\n }\n}\n/**\n * @hidden\n */\nexport function getListeners() {\n if (this.v3) {\n var listeners = {};\n for (var key in (this.$attrs)) {\n if (key.startsWith('on')) {\n listeners[key] = this.$attrs[key];\n }\n }\n return listeners;\n }\n else {\n return this.$listeners;\n }\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\n/**\n * @hidden\n */\nexport function templateRendering(template, listeners) {\n if (!template) {\n return undefined;\n }\n var scopedSlot = gh ?\n this.$slots[template] ||\n (template.toLowerCase ? this.$slots[template.toLowerCase()]\n : null) :\n this.$scopedSlots[template] ||\n (template.toLowerCase ? this.$scopedSlots[template.toLowerCase()]\n : null);\n // @ts-ignore\n if (typeof template === 'string' && scopedSlot) {\n // @ts-ignore\n return { type: 'slot', render: scopedSlot, listeners: listeners };\n }\n if (typeof template === 'string' || typeof template === 'object' ||\n (typeof template === 'function' && template.component)) {\n return { type: 'component', render: template, listeners: listeners };\n }\n return { type: 'renderFunction', render: template, listeners: listeners };\n}\n/**\n * @hidden\n */\nexport function getTemplate(_a) {\n var h = _a.h, template = _a.template, defaultRendering = _a.defaultRendering, defaultSlots = _a.defaultSlots, additionalProps = _a.additionalProps, additionalListeners = _a.additionalListeners, swapDefaultSlots = _a.swapDefaultSlots;\n if (!template) {\n return defaultRendering;\n }\n var events;\n var props;\n var componentOptions;\n if (gh) {\n var passedProps = defaultRendering ? defaultRendering.props : {};\n events = __assign(__assign({}, transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, passedProps), additionalProps), events);\n componentOptions = __assign(__assign({}, props), events);\n }\n else {\n var hasComponentOptions = defaultRendering && defaultRendering.componentOptions;\n var defaultListeners = hasComponentOptions ?\n defaultRendering.componentOptions.listeners : {};\n var defaultProps = hasComponentOptions ?\n defaultRendering.componentOptions.propsData : {};\n events = __assign(__assign(__assign(__assign({}, defaultListeners), additionalListeners), transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, defaultProps), additionalProps), events);\n componentOptions = { props: props, on: events };\n }\n if (template.type === 'slot') {\n var slotTemplate = template.render({ props: props, listeners: events, methods: events,\n defaultSlots: defaultSlots });\n return slotTemplate ? slotTemplate[0] : undefined;\n }\n else if (template.type === 'renderFunction') {\n if (swapDefaultSlots) {\n return template.render(h, defaultRendering, defaultSlots, props, events);\n }\n return template.render(h, defaultRendering, props, events, defaultSlots);\n }\n else {\n return h(template.render, componentOptions, gh ? function () { return [defaultSlots]; } : [defaultSlots]);\n }\n}\n/**\n * @hidden\n */\nexport function transformListeners(listeners) {\n if (!listeners) {\n return listeners;\n }\n var newListeners = {};\n var listenersKeys = Object.keys(listeners);\n for (var i = 0; i < listenersKeys.length; i++) {\n var currentKey = listenersKeys[i];\n newListeners['on' + currentKey.charAt(0).toUpperCase() + currentKey.slice(1)] =\n listeners[currentKey];\n }\n return newListeners;\n}\n","import { canUseDOM } from './canUseDOM';\n/**\n * @hidden\n */\nexport function isRtl(element) {\n return Boolean(canUseDOM && element && getComputedStyle(element).direction === 'rtl');\n}\n/**\n * @hidden\n */\nexport function getDir(element, initialDir) {\n if (!initialDir && canUseDOM && element) {\n // Note: getComputedStyle forces reflow\n var rtlCandidate = window.getComputedStyle(element).direction;\n if (rtlCandidate) {\n // rerender is needed as DOM is read after first render\n return rtlCandidate;\n }\n }\n return initialDir;\n}\n","import * as licensing from '@progress/kendo-licensing';\n/**\n * @hidden\n */\nexport function validatePackage(packageMetadata) {\n if (typeof licensing !== 'undefined') {\n licensing.validatePackage(packageMetadata);\n }\n else {\n var message = \"License activation failed for \" + packageMetadata.name + \"\\n\";\n message += 'The @progress/kendo-licensing script is not loaded.\\n';\n message += \"See \" + packageMetadata.licensingDocsUrl + \" for more information.\\n\";\n console.warn(message);\n }\n}\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getDefaultSlots, noop } from '@progress/kendo-vue-common';\n/**\n * Represents the default `GridNav` component.\n */\n\nvar GridNav = {\n name: 'KendoGridNav',\n props: {\n currentData: Array\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n inject: {\n onNavKeyDown: {\n default: noop\n },\n onNavFocus: {\n default: noop\n },\n onNavMount: {\n default: noop\n },\n handleDispatchFocus: {\n default: noop\n },\n kbContext: {\n default: null\n },\n navigation: {\n default: null\n }\n },\n mounted: function mounted() {\n this.onNavMount({\n scope: this.$el || undefined\n });\n },\n updated: function updated() {\n this.onNavMount({\n scope: this.$el || undefined\n });\n },\n methods: {\n onKeyDown: function onKeyDown(event) {\n this.onNavKeyDown(event, {\n navigation: this.navigation,\n kbContext: this.kbContext,\n onNavigationAction: this.onNavigationAction\n }); // const {mode, cell} = getSelectionOptions(this.$props.selectable);\n\n this.$emit('keydown', {\n dataItems: this.getLeafDataItems(),\n // mode,\n // cell,\n componentId: this._gridId,\n selectedField: this.$props.selectedField,\n event: event\n }); // as GridNavigationActionEvent\n },\n onFocus: function onFocus(event) {\n this.onNavFocus(event, {\n kbContext: this.kbContext\n });\n },\n onNavigationAction: function onNavigationAction(options) {\n this.$emit('navigationaction', {\n focusElement: options.focusElement,\n event: options.event\n }); // as GridNavigationActionEvent\n },\n getLeafDataItems: function getLeafDataItems() {\n return this.$props.currentData.filter(function (item) {\n return item.rowType === 'data';\n }).map(function (item) {\n return item.dataItem;\n });\n }\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlots = getDefaultSlots(this);\n return h(\"div\", {\n onKeydown: this.onKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.onKeyDown,\n \"focusin\": this.onFocus\n },\n onFocusin: this.onFocus,\n \"data-keyboardnavscope\": true,\n attrs: this.v3 ? undefined : {\n \"data-keyboardnavscope\": true\n }\n }, [defaultSlots]);\n }\n};\nvar GridNavVue3 = GridNav;\nexport { GridNav, GridNavVue3 };","import { tableKeyboardNavigationTools as navigationTools } from '@progress/kendo-vue-data-tools';\nimport { canUseDOM } from '@progress/kendo-vue-common';\nvar STRING = 'string';\n/**\n * @hidden\n */\nexport function getNestedValue(fieldName, dataItem) {\n var path = fieldName.split('.');\n var data = dataItem;\n path.forEach(function (p) {\n data = data ? data[p] : undefined;\n });\n return data;\n}\n/**\n * @hidden\n */\nexport function flatData(output, input, footer, dataIndex, groupDefined, field, level) {\n if (level === void 0) { level = 0; }\n var maxLevel = level;\n for (var i = 0; i < input.length; i++) {\n if (!groupDefined || input[i].value === undefined || input[i].items === undefined) {\n output[output.length] = {\n dataIndex: ++dataIndex.index,\n dataItem: input[i],\n rowType: 'data',\n level: level,\n expanded: field === undefined || getNestedValue(field, input[i])\n };\n continue;\n }\n maxLevel = Math.max(maxLevel, level + 1);\n var expanded = field === undefined ||\n getNestedValue(field, input[i]) === undefined ||\n getNestedValue(field, input[i]);\n // header\n output[output.length] = {\n dataIndex: -1,\n dataItem: input[i],\n level: level,\n rowType: 'groupHeader',\n expanded: expanded\n };\n // children\n if (expanded) {\n maxLevel = Math.max(flatData(output, input[i].items, footer, dataIndex, groupDefined, field, level + 1), maxLevel);\n }\n // footer\n if (footer === 'always' || (expanded && footer === 'visible')) {\n output[output.length] = {\n dataIndex: -1,\n dataItem: input[i],\n rowType: 'groupFooter',\n level: level,\n expanded: expanded\n };\n }\n }\n return maxLevel;\n}\n/**\n * @hidden\n */\nexport function isRtl(element) {\n return element && (getComputedStyle(element).direction === 'rtl') || false;\n}\n/**\n * @hidden\n */\nexport function getIndex(event, parent) {\n if (!parent || !event || !event.originalEvent || !canUseDOM) {\n return -1;\n }\n var target = document.elementFromPoint(event.clientX, event.originalEvent.clientY);\n while (target && target.parentElement !== parent) {\n target = target.parentElement;\n }\n var children = parent.children;\n for (var i = 0; i < children.length; i++) {\n if (children[i] === target) {\n return i;\n }\n }\n return -1;\n}\nvar eventKeys = [\n 'sortChange',\n 'filterChange',\n 'groupChange',\n 'pageChange',\n 'expandChange',\n 'selectionChange',\n 'headerSelectionChange',\n 'rowClick',\n 'itemChange',\n 'dataStateChange',\n 'columnResize',\n 'columnReorder'\n];\nvar GridColumnDefaults = {\n filterable: true,\n editable: true,\n sortable: true,\n resizable: true,\n reorderable: true,\n groupable: true\n};\nvar deprecatedHandlerMessage = function (oldKey, newKey) { return (\"The \" + oldKey + \" event handler property is deprecated, \" +\n (\"use https://www.telerik.com/kendo-vue-ui/components/grid/api/GridProps/#toc-\" + newKey + \" instead\")); };\n/**\n * @hidden\n */\nexport function checkPropCompatibility(props) {\n for (var index = 0; index < eventKeys.length; index++) {\n var eventKey = eventKeys[index];\n if (props[eventKey] !== undefined) {\n var newKey = 'on' + eventKey.charAt(0).toUpperCase() + eventKey.slice(1);\n console.warn(deprecatedHandlerMessage(eventKey, newKey));\n }\n }\n}\nfunction nextColumn(columns, current) {\n var currentDepth = columns[current].depth;\n var next = null;\n for (var index = current + 1; index < columns.length; index++) {\n if (columns[index].depth === currentDepth) {\n next = columns[index];\n break;\n }\n }\n return next;\n}\n/**\n * @hidden\n */\nexport function mapColumns(columns) {\n var columnsMap = [[]];\n var maxDepth = 0;\n // set colspans, get maxdepth\n for (var q = columns.length - 1; q >= 0; q--) {\n maxDepth = Math.max(maxDepth, columns[q].depth);\n columns[q].colSpan = columns[q].colSpan || 1;\n if (columns[q].parentIndex !== -1) {\n columns[columns[q].parentIndex].colSpan =\n (columns[columns[q].parentIndex].colSpan || 0) + columns[q].colSpan;\n }\n }\n var rowSpan = 1;\n // set rowspan, kFirst, index AND create columnsMap\n columns.forEach(function (column, i) {\n columnsMap[column.depth] = columnsMap[column.depth] || [];\n var needKFirst = false;\n if (columnsMap[column.depth].length === 0) {\n if (rowSpan <= 1) {\n rowSpan = 1 + (column.children.length > 0 ? 0 : maxDepth - column.depth);\n }\n else {\n rowSpan--;\n needKFirst = true;\n }\n }\n column.rowSpan = 1 + (column.children.length > 0 ? 0 : maxDepth - column.depth);\n column.kFirst = needKFirst;\n column.index = columnsMap[column.depth].length;\n columnsMap[column.depth].push(i);\n });\n var stickyLeftWidth = new Array(columnsMap.length).fill(0);\n var width = 0;\n // set left AND create stickyLeftWidth\n columns.forEach(function (column) {\n if (column.locked) {\n column.left = stickyLeftWidth[column.depth];\n width = column.width ? parseFloat(column.width.toString()) : 0;\n if (column.children.length === 0) {\n for (var i = column.depth; i < stickyLeftWidth.length; i++) {\n stickyLeftWidth[i] += width;\n }\n }\n else {\n stickyLeftWidth[column.depth] += width;\n }\n }\n });\n var stickyRightWidth = new Array(columnsMap.length).fill(0);\n // set right, rightBorder AND create stickyRightWidth\n for (var i = columns.length - 1; i >= 0; i--) {\n var column = columns[i];\n if (column.locked) {\n column.right = stickyRightWidth[column.depth];\n width = column.width ? parseFloat(column.width.toString()) : 0;\n if (column.children.length === 0) {\n for (var j = column.depth; j < stickyRightWidth.length; j++) {\n stickyRightWidth[j] += width;\n }\n }\n else {\n stickyRightWidth[column.depth] += width;\n }\n var next = nextColumn(columns, i);\n column.rightBorder = !(next && next.locked);\n }\n }\n return columnsMap;\n}\n/**\n * @hidden\n */\nexport function readColumns(newColumns, oldColumns, idInfo, depth) {\n if (depth === void 0) { depth = 0; }\n var columns = [];\n var sameLength = (newColumns && newColumns.length) ? newColumns.length === oldColumns.length : false;\n if (!newColumns) {\n return [];\n }\n if (newColumns && newColumns.length === undefined) {\n newColumns = [newColumns];\n }\n // @ts-ignore\n newColumns.forEach(function (columnProps, index) {\n columnProps = columnProps;\n var oldColumn = sameLength ? oldColumns[index] || null : null;\n var notHiddenChildren = columnProps.children ?\n columnProps.children.filter(function (column) { return !column.hidden; }) : columnProps.children;\n var c = readColumns(notHiddenChildren, oldColumn && oldColumn.children || [], idInfo, depth + 1);\n columns.push(Object.assign({ depth: depth }, GridColumnDefaults, (c.length) ? { cell: function () { return null; }, filterCell: function () { return null; } } : {}, oldColumn ? { width: oldColumn.width, orderIndex: oldColumn.orderIndex } : {}, columnProps, {\n id: navigationTools.generateNavigatableId(\"\" + idInfo.prevId++, idInfo.idPrefix, 'column'),\n declarationIndex: columns.length,\n children: c,\n rowSpan: 0,\n colSpan: 0,\n isAccessible: true\n }));\n });\n var comparator = function (a, b) {\n return a.orderIndex === b.orderIndex ?\n a.declarationIndex - b.declarationIndex :\n ((a.orderIndex || 0) - (b.orderIndex || 0));\n };\n columns.sort(comparator);\n if (depth === 0) {\n var ret_1 = [];\n var flat_1 = function (cols, pIndex) {\n return cols.forEach(function (c) {\n c.parentIndex = pIndex;\n flat_1(c.children, ret_1.push(c) - 1);\n });\n };\n flat_1(columns, -1);\n return ret_1;\n }\n return columns;\n}\n/**\n * @hidden\n */\nexport function autoGenerateColumns(data, group, expandField, idInfo) {\n var propData = [];\n if (Array.isArray(data)) {\n propData = data;\n }\n else if (data) {\n propData = data.data;\n }\n if (!propData.length) {\n console.warn('Kendo Grid autogeneration of columns is only possible if some items are defined when the component is created.');\n }\n var columns = [];\n if (propData.length > 0) {\n var itemForColumnsGen = propData[0];\n if (group) {\n for (var i = 0; i < group.length; i++) {\n itemForColumnsGen = itemForColumnsGen.items && itemForColumnsGen.items[0];\n }\n }\n var fields = Object.getOwnPropertyNames(itemForColumnsGen);\n fields.forEach(function (field) {\n if (field !== expandField && field !== '__ob__') {\n columns.push(Object.assign({\n id: navigationTools.generateNavigatableId(\"\" + idInfo.prevId++, idInfo.idPrefix, 'column'),\n declarationIndex: -1,\n parentIndex: -1,\n depth: 0,\n colSpan: 0,\n rowSpan: 0,\n index: 0,\n left: 0,\n right: 0,\n children: [],\n rightBorder: false,\n ariaColumnIndex: 0,\n isAccessible: true\n }, GridColumnDefaults, { field: field }));\n }\n });\n }\n return columns;\n}\nvar hasParentFooterCell = function (columns, column) {\n var parent = columns[column.parentIndex];\n while (parent) {\n if (parent.footerCell) {\n return true;\n }\n parent = columns[parent.parentIndex];\n }\n return false;\n};\n/**\n * @hidden\n */\nexport var footerColumns = function (columns) {\n return columns.filter(function (column) {\n if (hasParentFooterCell(columns, column)) {\n return false;\n }\n return Boolean(column.footerCell) || !(column.children && column.children.length > 0);\n });\n};\n/**\n * @hidden\n */\nexport var parsers = {\n 'number': function (value, intl, format) {\n if (typeof value === STRING && value.toLowerCase() === 'null') {\n return null;\n }\n return intl.parseNumber(value, format);\n },\n 'date': function (value, intl, format) {\n if (typeof value === STRING && value.toLowerCase() === 'null') {\n return null;\n }\n return intl.parseDate(value, format);\n },\n 'boolean': function (value) {\n if (typeof value === STRING) {\n if (value.toLowerCase() === 'null') {\n return null;\n }\n else {\n return value.toLowerCase() === 'true';\n }\n }\n return value != null ? !!value : value;\n },\n 'string': function (value) {\n if (typeof value === STRING && value.toLowerCase() === 'null') {\n return null;\n }\n return value != null ? (value + '') : value;\n },\n 'default': function (value) {\n return value;\n }\n};\n","var _a;\n/**\n * @hidden\n */\nexport var noRecords = 'grid.noRecords';\n/**\n * @hidden\n */\nexport var pagerInfo = 'grid.pagerInfo';\n/**\n * @hidden\n */\nexport var pagerFirstPage = 'grid.pagerFirstPage';\n/**\n * @hidden\n */\nexport var pagerPreviousPage = 'grid.pagerPreviousPage';\n/**\n * @hidden\n */\nexport var pagerNextPage = 'grid.pagerNextPage';\n/**\n * @hidden\n */\nexport var pagerLastPage = 'grid.pagerLastPage';\n/**\n * @hidden\n */\nexport var pagerItemPerPage = 'grid.pagerItemsPerPage';\n/**\n * @hidden\n */\nexport var pagerPage = 'grid.pagerPage';\n/**\n * @hidden\n */\nexport var pagerOf = 'grid.pagerOf';\n/**\n * @hidden\n */\nexport var pagerTotalPages = 'grid.pagerTotalPages';\n/**\n * @hidden\n */\nexport var groupPanelEmpty = 'grid.groupPanelEmpty';\n/**\n * @hidden\n */\nexport var columnMenu = 'grid.columnMenu';\n/**\n * @hidden\n */\nexport var filterClearButton = 'grid.filterClearButton';\n/**\n * @hidden\n */\nexport var filterSubmitButton = 'grid.filterSubmitButton';\n/**\n * @hidden\n */\nexport var filterTitle = 'grid.filterTitle';\n/**\n * @hidden\n */\nexport var sortAscending = 'grid.sortAscending';\n/**\n * @hidden\n */\nexport var sortDescending = 'grid.sortDescending';\n/**\n * @hidden\n */\nexport var searchPlaceholder = 'grid.searchPlaceholder';\n/**\n * @hidden\n */\nexport var filterCheckAll = 'grid.filterCheckAll';\n/**\n * @hidden\n */\nexport var filterChooseOperator = 'grid.filterChooseOperator';\n/**\n * @hidden\n */\nexport var filterSelectedItems = 'grid.filterSelectedItems';\n/**\n * @hidden\n */\nexport var sortAriaLabel = 'grid.sortAriaLabel';\n/**\n * @hidden\n */\nexport var filterAriaLabel = 'grid.filterAriaLabel';\n/**\n * @hidden\n */\nexport var messages = (_a = {},\n _a[noRecords] = 'No records available',\n _a[groupPanelEmpty] = 'Drag a column header and drop it here to group by that column',\n _a[columnMenu] = 'Column Menu',\n _a[filterClearButton] = 'Clear',\n _a[filterSubmitButton] = 'Filter',\n _a[filterTitle] = 'Filter',\n _a[sortAscending] = 'Sort Ascending',\n _a[sortDescending] = 'Sort Descending',\n _a[pagerItemPerPage] = 'items per page',\n _a[pagerInfo] = '{0} - {1} of {2} items',\n _a[pagerFirstPage] = 'Go to the first page',\n _a[pagerPreviousPage] = 'Go to the previous page',\n _a[pagerNextPage] = 'Go to the next page',\n _a[pagerLastPage] = 'Go to the last page',\n _a[pagerPage] = 'Page',\n _a[pagerOf] = 'of',\n _a[pagerTotalPages] = '{0}',\n _a[searchPlaceholder] = 'Search',\n _a[filterCheckAll] = 'Check All',\n _a[filterChooseOperator] = 'Choose Operator',\n _a[filterSelectedItems] = 'selected items',\n _a[sortAriaLabel] = 'Sortable',\n _a[filterAriaLabel] = 'Filter',\n _a['grid.filterEqOperator'] = 'Is equal to',\n _a['grid.filterNotEqOperator'] = 'Is not equal to',\n _a['grid.filterIsNullOperator'] = 'Is null',\n _a['grid.filterIsNotNullOperator'] = 'Is not null',\n _a['grid.filterIsEmptyOperator'] = 'Is empty',\n _a['grid.filterIsNotEmptyOperator'] = 'Is not empty',\n _a['grid.filterStartsWithOperator'] = 'Starts with',\n _a['grid.filterContainsOperator'] = 'Contains',\n _a['grid.filterNotContainsOperator'] = 'Does not contain',\n _a['grid.filterEndsWithOperator'] = 'Ends with',\n _a['grid.filterGteOperator'] = 'Is greater than or equal to',\n _a['grid.filterGtOperator'] = 'Is greater than',\n _a['grid.filterLteOperator'] = 'Is less than or equal to',\n _a['grid.filterLtOperator'] = 'Is less than',\n _a['grid.filterIsTrue'] = 'Is true',\n _a['grid.filterIsFalse'] = 'Is false',\n _a['grid.filterBooleanAll'] = '(All)',\n _a['grid.filterAfterOrEqualOperator'] = 'Is after or equal to',\n _a['grid.filterAfterOperator'] = 'Is after',\n _a['grid.filterBeforeOperator'] = 'Is before',\n _a['grid.filterBeforeOrEqualOperator'] = 'Is before or equal to',\n _a['grid.filterAndLogic'] = 'And',\n _a['grid.filterOrLogic'] = 'Or',\n _a);\n/**\n * @hidden\n */\nexport function pagerMessagesMap(pagerMessageKey) {\n var messageKey = pagerMessageKey.replace(/^pager\\.([a-z])/, function (_match, group) { return 'grid.pager' + group.toUpperCase(); });\n return ({ messageKey: messageKey, defaultMessage: messages[messageKey] });\n}\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getNestedValue } from './../utils';\nimport { guid, getTemplate, noop } from '@progress/kendo-vue-common';\nimport { KEYBOARD_NAV_DATA_ID, KEYBOARD_NAV_DATA_LEVEL } from '@progress/kendo-vue-data-tools';\n/**\n * Represents the default `GridSelectionCell` component.\n */\n\nvar GridSelectionCell = {\n props: {\n id: String,\n field: String,\n dataItem: Object,\n format: String,\n type: String,\n className: String,\n colSpan: Number,\n columnIndex: Number,\n columnsCount: Number,\n rowType: String,\n level: Number,\n expanded: Boolean,\n render: [String, Function, Object],\n isSelected: Boolean,\n ariaColumnIndex: Number,\n editor: String\n },\n // @ts-ignore\n emits: {\n selectionchange: null,\n cellkeydown: null\n },\n inject: {\n kendoIntlService: {\n default: null\n },\n getKeyboardNavigationAttributes: {\n default: noop\n }\n },\n data: function data() {\n return {\n inputId: guid()\n };\n },\n methods: {\n triggerKeydown: function triggerKeydown(e) {\n this.$emit('cellkeydown', {\n event: e,\n dataItem: this.$props.dataItem,\n field: this.$props.field\n });\n },\n handleOnChange: function handleOnChange(event) {\n this.$emit('selectionchange', {\n event: event,\n dataItem: this.$props.dataItem\n });\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var data = getNestedValue(this.$props.field, this.$props.dataItem);\n var renderTemplate = this.$props.render;\n var navAttrs = this.getKeyboardNavigationAttributes(this.$props.id);\n var defaultRendering = this.$props.rowType !== 'groupHeader' ? h(\"td\", {\n onKeydown: this.triggerKeydown,\n on: this.v3 ? undefined : {\n \"keydown\": this.triggerKeydown\n },\n colSpan: this.$props.colSpan,\n attrs: this.v3 ? undefined : {\n colSpan: this.$props.colSpan,\n \"aria-colindex\": this.$props.ariaColumnIndex,\n role: 'gridcell',\n tabIndex: navAttrs.tabIndex,\n \"data-keyboardnavlevel\": navAttrs[KEYBOARD_NAV_DATA_LEVEL],\n \"data-keyboardnavid\": navAttrs[KEYBOARD_NAV_DATA_ID]\n },\n \"class\": this.$props.className,\n \"aria-colindex\": this.$props.ariaColumnIndex,\n role: 'gridcell',\n tabIndex: navAttrs.tabIndex,\n \"data-keyboardnavlevel\": navAttrs[KEYBOARD_NAV_DATA_LEVEL],\n \"data-keyboardnavid\": navAttrs[KEYBOARD_NAV_DATA_ID]\n }, [h(\"input\", {\n checked: this.v3 ? data : null,\n domProps: this.v3 ? undefined : {\n \"checked\": data\n },\n id: this.inputId,\n attrs: this.v3 ? undefined : {\n id: this.inputId,\n type: \"checkbox\"\n },\n type: \"checkbox\",\n \"class\": \"k-checkbox\",\n onChange: this.handleOnChange,\n on: this.v3 ? undefined : {\n \"change\": this.handleOnChange\n }\n }), h(\"label\", {\n \"class\": \"k-checkbox-label\",\n \"for\": this.inputId,\n attrs: this.v3 ? undefined : {\n \"for\": this.inputId\n }\n })]) : null;\n return getTemplate.call(this, {\n h: h,\n template: renderTemplate,\n defaultRendering: defaultRendering,\n additionalProps: this.$props,\n additionalListeners: {\n keydown: this.triggerKeydown,\n change: this.handleOnChange\n }\n });\n }\n};\nvar GridSelectionCellVue3 = GridSelectionCell;\nexport { GridSelectionCell, GridSelectionCellVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getNestedValue } from './../utils';\nimport { getTemplate, Keys, noop } from '@progress/kendo-vue-common';\nimport { KEYBOARD_NAV_DATA_ID, KEYBOARD_NAV_DATA_LEVEL } from '@progress/kendo-vue-data-tools';\n/**\n * Represents the default `GridHierarchyCell` component.\n */\n\nvar GridHierarchyCell = {\n props: {\n id: String,\n field: String,\n dataItem: Object,\n format: String,\n type: String,\n className: String,\n colSpan: Number,\n columnIndex: Number,\n columnsCount: Number,\n rowType: String,\n level: Number,\n expanded: Boolean,\n editor: String,\n isSelected: Boolean,\n dataIndex: Number,\n ariaColumnIndex: Number,\n render: [String, Function, Object]\n },\n // @ts-ignore\n emits: {\n change: null,\n cellkeydown: null\n },\n inject: {\n kendoIntlService: {\n default: null\n },\n getKeyboardNavigationAttributes: {\n default: noop\n }\n },\n methods: {\n triggerKeydown: function triggerKeydown(event, expanded) {\n this.$emit('cellkeydown', {\n event: event,\n dataItem: this.$props.dataItem,\n field: this.$props.field,\n expanded: expanded\n });\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (event.keyCode === Keys.enter) {\n event.preventDefault();\n this.$emit('change', {\n dataItem: this.$props.dataItem,\n dataIndex: this.$props.dataIndex,\n event: event,\n field: this.$props.field,\n value: !expanded\n });\n }\n },\n clickHandler: function clickHandler(e, dataItem, expanded) {\n e.preventDefault();\n this.$emit('change', {\n dataItem: dataItem,\n event: e,\n field: undefined,\n value: !expanded\n });\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var defaultRendering = null;\n var navAttrs = this.getKeyboardNavigationAttributes(this.$props.id);\n\n if (this.$props.rowType === 'groupFooter') {\n defaultRendering = h(\"td\", {\n \"class\": \"k-hierarchy-cell\"\n });\n } else if (this.$props.rowType !== 'groupHeader') {\n var expanded_1 = getNestedValue(this.$props.field, this.$props.dataItem);\n var className = expanded_1 ? 'k-icon k-i-minus' : 'k-icon k-i-plus';\n defaultRendering = h(\"td\", {\n onKeydown: function onKeydown(ev) {\n _this.triggerKeydown(ev, expanded_1);\n },\n on: this.v3 ? undefined : {\n \"keydown\": function onKeydown(ev) {\n _this.triggerKeydown(ev, expanded_1);\n }\n },\n \"class\": \"k-hierarchy-cell\",\n \"aria-expanded\": expanded_1 ? 'true' : 'false',\n attrs: this.v3 ? undefined : {\n \"aria-expanded\": expanded_1 ? 'true' : 'false',\n role: 'gridcell',\n \"aria-colindex\": this.$props.ariaColumnIndex,\n tabIndex: navAttrs.tabIndex,\n \"data-keyboardnavlevel\": navAttrs[KEYBOARD_NAV_DATA_LEVEL],\n \"data-keyboardnavid\": navAttrs[KEYBOARD_NAV_DATA_ID]\n },\n role: 'gridcell',\n \"aria-colindex\": this.$props.ariaColumnIndex,\n tabIndex: navAttrs.tabIndex,\n \"data-keyboardnavlevel\": navAttrs[KEYBOARD_NAV_DATA_LEVEL],\n \"data-keyboardnavid\": navAttrs[KEYBOARD_NAV_DATA_ID]\n }, [h(\"a\", {\n onClick: function onClick(e) {\n _this.clickHandler(e, _this.$props.dataItem, expanded_1);\n },\n on: this.v3 ? undefined : {\n \"click\": function onClick(e) {\n _this.clickHandler(e, _this.$props.dataItem, expanded_1);\n }\n },\n \"class\": className,\n href: \"#\",\n attrs: this.v3 ? undefined : {\n href: \"#\",\n tabIndex: -1\n },\n tabIndex: -1\n })]);\n }\n\n return getTemplate.call(this, {\n h: h,\n template: this.$props.render,\n defaultRendering: defaultRendering,\n additionalProps: this.$props,\n additionalListeners: {\n keydown: this.triggerKeydown,\n click: this.clickHandler\n }\n });\n }\n};\nvar GridHierarchyCellVue3 = GridHierarchyCell;\nexport { GridHierarchyCell, GridHierarchyCellVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar inject = allVue.inject;\nimport { KEYBOARD_NAV_DATA_ID, KEYBOARD_NAV_DATA_LEVEL } from '@progress/kendo-vue-data-tools';\nimport { noop } from '@progress/kendo-vue-common';\n/**\n * Represents the default `GridDetailHierarchyCell` component.\n */\n\nvar GridDetailHierarchyCell = {\n props: {\n id: String\n },\n inject: {\n getKeyboardNavigationAttributes: {\n default: noop\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoIntlService = inject('kendoIntlService', {});\n return {\n v3: v3,\n kendoIntlService: kendoIntlService\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var navAttrs = this.getKeyboardNavigationAttributes(this.$props.id);\n return h(\"td\", {\n \"class\": \"k-hierarchy-cell\",\n tabIndex: navAttrs.tabIndex,\n attrs: this.v3 ? undefined : {\n tabIndex: navAttrs.tabIndex,\n \"data-keyboardnavlevel\": navAttrs[KEYBOARD_NAV_DATA_LEVEL],\n \"data-keyboardnavid\": navAttrs[KEYBOARD_NAV_DATA_ID]\n },\n \"data-keyboardnavlevel\": navAttrs[KEYBOARD_NAV_DATA_LEVEL],\n \"data-keyboardnavid\": navAttrs[KEYBOARD_NAV_DATA_ID]\n });\n }\n};\nvar GridDetailHierarchyCellVue3 = GridDetailHierarchyCell;\nexport { GridDetailHierarchyCell, GridDetailHierarchyCellVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar inject = allVue.inject;\nimport { getTemplate, noop } from '@progress/kendo-vue-common';\nimport { KEYBOARD_NAV_DATA_ID, KEYBOARD_NAV_DATA_LEVEL } from '@progress/kendo-vue-data-tools';\n/**\n * Represents the default `GridDetailCell` component.\n */\n\nvar GridDetailCell = {\n props: {\n colSpan: Number,\n ariaColIndex: Number,\n dataItem: [Object, String, Number],\n dataIndex: Number,\n detail: [String, Function, Object],\n id: String\n },\n inject: {\n getKeyboardNavigationAttributes: {\n default: noop\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoIntlService = inject('kendoIntlService', {});\n return {\n v3: v3,\n kendoIntlService: kendoIntlService\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n colSpan = _a.colSpan,\n ariaColIndex = _a.ariaColIndex,\n dataItem = _a.dataItem,\n dataIndex = _a.dataIndex,\n id = _a.id;\n var navAttrs = this.getKeyboardNavigationAttributes(id);\n\n var detailRender = function detailRender(args) {\n return getTemplate.call(this, {\n h: h,\n template: this.$props.detail,\n additionalProps: args\n });\n };\n\n return h(\"td\", {\n \"class\": \"k-detail-cell\",\n colSpan: colSpan,\n attrs: this.v3 ? undefined : {\n colSpan: colSpan,\n \"aria-colindex\": ariaColIndex,\n role: 'gridcell',\n tabIndex: navAttrs.tabIndex,\n \"data-keyboardnavlevel\": navAttrs[KEYBOARD_NAV_DATA_LEVEL],\n \"data-keyboardnavid\": navAttrs[KEYBOARD_NAV_DATA_ID]\n },\n \"aria-colindex\": ariaColIndex,\n role: 'gridcell',\n tabIndex: navAttrs.tabIndex,\n \"data-keyboardnavlevel\": navAttrs[KEYBOARD_NAV_DATA_LEVEL],\n \"data-keyboardnavid\": navAttrs[KEYBOARD_NAV_DATA_ID]\n }, [detailRender.call(this, {\n dataItem: dataItem,\n dataIndex: dataIndex\n })]);\n }\n};\nvar GridDetailCellVue3 = GridDetailCell;\nexport { GridDetailCell, GridDetailCellVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar inject = allVue.inject;\nimport { getNestedValue } from './../utils';\nimport { guid, getTemplate, noop } from '@progress/kendo-vue-common';\nimport { NumericTextBox } from '@progress/kendo-vue-inputs';\nimport { DatePicker } from '@progress/kendo-vue-dateinputs';\nimport { KEYBOARD_NAV_DATA_ID, KEYBOARD_NAV_DATA_LEVEL } from '@progress/kendo-vue-data-tools';\n/**\n * Represents the default `GridEditCell` component.\n */\n\nvar GridEditCell = {\n props: {\n id: String,\n field: String,\n dataItem: Object,\n format: String,\n type: String,\n className: String,\n colSpan: Number,\n columnIndex: Number,\n columnsCount: Number,\n rowType: String,\n level: Number,\n expanded: Boolean,\n editor: String,\n isSelected: Boolean,\n ariaColumnIndex: Number,\n render: [String, Function, Object]\n },\n // @ts-ignore\n emits: {\n change: null,\n cellkeydown: null,\n edit: null,\n add: null,\n cancel: null,\n save: null,\n remove: null\n },\n inject: {\n kendoIntlService: {\n default: null\n },\n getKeyboardNavigationAttributes: {\n default: noop\n }\n },\n data: function data() {\n return {\n inputId: guid()\n };\n },\n methods: {\n triggerKeydown: function triggerKeydown(e) {\n this.$emit('cellkeydown', {\n event: e,\n dataItem: this.$props.dataItem,\n field: this.$props.field\n });\n },\n triggerEdit: function triggerEdit(dataItem) {\n this.$emit('edit', dataItem);\n },\n triggerAdd: function triggerAdd(dataItem) {\n this.$emit('add', dataItem);\n },\n triggerCancel: function triggerCancel(dataItem) {\n this.$emit('cancel', dataItem);\n },\n triggerSave: function triggerSave(dataItem) {\n this.$emit('save', dataItem);\n },\n triggerRemove: function triggerRemove(dataItem) {\n this.$emit('remove', dataItem);\n },\n changeHandler: function changeHandler(event, value) {\n if (!value) {\n if (event.target.type === 'checkbox') {\n value = event.target.checked;\n } else {\n value = event.target.valueAsDate ? event.target.valueAsDate : event.target.value;\n }\n }\n\n this.$emit('change', {\n dataItem: this.$props.dataItem,\n field: this.$props.field,\n event: event,\n value: value\n });\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoIntlService = inject('kendoIntlService', {});\n return {\n v3: v3,\n kendoIntlService: kendoIntlService\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var data = getNestedValue(this.$props.field, this.$props.dataItem);\n var navAttrs = this.getKeyboardNavigationAttributes(this.$props.id);\n var defaultRendering = null;\n\n switch (this.$props.editor) {\n case 'numeric':\n defaultRendering = h(\"td\", {\n onKeydown: this.triggerKeydown,\n on: this.v3 ? undefined : {\n \"keydown\": this.triggerKeydown\n },\n colSpan: this.$props.colSpan,\n attrs: this.v3 ? undefined : {\n colSpan: this.$props.colSpan,\n role: 'gridcell',\n \"aria-colindex\": this.$props.ariaColumnIndex,\n \"aria-selected\": this.$props.isSelected,\n \"data-grid-col-index\": this.$props.columnIndex,\n tabIndex: navAttrs.tabIndex,\n \"data-keyboardnavlevel\": navAttrs[KEYBOARD_NAV_DATA_LEVEL],\n \"data-keyboardnavid\": navAttrs[KEYBOARD_NAV_DATA_ID]\n },\n \"class\": this.$props.className,\n role: 'gridcell',\n \"aria-colindex\": this.$props.ariaColumnIndex,\n \"aria-selected\": this.$props.isSelected,\n \"data-grid-col-index\": this.$props.columnIndex,\n tabIndex: navAttrs.tabIndex,\n \"data-keyboardnavlevel\": navAttrs[KEYBOARD_NAV_DATA_LEVEL],\n \"data-keyboardnavid\": navAttrs[KEYBOARD_NAV_DATA_ID]\n }, [// @ts-ignore\n h(NumericTextBox, {\n style: {\n width: '100%'\n },\n value: data === undefined ? null : data,\n attrs: this.v3 ? undefined : {\n value: data === undefined ? null : data\n },\n onChange: this.changeHandler,\n on: this.v3 ? undefined : {\n \"change\": this.changeHandler\n }\n })]);\n break;\n\n case 'date':\n defaultRendering = h(\"td\", {\n onKeydown: this.triggerKeydown,\n on: this.v3 ? undefined : {\n \"keydown\": this.triggerKeydown\n },\n colSpan: this.$props.colSpan,\n attrs: this.v3 ? undefined : {\n colSpan: this.$props.colSpan,\n role: 'gridcell',\n \"aria-colindex\": this.$props.ariaColumnIndex,\n \"aria-selected\": this.$props.isSelected,\n \"data-grid-col-index\": this.$props.columnIndex,\n tabIndex: navAttrs.tabIndex,\n \"data-keyboardnavlevel\": navAttrs[KEYBOARD_NAV_DATA_LEVEL],\n \"data-keyboardnavid\": navAttrs[KEYBOARD_NAV_DATA_ID]\n },\n \"class\": this.$props.className,\n role: 'gridcell',\n \"aria-colindex\": this.$props.ariaColumnIndex,\n \"aria-selected\": this.$props.isSelected,\n \"data-grid-col-index\": this.$props.columnIndex,\n tabIndex: navAttrs.tabIndex,\n \"data-keyboardnavlevel\": navAttrs[KEYBOARD_NAV_DATA_LEVEL],\n \"data-keyboardnavid\": navAttrs[KEYBOARD_NAV_DATA_ID]\n }, [// @ts-ignore\n h(DatePicker, {\n style: {\n width: '100%'\n },\n value: data,\n attrs: this.v3 ? undefined : {\n value: data\n },\n onChange: this.changeHandler,\n on: this.v3 ? undefined : {\n \"change\": this.changeHandler\n }\n })]);\n break;\n\n case 'boolean':\n defaultRendering = h(\"td\", {\n onKeydown: this.triggerKeydown,\n on: this.v3 ? undefined : {\n \"keydown\": this.triggerKeydown\n },\n colSpan: this.$props.colSpan,\n attrs: this.v3 ? undefined : {\n colSpan: this.$props.colSpan,\n role: 'gridcell',\n \"aria-colindex\": this.$props.ariaColumnIndex,\n \"aria-selected\": this.$props.isSelected,\n \"data-grid-col-index\": this.$props.columnIndex,\n tabIndex: navAttrs.tabIndex,\n \"data-keyboardnavlevel\": navAttrs[KEYBOARD_NAV_DATA_LEVEL],\n \"data-keyboardnavid\": navAttrs[KEYBOARD_NAV_DATA_ID]\n },\n \"class\": this.$props.className,\n role: 'gridcell',\n \"aria-colindex\": this.$props.ariaColumnIndex,\n \"aria-selected\": this.$props.isSelected,\n \"data-grid-col-index\": this.$props.columnIndex,\n tabIndex: navAttrs.tabIndex,\n \"data-keyboardnavlevel\": navAttrs[KEYBOARD_NAV_DATA_LEVEL],\n \"data-keyboardnavid\": navAttrs[KEYBOARD_NAV_DATA_ID]\n }, [h(\"input\", {\n checked: this.v3 ? data || false : null,\n domProps: this.v3 ? undefined : {\n \"checked\": data || false\n },\n id: this.inputId,\n attrs: this.v3 ? undefined : {\n id: this.inputId,\n type: \"checkbox\"\n },\n type: \"checkbox\",\n \"class\": \"k-checkbox\",\n onChange: this.changeHandler,\n on: this.v3 ? undefined : {\n \"change\": this.changeHandler\n }\n }), h(\"label\", {\n \"class\": \"k-checkbox-label\",\n \"for\": this.inputId,\n attrs: this.v3 ? undefined : {\n \"for\": this.inputId\n }\n })]);\n break;\n\n default:\n defaultRendering = h(\"td\", {\n onKeydown: this.triggerKeydown,\n on: this.v3 ? undefined : {\n \"keydown\": this.triggerKeydown\n },\n colSpan: this.$props.colSpan,\n attrs: this.v3 ? undefined : {\n colSpan: this.$props.colSpan,\n role: 'gridcell',\n \"aria-colindex\": this.$props.ariaColumnIndex,\n \"aria-selected\": this.$props.isSelected,\n \"data-grid-col-index\": this.$props.columnIndex,\n tabIndex: navAttrs.tabIndex,\n \"data-keyboardnavlevel\": navAttrs[KEYBOARD_NAV_DATA_LEVEL],\n \"data-keyboardnavid\": navAttrs[KEYBOARD_NAV_DATA_ID]\n },\n \"class\": this.$props.className,\n role: 'gridcell',\n \"aria-colindex\": this.$props.ariaColumnIndex,\n \"aria-selected\": this.$props.isSelected,\n \"data-grid-col-index\": this.$props.columnIndex,\n tabIndex: navAttrs.tabIndex,\n \"data-keyboardnavlevel\": navAttrs[KEYBOARD_NAV_DATA_LEVEL],\n \"data-keyboardnavid\": navAttrs[KEYBOARD_NAV_DATA_ID]\n }, [h(\"input\", {\n style: {\n width: '100%'\n },\n \"class\": \"k-textbox\",\n value: this.v3 ? data !== null && data !== void 0 ? data : '' : null,\n domProps: this.v3 ? undefined : {\n \"value\": data !== null && data !== void 0 ? data : ''\n },\n onChange: this.changeHandler,\n on: this.v3 ? undefined : {\n \"change\": this.changeHandler\n }\n })]);\n }\n\n return getTemplate.call(this, {\n h: h,\n template: this.$props.render,\n defaultRendering: defaultRendering,\n additionalProps: this.$props,\n additionalListeners: {\n change: this.changeHandler,\n keydown: this.triggerKeydown,\n edit: this.triggerEdit,\n add: this.triggerAdd,\n cancel: this.triggerCancel,\n save: this.triggerSave,\n remove: this.triggerRemove\n }\n });\n }\n};\nvar GridEditCellVue3 = GridEditCell;\nexport { GridEditCell, GridEditCellVue3 };","var getDocument = function () { return typeof document !== 'undefined' ? document : {}; };\n/**\n * @hidden\n */\nvar BrowserSupportService = /** @class */ (function () {\n function BrowserSupportService() {\n }\n Object.defineProperty(BrowserSupportService.prototype, \"scrollbarWidth\", {\n get: function () {\n var document = getDocument();\n if (!this.scrollbar && document && document.createElement) {\n var div = document.createElement('div');\n div.style.cssText = 'overflow:scroll;overflow-x:hidden;zoom:1;clear:both;display:block';\n div.innerHTML = ' ';\n document.body.appendChild(div);\n this.scrollbar = div.offsetWidth - div.scrollWidth;\n document.body.removeChild(div);\n }\n return this.scrollbar;\n },\n enumerable: false,\n configurable: true\n });\n return BrowserSupportService;\n}());\nexport { BrowserSupportService };\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nimport { BrowserSupportService } from '../utils/browser-support.service';\nimport { isRtl } from '../utils';\n/**\n * Represents the default `Header` component.\n */\n\nvar Header = {\n props: {\n staticHeaders: Boolean,\n headerRow: Object,\n columnResize: Object,\n cols: Array,\n draggable: Boolean\n },\n data: function data() {\n return {\n divStyle: {},\n element: null,\n headerWrap: null,\n table: null\n };\n },\n computed: {\n wrapperClass: function wrapperClass() {\n return {\n 'k-grid-header': true,\n 'k-grid-draggable-header': this.$props.draggable\n };\n }\n },\n mounted: function mounted() {\n this.headerWrap = this.v3 ? this.headerWrapRef : this.$refs.headerWrap;\n this.table = this.v3 ? this.tableRef : this.$refs.table;\n this.$props.columnResize.colGroupHeader = this.v3 ? this.colGroupHeaderRef : this.$refs.colGroupHeader;\n var scrollbarWidth = new BrowserSupportService().scrollbarWidth;\n var rtl = isRtl(this.$el);\n\n if (this.$props.columnResize) {\n this.$props.columnResize.setIsRtl(rtl);\n }\n\n var padding = Math.max(0, scrollbarWidth - 1) + 'px';\n var right = rtl ? 0 : padding;\n var left = rtl ? padding : 0;\n this.divStyle = {\n padding: \"0 \" + right + \" 0 \" + left\n };\n },\n methods: {\n setScrollLeft: function setScrollLeft(scrollLeft) {\n if (this.headerWrap) {\n this.headerWrap.scrollLeft = scrollLeft;\n }\n },\n setWidth: function setWidth(width) {\n if (this.table) {\n this.table.style.width = width + 'px';\n }\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var headerWrapRef = ref(null);\n var tableRef = ref(null);\n var colGroupHeaderRef = ref(null);\n return {\n v3: v3,\n headerWrapRef: headerWrapRef,\n tableRef: tableRef,\n colGroupHeaderRef: colGroupHeaderRef\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n\n if (!this.$props.staticHeaders) {\n return this.$props.headerRow;\n }\n\n return h(\"div\", {\n \"class\": this.wrapperClass,\n style: this.divStyle,\n role: \"presentation\",\n attrs: this.v3 ? undefined : {\n role: \"presentation\"\n }\n }, [h(\"div\", {\n ref: this.v3 ? function (el) {\n _this.headerWrapRef = el;\n } : 'headerWrap',\n \"class\": \"k-grid-header-wrap\",\n role: \"presentation\",\n attrs: this.v3 ? undefined : {\n role: \"presentation\"\n }\n }, [h(\"table\", {\n ref: this.v3 ? function (el) {\n _this.tableRef = el;\n } : 'table',\n role: \"presentation\",\n attrs: this.v3 ? undefined : {\n role: \"presentation\"\n }\n }, [h(\"colgroup\", {\n role: \"presentation\",\n attrs: this.v3 ? undefined : {\n role: \"presentation\"\n },\n ref: this.v3 ? function (el) {\n _this.colGroupHeaderRef = el;\n } : 'colGroupHeader'\n }, [this.$props.cols]), this.$props.headerRow])])]);\n }\n};\nvar HeaderVue3 = Header;\nexport { Header, HeaderVue3 };","var __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\n/**\n * @hidden\n */\nexport var normalize = function () {\n var _a;\n var settings = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n settings[_i] = arguments[_i];\n }\n return (_a = Object).assign.apply(_a, __spreadArrays([{ allowUnsort: true, mode: 'single' }], settings));\n};\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { Draggable } from '@progress/kendo-vue-common';\n/**\n * Represents the default `ColumnResizer` component.\n */\n\nvar ColumnResizer = {\n mounted: function mounted() {\n if (this.$el) {\n this.draggable = this.$refs.draggable;\n }\n },\n methods: {\n drag: function drag(event) {\n var element = this.draggable && this.draggable.element;\n\n if (element) {\n this.$emit('resize', event, element, false);\n }\n },\n release: function release(event) {\n var element = this.draggable && this.draggable.element;\n\n if (element) {\n this.$emit('resize', event, element, true);\n }\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var resizeStyle = {\n // TODO: move to theme\n cursor: 'col-resize',\n display: 'block',\n height: '1000%',\n position: 'absolute',\n // [this.props.isRtl ? 'left' : 'right']: 0,\n top: 0,\n width: '.5em'\n };\n return (// @ts-ignore function children\n h(Draggable, {\n onDrag: this.drag,\n on: this.v3 ? undefined : {\n \"drag\": this.drag,\n \"release\": this.release\n },\n onRelease: this.release,\n ref: 'draggable'\n }, this.v3 ? function () {\n return [h(\"span\", {\n \"class\": \"k-column-resizer\",\n draggable: false,\n attrs: _this.v3 ? undefined : {\n draggable: false\n },\n style: resizeStyle\n })];\n } : [h(\"span\", {\n \"class\": \"k-column-resizer\",\n draggable: false,\n attrs: _this.v3 ? undefined : {\n draggable: false\n },\n style: resizeStyle\n })])\n );\n }\n};\nvar ColumnResizerVue3 = ColumnResizer;\nexport { ColumnResizer, ColumnResizerVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getDefaultSlots, Draggable } from '@progress/kendo-vue-common';\n/**\n * Represents the default `ColumnDraggable` component.\n */\n\nvar ColumnDraggable = {\n mounted: function mounted() {\n if (this.$el) {\n this.draggable = this.$refs.draggable;\n }\n },\n methods: {\n onPress: function onPress(event) {\n var element = this.draggable && this.draggable.element;\n\n if (element) {\n this.$emit('pressHandler', event, element);\n }\n },\n onDrag: function onDrag(event) {\n var element = this.draggable && this.draggable.element;\n\n if (element) {\n this.$emit('dragHandler', event, element);\n }\n },\n onRelease: function onRelease(event) {\n var element = this.draggable && this.draggable.element;\n\n if (element) {\n this.$emit('releaseHandler', event, element);\n }\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n return (// @ts-ignore function children\n h(Draggable, {\n onPress: this.onPress,\n on: this.v3 ? undefined : {\n \"press\": this.onPress,\n \"drag\": this.onDrag,\n \"release\": this.onRelease\n },\n onDrag: this.onDrag,\n onRelease: this.onRelease,\n ref: 'draggable'\n }, this.v3 ? function () {\n return [h(\"tr\", [defaultSlot])];\n } : [h(\"tr\", [defaultSlot])])\n );\n }\n};\nvar ColumnDraggableVue3 = ColumnDraggable;\nexport { ColumnDraggable, ColumnDraggableVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getTemplate, getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * Represents the default `GridHeaderCell` component.\n */\n\nvar GridHeaderCell = {\n props: {\n field: String,\n title: String,\n sortable: [Boolean, Object],\n render: [Object, Function, String]\n },\n methods: {\n clickHandler: function clickHandler(event) {\n this.$emit('headercellclick', event);\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n var renderTemplate = this.$props.render;\n var textInCell = this.$props.title || this.$props.field || \"\\xA0\";\n var defaultRendering = this.$props.sortable ? h(\"span\", {\n \"class\": \"k-link\",\n onClick: this.clickHandler,\n on: this.v3 ? undefined : {\n \"click\": this.clickHandler\n }\n }, [textInCell, defaultSlot]) : defaultSlot ? h(\"span\", [textInCell, defaultSlot]) // @ts-ignore\n : this.v3 ? textInCell : this._v(textInCell);\n return getTemplate.call(this, {\n h: h,\n template: renderTemplate,\n defaultRendering: defaultRendering,\n additionalProps: this.$props,\n additionalListeners: {\n click: this.clickHandler\n }\n });\n }\n};\nvar GridHeaderCellVue3 = GridHeaderCell;\nexport { GridHeaderCell, GridHeaderCellVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { Keys } from '@progress/kendo-vue-common';\n/**\n * Represents the default `GridColumnMenuItem` component.\n */\n\nvar GridColumnMenuItem = {\n props: {\n title: String,\n iconClass: String,\n selected: Boolean\n },\n methods: {\n onClick: function onClick(e) {\n this.$emit('menuitemclick', e);\n },\n onKeyDown: function onKeyDown(event) {\n if (event.keyCode === Keys.enter) {\n this.$emit('menuitemclick', event);\n }\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n title = _a.title,\n iconClass = _a.iconClass,\n selected = _a.selected;\n return h(\"div\", {\n tabindex: 0,\n attrs: this.v3 ? undefined : {\n tabindex: 0\n },\n onKeydown: this.onKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.onKeyDown,\n \"click\": this.onClick\n },\n onClick: this.onClick,\n \"class\": \"k-columnmenu-item \" + (selected ? 'k-state-selected' : '')\n }, [iconClass && h(\"span\", {\n \"class\": \"k-icon \" + iconClass\n }), title]);\n }\n};\nvar GridColumnMenuItemVue3 = GridColumnMenuItem;\nexport { GridColumnMenuItem, GridColumnMenuItemVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * The GridColumnMenuItemGroup that will be used inside the Grid ColumnMenu.\n */\n\nvar GridColumnMenuItemGroup = {\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n return h(\"div\", {\n \"class\": \"k-columnmenu-item-wrapper\"\n }, [defaultSlot]);\n }\n};\nvar GridColumnMenuItemGroupVue3 = GridColumnMenuItemGroup;\nexport { GridColumnMenuItemGroup, GridColumnMenuItemGroupVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar inject = allVue.inject;\nimport { GridColumnMenuItem } from './GridColumnMenuItem';\nimport { GridColumnMenuItemGroup } from './GridColumnMenuItemGroup';\nimport { normalize } from '../interfaces/GridSortSettings';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { messages, sortAscending, sortDescending } from '../messages';\nimport { hasListener } from '@progress/kendo-vue-common';\n/**\n * @hidden\n */\n\nvar ASC_DIR = 'asc';\n/**\n * @hidden\n */\n\nvar DESC_DIR = 'desc';\n/**\n * @hidden\n */\n\nvar sortSeqMap = {\n true: {\n 'asc': {\n 'asc': '',\n 'desc': 'desc'\n },\n 'desc': {\n 'asc': 'asc',\n 'desc': ''\n },\n '': {\n 'asc': 'asc',\n 'desc': 'desc'\n }\n },\n false: {\n 'asc': {\n 'asc': 'asc',\n 'desc': 'desc'\n },\n 'desc': {\n 'asc': 'asc',\n 'desc': 'desc'\n },\n '': {\n 'asc': 'asc',\n 'desc': 'desc'\n }\n }\n};\n/**\n * @hidden\n */\n\nvar sortIndex = function sortIndex(field, sort) {\n if (!sort) {\n return -1;\n }\n\n return sort.findIndex(function (s) {\n return s.field === field;\n });\n};\n/**\n * @hidden\n */\n\n\nvar sortedAsc = function sortedAsc(sortedIndex, sort) {\n return !!(sort && sortedIndex > -1 && sort[sortedIndex].dir === ASC_DIR);\n};\n/**\n * @hidden\n */\n\n\nvar sortedDesc = function sortedDesc(sortedIndex, sort) {\n return !!(sort && sortedIndex > -1 && sort[sortedIndex].dir === DESC_DIR);\n}; // tslint:disable:max-line-length\n\n/**\n * Can be used to check if sorting is applied to a specific field ([see example]({% slug column_menu_grid_native %}#toc-styling-the-column-menu-icon)). Useful for creating active sort indicators.\n */\n// tslint:enable:max-line-length\n\n\nexport var sortGroupByField = function sortGroupByField(field, sort) {\n var currentSortIndex = sortIndex(field, sort);\n return sortedDesc(currentSortIndex, sort) || sortedAsc(currentSortIndex, sort);\n};\n/**\n * Represents the default `GridColumnMenuSort` component.\n */\n\nvar GridColumnMenuSort = {\n props: {\n sortable: [Boolean, Object],\n sort: {\n type: Array\n },\n column: Object\n },\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n methods: {\n onAscClick: function onAscClick(e) {\n this.onSort(e, ASC_DIR);\n this.$emit('closemenu');\n },\n onDescClick: function onDescClick(e) {\n this.onSort(e, DESC_DIR);\n this.$emit('closemenu');\n },\n onSort: function onSort(e, selectedDir) {\n e.preventDefault();\n\n if (!hasListener.call(this, 'sortchange')) {\n return;\n }\n\n var _a = this.$props,\n column = _a.column,\n sortable = _a.sortable,\n sort = _a.sort;\n\n var _b = normalize(sortable || false, false),\n allowUnsort = _b.allowUnsort,\n mode = _b.mode;\n\n var oldDescriptor = (sort || []).filter(function (d) {\n return d.field === column.field;\n })[0];\n var dir = sortSeqMap[allowUnsort][oldDescriptor && oldDescriptor.dir || ''][selectedDir];\n var newDescriptor = mode === 'single' ? [] : (this.$props.sort || []).filter(function (d) {\n return d.field !== column.field;\n });\n\n if (dir !== '' && column.field) {\n newDescriptor.push({\n field: column.field,\n dir: dir\n });\n }\n\n this.$emit('sortchange', newDescriptor, {\n event: e,\n field: this.$props.column.field\n });\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var _a = this.$props,\n sort = _a.sort,\n column = _a.column;\n var currentSortIndex = sortIndex(column.field, sort);\n var localizationService = provideLocalizationService(this);\n return (// @ts-ignore function children\n h(GridColumnMenuItemGroup, this.v3 ? function () {\n return [// @ts-ignore\n h(GridColumnMenuItem, {\n title: localizationService.toLanguageString(sortAscending, messages[sortAscending]),\n attrs: _this.v3 ? undefined : {\n title: localizationService.toLanguageString(sortAscending, messages[sortAscending]),\n iconClass: 'k-i-sort-asc-sm',\n selected: sortedAsc(currentSortIndex, sort)\n },\n iconClass: 'k-i-sort-asc-sm',\n selected: sortedAsc(currentSortIndex, sort),\n onMenuitemclick: _this.onAscClick,\n on: _this.v3 ? undefined : {\n \"menuitemclick\": _this.onAscClick\n }\n }), // @ts-ignore\n h(GridColumnMenuItem, {\n title: localizationService.toLanguageString(sortDescending, messages[sortDescending]),\n attrs: _this.v3 ? undefined : {\n title: localizationService.toLanguageString(sortDescending, messages[sortDescending]),\n iconClass: 'k-i-sort-desc-sm',\n selected: sortedDesc(currentSortIndex, sort)\n },\n iconClass: 'k-i-sort-desc-sm',\n selected: sortedDesc(currentSortIndex, sort),\n onMenuitemclick: _this.onDescClick,\n on: _this.v3 ? undefined : {\n \"menuitemclick\": _this.onDescClick\n }\n })];\n } : [h(GridColumnMenuItem, {\n title: localizationService.toLanguageString(sortAscending, messages[sortAscending]),\n attrs: _this.v3 ? undefined : {\n title: localizationService.toLanguageString(sortAscending, messages[sortAscending]),\n iconClass: 'k-i-sort-asc-sm',\n selected: sortedAsc(currentSortIndex, sort)\n },\n iconClass: 'k-i-sort-asc-sm',\n selected: sortedAsc(currentSortIndex, sort),\n onMenuitemclick: _this.onAscClick,\n on: _this.v3 ? undefined : {\n \"menuitemclick\": _this.onAscClick\n }\n }), h(GridColumnMenuItem, {\n title: localizationService.toLanguageString(sortDescending, messages[sortDescending]),\n attrs: _this.v3 ? undefined : {\n title: localizationService.toLanguageString(sortDescending, messages[sortDescending]),\n iconClass: 'k-i-sort-desc-sm',\n selected: sortedDesc(currentSortIndex, sort)\n },\n iconClass: 'k-i-sort-desc-sm',\n selected: sortedDesc(currentSortIndex, sort),\n onMenuitemclick: _this.onDescClick,\n on: _this.v3 ? undefined : {\n \"menuitemclick\": _this.onDescClick\n }\n })])\n );\n }\n};\nvar GridColumnMenuSortVue3 = GridColumnMenuSort;\nexport { GridColumnMenuSort, GridColumnMenuSortVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\nimport { Reveal } from '@progress/kendo-vue-animation';\n/**\n * Represents the default `GridColumnMenuItemContent` component.\n */\n\nvar GridColumnMenuItemContent = {\n props: {\n show: Boolean\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n return h(\"div\", {\n \"class\": 'k-columnmenu-item-content'\n }, [// @ts-ignore function children\n h(Reveal, {\n appear: this.$props.show,\n attrs: this.v3 ? undefined : {\n appear: this.$props.show\n },\n style: {\n position: 'relative',\n display: 'block'\n }\n }, this.v3 ? function () {\n return [_this.$props.show ? defaultSlot : null];\n } : [_this.$props.show ? defaultSlot : null])]);\n }\n};\nvar GridColumnMenuItemContentVue3 = GridColumnMenuItemContent;\nexport { GridColumnMenuItemContent, GridColumnMenuItemContentVue3 };","import { messages } from './messages';\n/**\n * @hidden\n */\nexport var filterLogicList = [\n { text: 'grid.filterAndLogic', operator: 'and' },\n { text: 'grid.filterOrLogic', operator: 'or' }\n];\n/**\n * @hidden\n */\nexport var operators = {\n 'text': [\n { text: 'grid.filterContainsOperator', operator: 'contains' },\n { text: 'grid.filterNotContainsOperator', operator: 'doesnotcontain' },\n { text: 'grid.filterEqOperator', operator: 'eq' },\n { text: 'grid.filterNotEqOperator', operator: 'neq' },\n { text: 'grid.filterStartsWithOperator', operator: 'startswith' },\n { text: 'grid.filterEndsWithOperator', operator: 'endswith' },\n { text: 'grid.filterIsNullOperator', operator: 'isnull' },\n { text: 'grid.filterIsNotNullOperator', operator: 'isnotnull' },\n { text: 'grid.filterIsEmptyOperator', operator: 'isempty' },\n { text: 'grid.filterIsNotEmptyOperator', operator: 'isnotempty' }\n ],\n 'numeric': [\n { text: 'grid.filterEqOperator', operator: 'eq' },\n { text: 'grid.filterNotEqOperator', operator: 'neq' },\n { text: 'grid.filterGteOperator', operator: 'gte' },\n { text: 'grid.filterGtOperator', operator: 'gt' },\n { text: 'grid.filterLteOperator', operator: 'lte' },\n { text: 'grid.filterLtOperator', operator: 'lt' },\n { text: 'grid.filterIsNullOperator', operator: 'isnull' },\n { text: 'grid.filterIsNotNullOperator', operator: 'isnotnull' }\n ],\n 'date': [\n { text: 'grid.filterEqOperator', operator: 'eq' },\n { text: 'grid.filterNotEqOperator', operator: 'neq' },\n { text: 'grid.filterAfterOrEqualOperator', operator: 'gte' },\n { text: 'grid.filterAfterOperator', operator: 'gt' },\n { text: 'grid.filterBeforeOperator', operator: 'lt' },\n { text: 'grid.filterBeforeOrEqualOperator', operator: 'lte' },\n { text: 'grid.filterIsNullOperator', operator: 'isnull' },\n { text: 'grid.filterIsNotNullOperator', operator: 'isnotnull' }\n ],\n 'boolean': [\n { text: 'grid.filterEqOperator', operator: 'eq' }\n ]\n};\n/**\n * @hidden\n */\nexport var IsUnaryFilter = function (operator) {\n return operator === 'isnull' || operator === 'isnotnull' || operator === 'isempty' || operator === 'isnotempty';\n};\n/**\n * @hidden\n */\nexport var operatorMap = function (iterable, service) { return iterable.map(function (operator) { return ({\n text: service.toLanguageString(operator.text, messages[operator.text]),\n operator: operator.operator\n}); }); };\n/**\n * @hidden\n */\nexport var defaultBooleanOperator = 'eq';\n/**\n * @hidden\n */\nexport var booleanFilterValues = [\n { text: 'grid.filterBooleanAll', operator: '' },\n { text: 'grid.filterIsTrue', operator: true },\n { text: 'grid.filterIsFalse', operator: false }\n];\n/**\n * @hidden\n */\nexport var defaultHideSecondFilter = {\n text: false,\n numeric: false,\n date: false,\n boolean: true\n};\n/**\n * @hidden\n */\nexport var cellInputChange = function (value, e, props) {\n var defaultOperator = getDefaultOperator(props.operators);\n var operator = props.operator;\n switch (props.filterType) {\n case 'numeric':\n if (!operator || IsUnaryFilter(operator)) {\n // change the operator to default\n operator = defaultOperator;\n }\n if (value === null && operator === defaultOperator) {\n // clear only the default operator\n operator = '';\n }\n break;\n case 'date':\n if (!operator || IsUnaryFilter(operator)) {\n operator = defaultOperator;\n }\n if (value === null && operator === defaultOperator) {\n operator = '';\n }\n break;\n case 'text':\n if (!operator || IsUnaryFilter(operator)) {\n operator = defaultOperator;\n }\n if (!value && operator === defaultOperator) {\n operator = '';\n }\n break;\n default: return;\n }\n return { value: value, operator: operator, event: e };\n};\n/**\n * @hidden\n */\nexport var getDefaultOperator = function (filterOperators, filterType) {\n if (filterType) {\n return filterOperators[filterType][0].operator;\n }\n else {\n return filterOperators[0].operator;\n }\n};\n/**\n * @hidden\n */\nexport var getFilterType = function (filterType) {\n return filterType || 'text';\n};\n/**\n * @hidden\n */\nexport var cellBoolDropdownChange = function (value, e) {\n return {\n value: value,\n operator: value === '' ? '' : defaultBooleanOperator,\n event: e\n };\n};\n/**\n * @hidden\n */\nexport var cellOperatorChange = function (operator, e, value) {\n if (IsUnaryFilter(operator)) {\n // clear the value to avoid confusion on what is filtered\n value = null;\n }\n return { value: value, operator: operator, event: e };\n};\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { DropDownList } from '@progress/kendo-vue-dropdowns';\nimport { NumericTextBox } from '@progress/kendo-vue-inputs';\nimport { DatePicker } from '@progress/kendo-vue-dateinputs';\nimport { cellBoolDropdownChange, cellInputChange, cellOperatorChange } from '../filterCommon';\n/**\n * Represents the default `GridColumnMenuFilterCell` component.\n */\n\nvar GridColumnMenuFilterCell = {\n props: {\n field: String,\n filterType: String,\n value: [Object, String, Number, Date, Boolean],\n operator: String,\n operators: Array,\n booleanValues: Array\n },\n // @ts-ignore\n emits: {\n change: null\n },\n methods: {\n handleFocus: function handleFocus(e) {\n this.$emit('filtercellfocus', e);\n },\n triggerChange: function triggerChange(filter) {\n this.$emit('change', filter);\n },\n inputChange: function inputChange(value, e) {\n var filter = cellInputChange(value, e, this.$props);\n this.triggerChange(filter);\n },\n operatorChange: function operatorChange(operatorValue, e) {\n var filter = cellOperatorChange(operatorValue.value.operator, e, this.$props.value);\n this.triggerChange(filter);\n },\n boolDropdownChange: function boolDropdownChange(value, e) {\n var filter = cellBoolDropdownChange(value.value.operator, e);\n this.triggerChange(filter);\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var ddlValue = this.$props.operators.find(function (item) {\n return item.operator === _this.$props.operator;\n }) || null;\n\n var filterComponent = function filterComponent(filterType, value, booleanValues) {\n var _this = this;\n\n switch (filterType) {\n case 'numeric':\n return (// @ts-ignore\n h(NumericTextBox, {\n value: value,\n attrs: this.v3 ? undefined : {\n value: value\n },\n onChange: function onChange(e) {\n _this.inputChange(e.value, e.event);\n },\n on: this.v3 ? undefined : {\n \"change\": function onChange(e) {\n _this.inputChange(e.value, e.event);\n }\n }\n })\n );\n\n case 'date':\n return (// @ts-ignore\n h(DatePicker, {\n value: value,\n attrs: this.v3 ? undefined : {\n value: value\n },\n onFocus: this.handleFocus,\n on: this.v3 ? undefined : {\n \"focus\": this.handleFocus,\n \"change\": function change(e) {\n _this.inputChange(e.value, e.event);\n }\n },\n onChange: function change(e) {\n _this.inputChange(e.value, e.event);\n }\n })\n );\n\n case 'boolean':\n var noFilterSet_1 = function noFilterSet_1(filter) {\n return filter === null || filter === undefined;\n };\n\n return (// @ts-ignore\n h(DropDownList, {\n onChange: this.boolDropdownChange,\n on: this.v3 ? undefined : {\n \"change\": this.boolDropdownChange\n },\n value: booleanValues.find(function (item) {\n return item.operator === (noFilterSet_1(value) ? '' : value);\n }),\n attrs: this.v3 ? undefined : {\n value: booleanValues.find(function (item) {\n return item.operator === (noFilterSet_1(value) ? '' : value);\n }),\n \"data-items\": booleanValues,\n textField: \"text\"\n },\n \"data-items\": booleanValues,\n textField: \"text\"\n })\n );\n\n default:\n return h(\"input\", {\n \"class\": \"k-textbox\",\n value: this.v3 ? value || '' : null,\n domProps: this.v3 ? undefined : {\n \"value\": value || ''\n },\n onInput: function onInput(e) {\n _this.inputChange(e.target.value, e);\n },\n on: this.v3 ? undefined : {\n \"input\": function onInput(e) {\n _this.inputChange(e.target.value, e);\n }\n }\n });\n }\n };\n\n return h(\"div\", [this.$props.filterType !== 'boolean' && // @ts-ignore\n h(DropDownList, {\n onChange: this.operatorChange,\n on: this.v3 ? undefined : {\n \"change\": this.operatorChange\n },\n value: ddlValue,\n attrs: this.v3 ? undefined : {\n value: ddlValue,\n \"data-items\": this.$props.operators,\n textField: \"text\"\n },\n \"data-items\": this.$props.operators,\n textField: \"text\"\n }), filterComponent.call(this, this.$props.filterType, this.$props.value, this.$props.booleanValues)]);\n }\n};\nvar GridColumnMenuFilterCellVue3 = GridColumnMenuFilterCell;\nexport { GridColumnMenuFilterCell, GridColumnMenuFilterCellVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { GridColumnMenuFilterCell } from './GridColumnMenuFilterCell';\nimport { DropDownList } from '@progress/kendo-vue-dropdowns';\nimport { getTemplate } from '@progress/kendo-vue-common';\n/**\n * Represents the default `GridColumnMenuFilterUI` component.\n */\n\nvar GridColumnMenuFilterUI = {\n props: {\n firstFilterProps: Object,\n secondFilterProps: Object,\n logicValue: Object,\n logicData: Array,\n hideSecondFilter: Boolean,\n operators: Array,\n render: [String, Function, Object]\n },\n // @ts-ignore\n emits: {\n change: null\n },\n methods: {\n handleFocus: function handleFocus(e) {\n this.$emit('filteruifocus', e);\n },\n changeHandler: function changeHandler(e, filterIndex) {\n this.$emit('change', e, filterIndex);\n },\n logicChange: function logicChange(e) {\n this.$emit('logicChange', e);\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var _a = this.$props,\n firstFilterProps = _a.firstFilterProps,\n hideSecondFilter = _a.hideSecondFilter,\n secondFilterProps = _a.secondFilterProps,\n logicData = _a.logicData,\n logicValue = _a.logicValue,\n operators = _a.operators,\n render = _a.render;\n var firstField = firstFilterProps.field,\n firstValue = firstFilterProps.value,\n firstOperator = firstFilterProps.operator,\n firstBooleanValues = firstFilterProps.booleanValues,\n firstFilterType = firstFilterProps.filterType,\n secondField = secondFilterProps.field,\n secondValue = secondFilterProps.value,\n secondOperator = secondFilterProps.operator,\n secondBooleanValues = secondFilterProps.booleanValues,\n secondFilterType = secondFilterProps.filterType;\n var defaultRendering = h(\"div\", [// @ts-ignore\n h(GridColumnMenuFilterCell, {\n field: firstField,\n attrs: this.v3 ? undefined : {\n field: firstField,\n value: firstValue,\n operator: firstOperator,\n booleanValues: firstBooleanValues,\n filterType: firstFilterType,\n operators: operators\n },\n value: firstValue,\n operator: firstOperator,\n booleanValues: firstBooleanValues,\n filterType: firstFilterType,\n onFiltercellfocus: this.handleFocus,\n on: this.v3 ? undefined : {\n \"filtercellfocus\": this.handleFocus,\n \"change\": function change(e) {\n _this.changeHandler(e, 0);\n }\n },\n onChange: function change(e) {\n _this.changeHandler(e, 0);\n },\n operators: operators\n }), !hideSecondFilter && h(\"div\", [// @ts-ignore\n h(DropDownList, {\n onChange: this.logicChange,\n on: this.v3 ? undefined : {\n \"change\": this.logicChange\n },\n \"class\": \"k-filter-and\",\n \"data-items\": logicData,\n attrs: this.v3 ? undefined : {\n \"data-items\": logicData,\n value: logicValue,\n textField: \"text\"\n },\n value: logicValue,\n textField: \"text\"\n }), // @ts-ignore\n h(GridColumnMenuFilterCell, {\n field: secondField,\n attrs: this.v3 ? undefined : {\n field: secondField,\n value: secondValue,\n operator: secondOperator,\n booleanValues: secondBooleanValues,\n filterType: secondFilterType,\n operators: operators\n },\n value: secondValue,\n operator: secondOperator,\n booleanValues: secondBooleanValues,\n filterType: secondFilterType,\n onFiltercellfocus: this.handleFocus,\n on: this.v3 ? undefined : {\n \"filtercellfocus\": this.handleFocus,\n \"change\": function change(e) {\n _this.changeHandler(e, 1);\n }\n },\n onChange: function change(e) {\n _this.changeHandler(e, 1);\n },\n operators: operators\n })])]);\n return getTemplate.call(this, {\n h: h,\n template: render,\n defaultRendering: defaultRendering,\n additionalProps: this.$props,\n additionalListeners: {\n change: this.changeHandler,\n logicchange: this.logicChange\n }\n });\n }\n};\nvar GridColumnMenuFilterUIVue3 = GridColumnMenuFilterUI;\nexport { GridColumnMenuFilterUI, GridColumnMenuFilterUIVue3 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar inject = allVue.inject;\nimport { templateRendering, hasListener, getListeners } from '@progress/kendo-vue-common';\nimport { isCompositeFilterDescriptor } from '@progress/kendo-data-query';\nimport { GridColumnMenuItem } from './GridColumnMenuItem';\nimport { GridColumnMenuItemGroup } from './GridColumnMenuItemGroup';\nimport { GridColumnMenuItemContent } from './GridColumnMenuItemContent';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { operatorMap, getDefaultOperator, filterLogicList, defaultHideSecondFilter, booleanFilterValues, getFilterType, operators } from '../filterCommon';\nimport { messages, filterClearButton, filterSubmitButton, filterTitle } from '../messages';\nimport { GridColumnMenuFilterUI } from './GridColumnMenuFilterUI';\n/**\n * @hidden\n */\n\nexport var rootFilterOrDefault = function rootFilterOrDefault(rootFilter) {\n return rootFilter || {\n filters: [],\n logic: 'and'\n };\n}; // tslint:disable:max-line-length\n\n/**\n * Can be used to check if filtering is applied to a specific field ([see example]({% slug column_menu_grid_native %}#toc-styling-the-column-menu-icon)). Useful for creating active filter indicators.\n */\n// tslint:enable:max-line-length\n\nexport var filterGroupByField = function filterGroupByField(field, filter) {\n var rootFilter = rootFilterOrDefault(filter);\n var compositeFilters = rootFilter.filters.filter(function (f) {\n if (isCompositeFilterDescriptor(f)) {\n return f.filters && f.filters.length && f.filters.length <= 2 && !f.filters.find(function (nf) {\n return isCompositeFilterDescriptor(nf) || nf.field !== field;\n });\n }\n\n return false;\n });\n return compositeFilters[0] || null;\n};\n/**\n * Represents the default `GridColumnMenuFilter` component.\n */\n\nvar GridColumnMenuFilter = {\n name: 'KendoGridColumnMenuFilter',\n props: {\n column: Object,\n filter: Object,\n expanded: {\n type: Boolean,\n default: undefined\n },\n filterable: Boolean,\n filterOperators: {\n type: Object,\n default: function _default() {\n return operators;\n }\n },\n hideSecondFilter: {\n type: [Boolean, Object],\n default: function _default() {\n return undefined;\n }\n },\n filterUI: [String, Function, Object]\n },\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n data: function data() {\n return {\n currentExpanded: false,\n filterGroup: null\n };\n },\n created: function created() {\n var _this = this;\n\n var filterGroup;\n\n if (this.$props.column && this.$props.column.field) {\n var filterType = getFilterType(this.$props.column.filter);\n var defaultOperator = getDefaultOperator(this.$props.filterOperators, filterType);\n filterGroup = filterGroupByField(this.$props.column.field, this.$props.filter);\n filterGroup = filterGroup ? __assign(__assign({}, filterGroup), {\n filters: filterGroup.filters.map(function (f) {\n return __assign({}, f);\n })\n }) : {\n logic: 'and',\n filters: [{\n field: this.$props.column.field,\n operator: defaultOperator\n }, {\n field: this.$props.column.field,\n operator: defaultOperator\n }]\n };\n\n if (filterGroup.filters.filter(function (x) {\n return x.field === _this.$props.column.field;\n }).length === 1) {\n filterGroup.filters.splice(1, 0, {\n field: this.$props.column.field,\n operator: defaultOperator\n });\n }\n }\n\n this.currentExpanded = this.$props.expanded || false;\n this.filterGroup = filterGroup;\n },\n methods: {\n removeGroup: function removeGroup(group, rootFilter) {\n var filters = __spreadArrays(rootFilter.filters);\n\n var groupIndex = filters.findIndex(function (f) {\n return f === group;\n });\n\n if (groupIndex > -1) {\n filters.splice(groupIndex, 1);\n }\n\n return __assign(__assign({}, rootFilter), {\n filters: filters\n });\n },\n insertGroup: function insertGroup(group, rootFilter) {\n return __assign(__assign({}, rootFilter), {\n filters: __spreadArrays([group], rootFilter.filters)\n });\n },\n isControlled: function isControlled() {\n return this.$props.expanded !== undefined;\n },\n onFilterExpand: function onFilterExpand() {\n var isControlled = this.isControlled();\n var nextValue = !(isControlled ? this.$props.expanded : this.currentExpanded);\n this.$emit('expandchange', nextValue);\n\n if (!isControlled) {\n this.currentExpanded = nextValue;\n }\n },\n filterChangeHandler: function filterChangeHandler(e, filterIndex) {\n this.filterChange(filterIndex || 0, e);\n },\n firstFilterChange: function firstFilterChange(e) {\n this.filterChange(0, e);\n },\n secondFilterChange: function secondFilterChange(e) {\n this.filterChange(1, e);\n },\n filterChange: function filterChange(filterIndex, e) {\n var filters = this.filterGroup.filters.map(function (f, i) {\n if (i === filterIndex) {\n return __assign(__assign({}, f), {\n value: e.value,\n operator: e.operator\n });\n }\n\n return f;\n });\n this.filterGroup = __assign(__assign({}, this.filterGroup), {\n filters: filters\n });\n },\n logicChange: function logicChange(e) {\n this.filterGroup = __assign(__assign({}, this.filterGroup), {\n logic: e.target.value.operator\n });\n },\n clear: function clear(e) {\n e.preventDefault();\n\n if (!hasListener.call(this, 'filterchange')) {\n return;\n }\n\n var field = this.$props.column.field;\n var rootFilter = rootFilterOrDefault(this.$props.filter);\n var filterGroup = filterGroupByField(field, this.$props.filter);\n var rootFilters = rootFilter.filters.filter(function (f) {\n return f !== filterGroup;\n });\n\n if (!rootFilters.length) {\n this.$emit('filterchange', null, {\n event: e,\n field: this.$props.column.field\n });\n } else {\n this.$emit('filterchange', __assign(__assign({}, rootFilter), {\n filters: rootFilters\n }), {\n event: e,\n field: this.$props.column.field\n });\n }\n\n this.$emit('closemenu');\n },\n currentFilterGroup: function currentFilterGroup() {\n return __assign(__assign({}, this.filterGroup), {\n filters: this.filterGroup.filters.filter(function (nf) {\n return nf.value !== undefined && nf.value !== null && nf.value !== '' || nf.value === null && nf.operator;\n })\n });\n },\n submit: function submit(e) {\n e.preventDefault();\n\n if (!hasListener.call(this, 'filterchange')) {\n return;\n }\n\n var field = this.$props.column.field;\n var rootFilter = rootFilterOrDefault(this.$props.filter);\n var filterGroup = filterGroupByField(field, this.$props.filter);\n var currentFilterGroup = this.currentFilterGroup();\n var updatedFilter = null;\n\n if (filterGroup && currentFilterGroup.filters.length > 0) {\n var rootFilters = rootFilter.filters.map(function (f) {\n if (f === filterGroup) {\n return currentFilterGroup;\n }\n\n return f;\n });\n updatedFilter = __assign(__assign({}, rootFilter), {\n filters: rootFilters\n });\n } else if (currentFilterGroup.filters.length === 0) {\n var rootFilters = rootFilter.filters.filter(function (f) {\n return f !== filterGroup;\n });\n\n if (rootFilters.length) {\n updatedFilter = __assign(__assign({}, rootFilter), {\n filters: rootFilters\n });\n }\n } else {\n updatedFilter = __assign(__assign({}, rootFilter), {\n filters: __spreadArrays(rootFilter.filters, [currentFilterGroup])\n });\n }\n\n this.$emit('filterchange', updatedFilter, {\n event: e,\n field: this.$props.column.field\n });\n this.$emit('closemenu');\n },\n handleFocus: function handleFocus(e) {\n this.$emit('filterfocus', e);\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this2 = this;\n\n var h = gh || createElement;\n var _a = this.$props,\n column = _a.column,\n filterUI = _a.filterUI,\n hideSecondFilter = _a.hideSecondFilter,\n filterOperators = _a.filterOperators;\n\n if (!column || !column.field) {\n return h(\"div\");\n }\n\n var filterType = column.filter || 'text';\n var currentHideSecondFilter = hideSecondFilter !== undefined ? hideSecondFilter : defaultHideSecondFilter[filterType];\n var localizationService = provideLocalizationService(this);\n var filters = this.filterGroup.filters;\n var currentOperators = operatorMap(filterOperators[filterType], localizationService);\n var booleanValues = operatorMap(booleanFilterValues, localizationService);\n var firstFilterCellProps = {\n field: column.field,\n value: filters[0].value,\n operator: filters[0].operator,\n operators: currentOperators,\n booleanValues: booleanValues,\n filterType: filterType\n };\n var secondFilterCellProps = {\n field: column.field,\n value: filters[1].value,\n operator: filters[1].operator,\n operators: currentOperators,\n booleanValues: booleanValues,\n filterType: filterType\n };\n var filterLogic = this.filterGroup.logic;\n var logicData = operatorMap(filterLogicList, localizationService);\n var logicProps = {\n value: logicData.find(function (item) {\n return item.operator === (filterLogic === null ? '' : filterLogic);\n }),\n data: logicData\n };\n var isFilterValid = this.currentFilterGroup().filters.length !== 0;\n var expandState = this.isControlled() ? this.$props.expanded : this.currentExpanded;\n return (// @ts-ignore function children\n h(GridColumnMenuItemGroup, this.v3 ? function () {\n return [// @ts-ignore\n h(GridColumnMenuItem, {\n title: localizationService.toLanguageString(filterTitle, messages[filterTitle]),\n attrs: _this2.v3 ? undefined : {\n title: localizationService.toLanguageString(filterTitle, messages[filterTitle]),\n iconClass: 'k-i-filter'\n },\n iconClass: 'k-i-filter',\n onMenuitemclick: _this2.onFilterExpand,\n on: _this2.v3 ? undefined : {\n \"menuitemclick\": _this2.onFilterExpand\n }\n }), // @ts-ignore function children\n h(GridColumnMenuItemContent, {\n show: !!expandState,\n attrs: _this2.v3 ? undefined : {\n show: !!expandState\n }\n }, _this2.v3 ? function () {\n return [h(\"div\", {\n \"class\": 'kendo-grid-filter-menu-container'\n }, [h(\"form\", {\n \"class\": 'k-filter-menu k-group k-reset k-state-border-up',\n onSubmit: _this2.submit,\n on: _this2.v3 ? undefined : {\n \"submit\": _this2.submit,\n \"reset\": _this2.clear\n },\n onReset: _this2.clear\n }, [h(\"div\", {\n \"class\": 'k-filter-menu-container'\n }, [// @ts-ignore\n h(GridColumnMenuFilterUI, {\n firstFilterProps: firstFilterCellProps,\n attrs: _this2.v3 ? undefined : {\n firstFilterProps: firstFilterCellProps,\n secondFilterProps: secondFilterCellProps,\n logicData: logicProps.data,\n logicValue: logicProps.value,\n hideSecondFilter: currentHideSecondFilter,\n operators: currentOperators,\n render: filterUI && templateRendering.call(_this2, filterUI, getListeners.call(_this2))\n },\n secondFilterProps: secondFilterCellProps,\n logicData: logicProps.data,\n logicValue: logicProps.value,\n onFilteruifocus: _this2.handleFocus,\n on: _this2.v3 ? undefined : {\n \"filteruifocus\": _this2.handleFocus,\n \"logicChange\": _this2.logicChange,\n \"change\": _this2.filterChangeHandler\n },\n onLogicChange: _this2.logicChange,\n onChange: _this2.filterChangeHandler,\n hideSecondFilter: currentHideSecondFilter,\n operators: currentOperators,\n render: filterUI && templateRendering.call(_this2, filterUI, getListeners.call(_this2))\n }), h(\"div\", {\n \"class\": 'k-columnmenu-actions'\n }, [h(\"button\", {\n \"class\": 'k-button',\n type: 'reset',\n attrs: _this2.v3 ? undefined : {\n type: 'reset'\n }\n }, [localizationService.toLanguageString(filterClearButton, messages[filterClearButton])]), h(\"button\", {\n \"class\": 'k-button k-primary',\n disabled: !isFilterValid,\n attrs: _this2.v3 ? undefined : {\n disabled: !isFilterValid\n }\n }, [localizationService.toLanguageString(filterSubmitButton, messages[filterSubmitButton])])])])])])];\n } : [h(\"div\", {\n \"class\": 'kendo-grid-filter-menu-container'\n }, [h(\"form\", {\n \"class\": 'k-filter-menu k-group k-reset k-state-border-up',\n onSubmit: _this2.submit,\n on: _this2.v3 ? undefined : {\n \"submit\": _this2.submit,\n \"reset\": _this2.clear\n },\n onReset: _this2.clear\n }, [h(\"div\", {\n \"class\": 'k-filter-menu-container'\n }, [h(GridColumnMenuFilterUI, {\n firstFilterProps: firstFilterCellProps,\n attrs: _this2.v3 ? undefined : {\n firstFilterProps: firstFilterCellProps,\n secondFilterProps: secondFilterCellProps,\n logicData: logicProps.data,\n logicValue: logicProps.value,\n hideSecondFilter: currentHideSecondFilter,\n operators: currentOperators,\n render: filterUI && templateRendering.call(_this2, filterUI, getListeners.call(_this2))\n },\n secondFilterProps: secondFilterCellProps,\n logicData: logicProps.data,\n logicValue: logicProps.value,\n onFilteruifocus: _this2.handleFocus,\n on: _this2.v3 ? undefined : {\n \"filteruifocus\": _this2.handleFocus,\n \"logicChange\": _this2.logicChange,\n \"change\": _this2.filterChangeHandler\n },\n onLogicChange: _this2.logicChange,\n onChange: _this2.filterChangeHandler,\n hideSecondFilter: currentHideSecondFilter,\n operators: currentOperators,\n render: filterUI && templateRendering.call(_this2, filterUI, getListeners.call(_this2))\n }), h(\"div\", {\n \"class\": 'k-columnmenu-actions'\n }, [h(\"button\", {\n \"class\": 'k-button',\n type: 'reset',\n attrs: _this2.v3 ? undefined : {\n type: 'reset'\n }\n }, [localizationService.toLanguageString(filterClearButton, messages[filterClearButton])]), h(\"button\", {\n \"class\": 'k-button k-primary',\n disabled: !isFilterValid,\n attrs: _this2.v3 ? undefined : {\n disabled: !isFilterValid\n }\n }, [localizationService.toLanguageString(filterSubmitButton, messages[filterSubmitButton])])])])])])])];\n } : [h(GridColumnMenuItem, {\n title: localizationService.toLanguageString(filterTitle, messages[filterTitle]),\n attrs: _this2.v3 ? undefined : {\n title: localizationService.toLanguageString(filterTitle, messages[filterTitle]),\n iconClass: 'k-i-filter'\n },\n iconClass: 'k-i-filter',\n onMenuitemclick: _this2.onFilterExpand,\n on: _this2.v3 ? undefined : {\n \"menuitemclick\": _this2.onFilterExpand\n }\n }), h(GridColumnMenuItemContent, {\n show: !!expandState,\n attrs: _this2.v3 ? undefined : {\n show: !!expandState\n }\n }, _this2.v3 ? function () {\n return [h(\"div\", {\n \"class\": 'kendo-grid-filter-menu-container'\n }, [h(\"form\", {\n \"class\": 'k-filter-menu k-group k-reset k-state-border-up',\n onSubmit: _this2.submit,\n on: _this2.v3 ? undefined : {\n \"submit\": _this2.submit,\n \"reset\": _this2.clear\n },\n onReset: _this2.clear\n }, [h(\"div\", {\n \"class\": 'k-filter-menu-container'\n }, [h(GridColumnMenuFilterUI, {\n firstFilterProps: firstFilterCellProps,\n attrs: _this2.v3 ? undefined : {\n firstFilterProps: firstFilterCellProps,\n secondFilterProps: secondFilterCellProps,\n logicData: logicProps.data,\n logicValue: logicProps.value,\n hideSecondFilter: currentHideSecondFilter,\n operators: currentOperators,\n render: filterUI && templateRendering.call(_this2, filterUI, getListeners.call(_this2))\n },\n secondFilterProps: secondFilterCellProps,\n logicData: logicProps.data,\n logicValue: logicProps.value,\n onFilteruifocus: _this2.handleFocus,\n on: _this2.v3 ? undefined : {\n \"filteruifocus\": _this2.handleFocus,\n \"logicChange\": _this2.logicChange,\n \"change\": _this2.filterChangeHandler\n },\n onLogicChange: _this2.logicChange,\n onChange: _this2.filterChangeHandler,\n hideSecondFilter: currentHideSecondFilter,\n operators: currentOperators,\n render: filterUI && templateRendering.call(_this2, filterUI, getListeners.call(_this2))\n }), h(\"div\", {\n \"class\": 'k-columnmenu-actions'\n }, [h(\"button\", {\n \"class\": 'k-button',\n type: 'reset',\n attrs: _this2.v3 ? undefined : {\n type: 'reset'\n }\n }, [localizationService.toLanguageString(filterClearButton, messages[filterClearButton])]), h(\"button\", {\n \"class\": 'k-button k-primary',\n disabled: !isFilterValid,\n attrs: _this2.v3 ? undefined : {\n disabled: !isFilterValid\n }\n }, [localizationService.toLanguageString(filterSubmitButton, messages[filterSubmitButton])])])])])])];\n } : [h(\"div\", {\n \"class\": 'kendo-grid-filter-menu-container'\n }, [h(\"form\", {\n \"class\": 'k-filter-menu k-group k-reset k-state-border-up',\n onSubmit: _this2.submit,\n on: _this2.v3 ? undefined : {\n \"submit\": _this2.submit,\n \"reset\": _this2.clear\n },\n onReset: _this2.clear\n }, [h(\"div\", {\n \"class\": 'k-filter-menu-container'\n }, [h(GridColumnMenuFilterUI, {\n firstFilterProps: firstFilterCellProps,\n attrs: _this2.v3 ? undefined : {\n firstFilterProps: firstFilterCellProps,\n secondFilterProps: secondFilterCellProps,\n logicData: logicProps.data,\n logicValue: logicProps.value,\n hideSecondFilter: currentHideSecondFilter,\n operators: currentOperators,\n render: filterUI && templateRendering.call(_this2, filterUI, getListeners.call(_this2))\n },\n secondFilterProps: secondFilterCellProps,\n logicData: logicProps.data,\n logicValue: logicProps.value,\n onFilteruifocus: _this2.handleFocus,\n on: _this2.v3 ? undefined : {\n \"filteruifocus\": _this2.handleFocus,\n \"logicChange\": _this2.logicChange,\n \"change\": _this2.filterChangeHandler\n },\n onLogicChange: _this2.logicChange,\n onChange: _this2.filterChangeHandler,\n hideSecondFilter: currentHideSecondFilter,\n operators: currentOperators,\n render: filterUI && templateRendering.call(_this2, filterUI, getListeners.call(_this2))\n }), h(\"div\", {\n \"class\": 'k-columnmenu-actions'\n }, [h(\"button\", {\n \"class\": 'k-button',\n type: 'reset',\n attrs: _this2.v3 ? undefined : {\n type: 'reset'\n }\n }, [localizationService.toLanguageString(filterClearButton, messages[filterClearButton])]), h(\"button\", {\n \"class\": 'k-button k-primary',\n disabled: !isFilterValid,\n attrs: _this2.v3 ? undefined : {\n disabled: !isFilterValid\n }\n }, [localizationService.toLanguageString(filterSubmitButton, messages[filterSubmitButton])])])])])])])])\n );\n }\n};\nvar GridColumnMenuFilterVue3 = GridColumnMenuFilter;\nexport { GridColumnMenuFilter, GridColumnMenuFilterVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { GridColumnMenuSort } from './GridColumnMenuSort';\nimport { GridColumnMenuFilter } from './GridColumnMenuFilter';\nimport { getTemplate, Keys } from '@progress/kendo-vue-common';\n/**\n * Represents the default `ColumnMenuContent` component.\n */\n\nvar ColumnMenuContent = {\n name: 'KendoColumnMenuContent',\n props: {\n column: Object,\n sortable: [Boolean, Object],\n sort: {\n type: Array\n },\n filter: Object,\n filterOperators: Object,\n filterable: Boolean,\n render: [Boolean, String, Function, Object]\n },\n methods: {\n handleFocus: function handleFocus(e) {\n this.$emit('contentfocus', e);\n },\n closeMenu: function closeMenu() {\n this.$emit('closemenu');\n },\n expandChange: function expandChange() {\n this.$emit('expandchange');\n },\n sortChange: function sortChange(newDescriptor, e) {\n this.$emit('sortchange', newDescriptor, e);\n },\n filterChange: function filterChange(newDescriptor, e) {\n this.$emit('filterchange', newDescriptor, e);\n },\n contentKeyDown: function contentKeyDown(event) {\n if (event.keyCode === Keys.esc) {\n this.$emit('closemenu');\n }\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var renderTemplate = this.$props.render;\n var defaultRendering = h(\"div\", {\n onKeydown: this.contentKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.contentKeyDown\n }\n }, [// @ts-ignore\n h(GridColumnMenuSort, {\n column: this.$props.column,\n attrs: this.v3 ? undefined : {\n column: this.$props.column,\n sortable: this.$props.sortable,\n sort: this.$props.sort\n },\n sortable: this.$props.sortable,\n sort: this.$props.sort,\n onClosemenu: this.closeMenu,\n on: this.v3 ? undefined : {\n \"closemenu\": this.closeMenu,\n \"sortchange\": this.sortChange\n },\n onSortchange: this.sortChange\n }), // @ts-ignore\n h(GridColumnMenuFilter, {\n column: this.$props.column,\n attrs: this.v3 ? undefined : {\n column: this.$props.column,\n filterable: this.$props.filterable,\n filter: this.$props.filter,\n filterOperators: this.$props.filterOperators\n },\n filterable: this.$props.filterable,\n filter: this.$props.filter,\n filterOperators: this.$props.filterOperators,\n onFilterfocus: this.handleFocus,\n on: this.v3 ? undefined : {\n \"filterfocus\": this.handleFocus,\n \"closemenu\": this.closeMenu,\n \"expandchange\": this.expandChange,\n \"filterchange\": this.filterChange\n },\n onClosemenu: this.closeMenu,\n onExpandchange: this.expandChange,\n onFilterchange: this.filterChange\n })]);\n return getTemplate.call(this, {\n h: h,\n template: typeof renderTemplate !== 'boolean' && renderTemplate,\n defaultRendering: defaultRendering,\n additionalProps: this.$props,\n additionalListeners: {\n closemenu: this.closeMenu,\n filterchange: this.filterChange,\n sortchange: this.sortChange,\n expandchange: this.expandChange\n }\n });\n }\n};\nvar ColumnMenuContentVue3 = ColumnMenuContent;\nexport { ColumnMenuContent, ColumnMenuContentVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar inject = allVue.inject;\nimport { guid } from '@progress/kendo-vue-common';\nimport { Popup } from '@progress/kendo-vue-popup';\nimport { ColumnMenuContent } from './ColumnMenuContent';\nimport { tableKeyboardNavigationTools } from '@progress/kendo-vue-data-tools';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { messages, columnMenu } from '../messages';\n/**\n * Represents the default `ColumnMenu` component.\n */\n\nvar ColumnMenu = {\n name: 'KendoColumnMenu',\n props: {\n animate: {\n type: [Boolean, Object],\n default: function _default() {\n return true;\n }\n },\n column: Object,\n sortable: [Boolean, Object],\n sort: {\n type: Array\n },\n opened: Boolean,\n filter: Object,\n filterable: Boolean,\n filterOperators: Object,\n render: [Boolean, String, Function, Object]\n },\n inject: {\n kendoIntlService: {\n default: null\n },\n kendoLocalizationService: {\n default: null\n }\n },\n data: function data() {\n return {\n show: false,\n blurTimeout: undefined\n };\n },\n created: function created() {\n this._anchor = guid();\n },\n computed: {\n currentOpen: function currentOpen() {\n return this.show || this.$props.opened;\n }\n },\n watch: {\n currentOpen: function currentOpen(newOpened) {\n this.$nextTick(function () {\n this._content = this.$refs.content;\n\n if (newOpened && this._content) {\n var focusableElements = tableKeyboardNavigationTools.getFocusableElements(this._content, {\n focusable: true\n });\n\n if (focusableElements.length) {\n focusableElements[0].focus();\n } else {\n this._content.focus();\n }\n }\n });\n }\n },\n methods: {\n blur: function blur() {\n var _this = this;\n\n clearTimeout(this.blurTimeout);\n this.blurTimeout = setTimeout(function () {\n _this.closeMenu();\n }, 200);\n },\n focus: function focus() {\n clearTimeout(this.blurTimeout);\n },\n handleFocus: function handleFocus(_) {\n clearTimeout(this.blurTimeout);\n },\n anchorClick: function anchorClick() {\n var that = this;\n this.show = !this.show;\n },\n closeMenu: function closeMenu() {\n this.$emit('close');\n this.show = false;\n },\n sortChange: function sortChange(newDescriptor, e) {\n this.$emit('sortchange', newDescriptor, e);\n },\n filterChange: function filterChange(newDescriptor, e) {\n this.$emit('filterchange', newDescriptor, e);\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this2 = this;\n\n var _this = this;\n\n var h = gh || createElement;\n var renderTemplate = this.$props.render;\n var ls = provideLocalizationService(this);\n return h(\"div\", {\n style: {\n display: 'inline'\n }\n }, [h(\"div\", {\n \"class\": 'k-grid-column-menu k-grid-filter',\n tabindex: 0,\n attrs: this.v3 ? undefined : {\n tabindex: 0,\n title: this.$props.column.field + \" \" + ls.toLanguageString(columnMenu, messages[columnMenu])\n },\n title: this.$props.column.field + \" \" + ls.toLanguageString(columnMenu, messages[columnMenu]),\n ref: this.v3 ? function (el) {\n _this.kendoAnchorRef = el;\n } : this._anchor,\n onClick: this.anchorClick,\n on: this.v3 ? undefined : {\n \"click\": this.anchorClick\n }\n }, [h(\"span\", {\n \"class\": 'k-icon k-i-more-vertical'\n })]), // @ts-ignore function children\n h(Popup, {\n animate: this.$props.animate,\n attrs: this.v3 ? undefined : {\n animate: this.$props.animate,\n anchor: this._anchor,\n show: this.currentOpen\n },\n anchor: this._anchor,\n show: this.currentOpen\n }, this.v3 ? function () {\n return [h(\"div\", {\n ref: 'content',\n \"class\": 'k-grid-columnmenu-popup',\n tabIndex: 0,\n attrs: _this2.v3 ? undefined : {\n tabIndex: 0\n },\n onFocusout: _this2.blur,\n on: _this2.v3 ? undefined : {\n \"focusout\": _this2.blur,\n \"focusin\": _this2.focus\n },\n onFocusin: _this2.focus,\n style: {\n outline: 'none'\n }\n }, [// @ts-ignore\n h(ColumnMenuContent, {\n column: _this2.$props.column,\n attrs: _this2.v3 ? undefined : {\n column: _this2.$props.column,\n sortable: _this2.$props.sortable,\n sort: _this2.$props.sort,\n filter: _this2.$props.filter,\n filterable: _this2.$props.filterable,\n filterOperators: _this2.$props.filterOperators,\n render: renderTemplate\n },\n sortable: _this2.$props.sortable,\n sort: _this2.$props.sort,\n filter: _this2.$props.filter,\n filterable: _this2.$props.filterable,\n filterOperators: _this2.$props.filterOperators,\n render: renderTemplate,\n onContentfocus: _this2.handleFocus,\n on: _this2.v3 ? undefined : {\n \"contentfocus\": _this2.handleFocus,\n \"closemenu\": _this2.closeMenu,\n \"sortchange\": _this2.sortChange,\n \"filterchange\": _this2.filterChange\n },\n onClosemenu: _this2.closeMenu,\n onSortchange: _this2.sortChange,\n onFilterchange: _this2.filterChange\n })])];\n } : [h(\"div\", {\n ref: 'content',\n \"class\": 'k-grid-columnmenu-popup',\n tabIndex: 0,\n attrs: _this2.v3 ? undefined : {\n tabIndex: 0\n },\n onFocusout: _this2.blur,\n on: _this2.v3 ? undefined : {\n \"focusout\": _this2.blur,\n \"focusin\": _this2.focus\n },\n onFocusin: _this2.focus,\n style: {\n outline: 'none'\n }\n }, [h(ColumnMenuContent, {\n column: _this2.$props.column,\n attrs: _this2.v3 ? undefined : {\n column: _this2.$props.column,\n sortable: _this2.$props.sortable,\n sort: _this2.$props.sort,\n filter: _this2.$props.filter,\n filterable: _this2.$props.filterable,\n filterOperators: _this2.$props.filterOperators,\n render: renderTemplate\n },\n sortable: _this2.$props.sortable,\n sort: _this2.$props.sort,\n filter: _this2.$props.filter,\n filterable: _this2.$props.filterable,\n filterOperators: _this2.$props.filterOperators,\n render: renderTemplate,\n onContentfocus: _this2.handleFocus,\n on: _this2.v3 ? undefined : {\n \"contentfocus\": _this2.handleFocus,\n \"closemenu\": _this2.closeMenu,\n \"sortchange\": _this2.sortChange,\n \"filterchange\": _this2.filterChange\n },\n onClosemenu: _this2.closeMenu,\n onSortchange: _this2.sortChange,\n onFilterchange: _this2.filterChange\n })])])]);\n }\n};\nvar ColumnMenuVue3 = ColumnMenu;\nexport { ColumnMenu, ColumnMenuVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { normalize } from '../interfaces/GridSortSettings';\nimport { ColumnResizer } from '../drag/ColumnResizer';\nimport { ColumnDraggable } from '../drag/ColumnDraggable';\nimport { GridHeaderCell } from './GridHeaderCell'; // import { GridColumnMenuProps } from '../interfaces/GridColumnMenuProps';\n\nimport { ColumnMenu } from '../columnMenu/ColumnMenu';\nimport { templateRendering, hasListener, getListeners, Keys, noop } from '@progress/kendo-vue-common';\nimport { HeaderThElement } from '@progress/kendo-vue-data-tools'; // from '../../../datatools/src/main';\n\n/**\n * @hidden\n */\n\nvar ariaSortMap = {\n 'none': 'none',\n 'asc': 'ascending',\n 'desc': 'descending'\n};\n/**\n * @hidden\n */\n\nvar sortSeqMap = {\n true: {\n 'asc': 'desc',\n 'desc': '',\n '': 'asc'\n },\n false: {\n 'asc': 'desc',\n 'desc': 'asc',\n '': 'asc'\n }\n};\n/**\n * Represents the default `HeaderRow` component.\n */\n\nvar HeaderRow = {\n name: 'KendoHeaderRow',\n props: {\n grid: Object,\n cellRender: [String, Function, Object],\n groupable: [Boolean, Object],\n reorderable: Boolean,\n sortable: [Boolean, Object],\n sort: {\n type: Array\n },\n filter: Object,\n filterable: Boolean,\n filterOperators: Object,\n filterChange: Function,\n filterRow: Object,\n columns: Array,\n columnsMap: Array,\n columnResize: Object,\n columnMenu: [Boolean, String, Function, Object],\n columnMenuAnimate: {\n type: [Boolean, Object],\n default: function _default() {\n return true;\n }\n },\n isRtl: Boolean\n },\n inject: {\n onNavFocus: {\n default: noop\n }\n },\n data: function data() {\n return {\n columnMenuOpened: {}\n };\n },\n created: function created() {\n this.serviceIndex = 0;\n this.index = -1;\n this._element = null;\n this.cellClick = this.cellClick.bind(this);\n },\n methods: {\n pressHandler: function pressHandler(event, element) {\n this.$emit('pressHandler', event, element);\n },\n dragHandler: function dragHandler(event, element) {\n this.$emit('dragHandler', event, element);\n },\n releaseHandler: function releaseHandler(event) {\n this.$emit('releaseHandler', event);\n },\n selectionChangeHandler: function selectionChangeHandler(options) {\n this.$emit('selectionchange', options);\n },\n cellClick: function cellClick(e, column) {\n e.preventDefault();\n\n if (!hasListener.call(this, 'sortChange')) {\n return;\n }\n\n var _a = normalize(this.$props.sortable || false, column.sortable || false),\n allowUnsort = _a.allowUnsort,\n mode = _a.mode;\n\n var oldDescriptor = (this.$props.sort || []).filter(function (d) {\n return d.field === column.field;\n })[0];\n var dir = sortSeqMap[allowUnsort][oldDescriptor && oldDescriptor.dir || ''];\n var newDescriptor = mode === 'single' ? [] : (this.$props.sort || []).filter(function (d) {\n return d.field !== column.field;\n });\n\n if (dir !== '' && column.field) {\n newDescriptor.push({\n field: column.field,\n dir: dir\n });\n }\n\n this.sortChangeHandler(newDescriptor, {\n event: e,\n field: column.field\n });\n },\n sortChangeHandler: function sortChangeHandler(newDescriptor, e) {\n this.$emit('sortChange', newDescriptor, e);\n },\n filterChangeHandler: function filterChangeHandler(newDescriptor, e) {\n this.$emit('filterChange', newDescriptor, e);\n },\n cellClass: function cellClass(field, headerClassName, locked) {\n var customClass = headerClassName ? ' ' + headerClassName : '';\n var result = \"k-header \" + (locked ? 'k-grid-header-sticky' : '') + customClass;\n\n if (this.$props.sort && this.$props.sort.filter(function (descriptor) {\n return descriptor.field === field;\n }).length > 0) {\n result += ' k-sorted';\n }\n\n return result;\n },\n cellKeyDown: function cellKeyDown(event, column) {\n var _a;\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (event.keyCode === Keys.enter) {\n this.cellClick(event, column);\n }\n\n if (event.altKey && event.keyCode === Keys.down) {\n if (column.field) {\n event.preventDefault();\n this.columnMenuOpened = (_a = {}, _a[column.field] = true, _a);\n }\n }\n },\n getTemplate: function getTemplate(template) {\n return templateRendering.call(this.$props.grid, template, getListeners.call(this.$props.grid));\n },\n columnMenuClose: function columnMenuClose() {\n this.onNavFocus({});\n this.columnMenuOpened = {};\n }\n },\n computed: {\n element: {\n get: function get() {\n return this._element;\n }\n },\n theadClasses: {\n get: function get() {\n return {\n 'k-grid-header': true\n };\n }\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n this.serviceIndex = 0;\n this.index = -1;\n\n var cells = function cells(rowIndexes) {\n return rowIndexes.map(function (columnIndex) {\n var _this2 = this;\n\n var _this = this;\n\n var column = this.$props.columns[columnIndex];\n var sortable = this.$props.sortable && column.sortable;\n var sortIndex = this.$props.sort ? this.$props.sort.findIndex(function (s) {\n return s.field === column.field;\n }) : -1;\n var sortDir = sortIndex >= 0 ? this.$props.sort[sortIndex].dir || 'none' : 'none';\n\n var sortIconRenderer = function sortIconRenderer(iconSortIndex) {\n if (!_this.$props.sort) {\n return null;\n }\n\n return iconSortIndex >= 0 && [h(\"span\", {\n key: 1,\n \"class\": 'k-icon k-i-sort-' + _this.$props.sort[iconSortIndex].dir + '-sm'\n }), _this.$props.sort.length > 1 && h(\"span\", {\n key: 2,\n \"class\": \"k-sort-order\"\n }, [iconSortIndex + 1])];\n };\n\n var sortIcon = sortIconRenderer(sortIndex);\n var className = (column.kFirst ? 'k-first ' : '') + this.cellClass(column.field, column.headerClassName, column.locked);\n var columnMenu = column.columnMenu || column.columnMenu === false ? column.columnMenu : this.$props.columnMenu;\n var columnMenuRender = !columnMenu || typeof columnMenu === 'boolean' ? !!columnMenu : this.getTemplate(columnMenu);\n var style = column.left !== undefined ? !this.$props.isRtl ? {\n left: column.left + 'px',\n right: column.right + 'px'\n } : {\n left: column.right + 'px',\n right: column.left + 'px'\n } : {};\n var ariaAttrs = column.isAccessible ? {\n ariaSort: ariaSortMap[sortDir],\n role: 'columnheader',\n ariaColumnIndex: column.ariaColumnIndex,\n ariaSelected: false\n } : {\n 'role': 'presentation'\n };\n var key = column.declarationIndex >= 0 ? ++this.index : --this.serviceIndex;\n return (// @ts-ignore function children\n h(HeaderThElement, {\n ariaSort: ariaAttrs.ariaSort,\n attrs: this.v3 ? undefined : {\n ariaSort: ariaAttrs.ariaSort,\n role: ariaAttrs.role,\n ariaColumnIndex: ariaAttrs.ariaColumnIndex,\n ariaSelected: ariaAttrs.ariaSelected,\n colSpan: column.colSpan,\n rowSpan: column.rowSpan,\n columnId: column.id,\n navigatable: column.navigatable\n },\n role: ariaAttrs.role,\n ariaColumnIndex: ariaAttrs.ariaColumnIndex,\n ariaSelected: ariaAttrs.ariaSelected,\n key: key,\n colSpan: column.colSpan,\n rowSpan: column.rowSpan,\n \"class\": className,\n style: style,\n columnId: column.id,\n navigatable: column.navigatable,\n onKeydown: function onKeydown(e) {\n return _this.cellKeyDown(e, column);\n },\n on: this.v3 ? undefined : {\n \"keydown\": function onKeydown(e) {\n return _this.cellKeyDown(e, column);\n }\n }\n }, this.v3 ? function () {\n return [[// @ts-ignore\n column.children.length === 0 && columnMenu && h(ColumnMenu, {\n key: 0,\n column: {\n field: column.field,\n filter: column.filter\n },\n attrs: _this2.v3 ? undefined : {\n column: {\n field: column.field,\n filter: column.filter\n },\n opened: _this2.columnMenuOpened[column.field],\n animate: _this2.$props.columnMenuAnimate,\n sortable: sortable,\n sort: _this2.$props.sort,\n filter: _this2.$props.filter,\n filterable: _this2.$props.filterable && column.filterable,\n filterOperators: _this2.$props.filterOperators,\n render: columnMenuRender\n },\n opened: _this2.columnMenuOpened[column.field],\n animate: _this2.$props.columnMenuAnimate,\n sortable: sortable,\n sort: _this2.$props.sort,\n onClose: _this2.columnMenuClose,\n on: _this2.v3 ? undefined : {\n \"close\": _this2.columnMenuClose,\n \"sortchange\": _this2.sortChangeHandler,\n \"filterchange\": _this2.filterChangeHandler\n },\n onSortchange: _this2.sortChangeHandler,\n filter: _this2.$props.filter,\n filterable: _this2.$props.filterable && column.filterable,\n filterOperators: _this2.$props.filterOperators,\n onFilterchange: _this2.filterChangeHandler,\n render: columnMenuRender\n }), column.internalHeaderCell && // @ts-ignore function children\n h(column.internalHeaderCell, {\n key: 1,\n field: column.field,\n attrs: _this2.v3 ? undefined : {\n field: column.field,\n sortable: sortable,\n selectionValue: column.headerSelectionValue,\n title: column.title,\n render: (column.headerCell || _this2.$props.cellRender) && _this2.getTemplate(column.headerCell || _this2.$props.cellRender)\n },\n sortable: sortable,\n onHeadercellclick: function onHeadercellclick(e) {\n return _this.cellClick(e, column);\n },\n on: _this2.v3 ? undefined : {\n \"headercellclick\": function onHeadercellclick(e) {\n return _this.cellClick(e, column);\n },\n \"selectionchange\": _this2.selectionChangeHandler\n },\n onSelectionchange: _this2.selectionChangeHandler,\n selectionValue: column.headerSelectionValue,\n title: column.title,\n render: (column.headerCell || _this2.$props.cellRender) && _this2.getTemplate(column.headerCell || _this2.$props.cellRender)\n }, _this2.v3 ? function () {\n return [sortIcon];\n } : [sortIcon]) || // @ts-ignore function children\n h(GridHeaderCell, {\n key: 1,\n field: column.field,\n attrs: _this2.v3 ? undefined : {\n field: column.field,\n sortable: sortable,\n selectionValue: column.headerSelectionValue,\n title: column.title,\n render: (column.headerCell || _this2.$props.cellRender) && _this2.getTemplate(column.headerCell || _this2.$props.cellRender)\n },\n sortable: sortable,\n onHeadercellclick: function onHeadercellclick(e) {\n return _this.cellClick(e, column);\n },\n on: _this2.v3 ? undefined : {\n \"headercellclick\": function onHeadercellclick(e) {\n return _this.cellClick(e, column);\n }\n },\n selectionValue: column.headerSelectionValue,\n title: column.title,\n render: (column.headerCell || _this2.$props.cellRender) && _this2.getTemplate(column.headerCell || _this2.$props.cellRender)\n }, _this2.v3 ? function () {\n return [sortIcon];\n } : [sortIcon]), _this2.$props.columnResize && _this2.$props.columnResize.resizable // @ts-ignore\n && column.resizable && h(ColumnResizer, {\n key: 2,\n onResize: function onResize(e, element, end) {\n return _this.$props.columnResize && _this.$props.columnResize.dragHandler(e, column, element, end);\n },\n on: _this2.v3 ? undefined : {\n \"resize\": function onResize(e, element, end) {\n return _this.$props.columnResize && _this.$props.columnResize.dragHandler(e, column, element, end);\n }\n }\n })]];\n } : [[column.children.length === 0 && columnMenu && h(ColumnMenu, {\n key: 0,\n column: {\n field: column.field,\n filter: column.filter\n },\n attrs: _this2.v3 ? undefined : {\n column: {\n field: column.field,\n filter: column.filter\n },\n opened: _this2.columnMenuOpened[column.field],\n animate: _this2.$props.columnMenuAnimate,\n sortable: sortable,\n sort: _this2.$props.sort,\n filter: _this2.$props.filter,\n filterable: _this2.$props.filterable && column.filterable,\n filterOperators: _this2.$props.filterOperators,\n render: columnMenuRender\n },\n opened: _this2.columnMenuOpened[column.field],\n animate: _this2.$props.columnMenuAnimate,\n sortable: sortable,\n sort: _this2.$props.sort,\n onClose: _this2.columnMenuClose,\n on: _this2.v3 ? undefined : {\n \"close\": _this2.columnMenuClose,\n \"sortchange\": _this2.sortChangeHandler,\n \"filterchange\": _this2.filterChangeHandler\n },\n onSortchange: _this2.sortChangeHandler,\n filter: _this2.$props.filter,\n filterable: _this2.$props.filterable && column.filterable,\n filterOperators: _this2.$props.filterOperators,\n onFilterchange: _this2.filterChangeHandler,\n render: columnMenuRender\n }), column.internalHeaderCell && h(column.internalHeaderCell, {\n key: 1,\n field: column.field,\n attrs: _this2.v3 ? undefined : {\n field: column.field,\n sortable: sortable,\n selectionValue: column.headerSelectionValue,\n title: column.title,\n render: (column.headerCell || _this2.$props.cellRender) && _this2.getTemplate(column.headerCell || _this2.$props.cellRender)\n },\n sortable: sortable,\n onHeadercellclick: function onHeadercellclick(e) {\n return _this.cellClick(e, column);\n },\n on: _this2.v3 ? undefined : {\n \"headercellclick\": function onHeadercellclick(e) {\n return _this.cellClick(e, column);\n },\n \"selectionchange\": _this2.selectionChangeHandler\n },\n onSelectionchange: _this2.selectionChangeHandler,\n selectionValue: column.headerSelectionValue,\n title: column.title,\n render: (column.headerCell || _this2.$props.cellRender) && _this2.getTemplate(column.headerCell || _this2.$props.cellRender)\n }, _this2.v3 ? function () {\n return [sortIcon];\n } : [sortIcon]) || h(GridHeaderCell, {\n key: 1,\n field: column.field,\n attrs: _this2.v3 ? undefined : {\n field: column.field,\n sortable: sortable,\n selectionValue: column.headerSelectionValue,\n title: column.title,\n render: (column.headerCell || _this2.$props.cellRender) && _this2.getTemplate(column.headerCell || _this2.$props.cellRender)\n },\n sortable: sortable,\n onHeadercellclick: function onHeadercellclick(e) {\n return _this.cellClick(e, column);\n },\n on: _this2.v3 ? undefined : {\n \"headercellclick\": function onHeadercellclick(e) {\n return _this.cellClick(e, column);\n }\n },\n selectionValue: column.headerSelectionValue,\n title: column.title,\n render: (column.headerCell || _this2.$props.cellRender) && _this2.getTemplate(column.headerCell || _this2.$props.cellRender)\n }, _this2.v3 ? function () {\n return [sortIcon];\n } : [sortIcon]), _this2.$props.columnResize && _this2.$props.columnResize.resizable && column.resizable && h(ColumnResizer, {\n key: 2,\n onResize: function onResize(e, element, end) {\n return _this.$props.columnResize && _this.$props.columnResize.dragHandler(e, column, element, end);\n },\n on: _this2.v3 ? undefined : {\n \"resize\": function onResize(e, element, end) {\n return _this.$props.columnResize && _this.$props.columnResize.dragHandler(e, column, element, end);\n }\n }\n })]])\n );\n }, this);\n };\n\n return h(\"thead\", {\n role: \"presentation\",\n attrs: this.v3 ? undefined : {\n role: \"presentation\",\n \"data-keyboardnavheader\": true\n },\n \"class\": this.theadClasses,\n \"data-keyboardnavheader\": true\n }, [this.$props.columnsMap.map(function (rowIndexes, index) {\n var _this3 = this;\n\n return (this.$props.groupable || this.$props.reorderable) && // @ts-ignore function children\n h(ColumnDraggable, {\n key: index,\n onPressHandler: this.pressHandler,\n on: this.v3 ? undefined : {\n \"pressHandler\": this.pressHandler,\n \"dragHandler\": this.dragHandler,\n \"releaseHandler\": this.releaseHandler\n },\n onDragHandler: this.dragHandler,\n onReleaseHandler: this.releaseHandler\n }, this.v3 ? function () {\n return [cells.call(_this3, rowIndexes)];\n } : [cells.call(_this3, rowIndexes)]) || h(\"tr\", [cells.call(this, rowIndexes)]);\n }, this), this.$props.filterRow]);\n }\n};\nvar HeaderRowVue3 = HeaderRow;\nexport { HeaderRow, HeaderRowVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar inject = allVue.inject;\nimport { messages, filterClearButton, filterChooseOperator } from '../messages';\nimport { DropDownList } from '@progress/kendo-vue-dropdowns';\nimport { NumericTextBox } from '@progress/kendo-vue-inputs';\nimport { DatePicker } from '@progress/kendo-vue-dateinputs';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { cellBoolDropdownChange, cellInputChange, cellOperatorChange } from '../filterCommon';\nimport { templateRendering, getListeners, getTemplate } from '@progress/kendo-vue-common';\n/**\n * Represents the default `GridFilterCell` component.\n */\n\nvar GridFilterCell = {\n name: 'KendoGridFilterCell',\n props: {\n id: String,\n grid: Object,\n field: String,\n filterType: String,\n colSpan: Number,\n title: String,\n value: [String, Number, Boolean, Date],\n operator: [String, Function],\n operators: Array,\n booleanValues: Array,\n onChange: Function,\n render: [String, Function, Object]\n },\n inject: {\n kendoLocalizationService: {\n default: null\n },\n kendoIntlService: {\n default: null\n }\n },\n methods: {\n inputChange: function inputChange(value, e) {\n var filter = cellInputChange(value, e, this.$props);\n this.triggerChange(filter);\n },\n operatorChange: function operatorChange(operatorValue, e) {\n var filter = cellOperatorChange(operatorValue.value.operator, e, this.$props.value);\n this.triggerChange(filter);\n },\n boolDropdownChange: function boolDropdownChange(value, e) {\n var filter = cellBoolDropdownChange(value.value.operator, e);\n this.triggerChange(filter);\n },\n clear: function clear(e) {\n e.preventDefault();\n this.triggerChange({\n value: '',\n operator: '',\n event: e\n });\n },\n triggerChange: function triggerChange(filter) {\n filter.field = this.$props.field;\n this.$emit('change', filter);\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoIntlService = inject('kendoIntlService', {});\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n kendoIntlService: kendoIntlService,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var localizationService = provideLocalizationService(this);\n var selectedOperator = this.$props.operators.find(function (item) {\n return item.operator === _this.$props.operator;\n }) || null;\n\n var renderOperatorEditor = function renderOperatorEditor() {\n if (this.$props.filterType === 'boolean') {\n return;\n }\n\n return (// @ts-ignore\n h(DropDownList, {\n onChange: this.operatorChange,\n on: this.v3 ? undefined : {\n \"change\": this.operatorChange\n },\n value: selectedOperator,\n attrs: this.v3 ? undefined : {\n value: selectedOperator,\n iconClassName: \"k-i-filter k-icon\",\n \"data-items\": this.$props.operators,\n textField: \"text\",\n title: localizationService.toLanguageString(filterChooseOperator, messages[filterChooseOperator]),\n popupSettings: {\n width: ''\n }\n },\n \"class\": \"k-dropdown-operator\",\n iconClassName: \"k-i-filter k-icon\",\n \"data-items\": this.$props.operators,\n textField: \"text\",\n title: localizationService.toLanguageString(filterChooseOperator, messages[filterChooseOperator]),\n popupSettings: {\n width: ''\n }\n })\n );\n };\n\n var filterComponent = function filterComponent(filterType, value) {\n var _this = this;\n\n switch (filterType) {\n case 'numeric':\n return (// @ts-ignore\n h(NumericTextBox, {\n value: value,\n attrs: this.v3 ? undefined : {\n value: value,\n title: this.$props.title\n },\n onChange: function onChange(e) {\n _this.inputChange(e.value, e.event);\n },\n on: this.v3 ? undefined : {\n \"change\": function onChange(e) {\n _this.inputChange(e.value, e.event);\n }\n },\n title: this.$props.title\n })\n );\n\n case 'date':\n return (// @ts-ignore\n h(DatePicker, {\n value: value,\n attrs: this.v3 ? undefined : {\n value: value,\n title: this.$props.title\n },\n onChange: function onChange(e) {\n _this.inputChange(e.value, e);\n },\n on: this.v3 ? undefined : {\n \"change\": function onChange(e) {\n _this.inputChange(e.value, e);\n }\n },\n title: this.$props.title\n })\n );\n\n case 'boolean':\n var booleanValues = this.$props.booleanValues;\n return (// @ts-ignore\n h(DropDownList, {\n onChange: this.boolDropdownChange,\n on: this.v3 ? undefined : {\n \"change\": this.boolDropdownChange\n },\n value: booleanValues.find(function (item) {\n return item.operator === (value || '');\n }),\n attrs: this.v3 ? undefined : {\n value: booleanValues.find(function (item) {\n return item.operator === (value || '');\n }),\n \"data-items\": booleanValues,\n textField: \"text\",\n title: this.$props.title\n },\n \"data-items\": booleanValues,\n textField: \"text\",\n title: this.$props.title\n })\n );\n\n default:\n return h(\"input\", {\n \"class\": \"k-textbox\",\n value: this.v3 ? value || '' : null,\n domProps: this.v3 ? undefined : {\n \"value\": value || ''\n },\n onInput: function onInput(e) {\n _this.inputChange(e.target.value, e);\n },\n on: this.v3 ? undefined : {\n \"input\": function onInput(e) {\n _this.inputChange(e.target.value, e);\n }\n },\n title: this.$props.title,\n attrs: this.v3 ? undefined : {\n title: this.$props.title\n }\n });\n }\n };\n\n var defaultRendering = h(\"div\", {\n \"class\": \"k-filtercell\"\n }, [h(\"div\", {\n \"class\": \"k-filtercell-wrapper\"\n }, [filterComponent.call(this, this.$props.filterType, this.$props.value), h(\"div\", {\n \"class\": \"k-filtercell-operator\"\n }, [renderOperatorEditor.call(this), h(\"button\", {\n \"class\":\n /* button is always visible if there is either value or operator */\n !(this.$props.value === null || this.$props.value === '') || this.$props.operator ? 'k-button k-button-icon k-clear-button-visible' : 'k-button k-button-icon',\n title: localizationService.toLanguageString(filterClearButton, messages[filterClearButton]),\n attrs: this.v3 ? undefined : {\n title: localizationService.toLanguageString(filterClearButton, messages[filterClearButton]),\n type: \"button\"\n },\n type: \"button\",\n onClick: this.clear,\n on: this.v3 ? undefined : {\n \"click\": this.clear\n }\n }, [h(\"span\", {\n \"class\": \"k-icon k-i-filter-clear\"\n })])])])]);\n var gridListeners = this.$props.grid ? getListeners.call(this.$props.grid) : null;\n var cellRenderFunction = templateRendering.call(this.$props.grid, this.$props.render, gridListeners);\n return getTemplate.call(this, {\n h: h,\n template: cellRenderFunction,\n defaultRendering: defaultRendering,\n additionalProps: this.$props,\n additionalListeners: {\n change: this.triggerChange\n }\n });\n }\n};\nvar GridFilterCellVue3 = GridFilterCell;\nexport { GridFilterCell, GridFilterCellVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar inject = allVue.inject;\nimport { operatorMap, booleanFilterValues, getFilterType } from '../filterCommon';\nimport { GridFilterCell } from '../cells/GridFilterCell';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { filterAriaLabel, messages } from '../messages';\nimport { tableKeyboardNavigationTools as navigationTools, HeaderThElement } from '@progress/kendo-vue-data-tools';\n/**\n * Represents the default `FilterRow` component.\n */\n\nvar FilterRow = {\n name: 'kendoFilterRow',\n props: {\n grid: Object,\n columns: Array,\n filter: Object,\n filterOperators: Object,\n sort: [Object, Array],\n cellRender: [String, Function, Object],\n isRtl: Boolean\n },\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n methods: {\n headerCellClassName: function headerCellClassName(field, locked) {\n var result = \"\" + (locked ? 'k-grid-header-sticky' : '');\n\n if (this.$props.sort && this.$props.sort.filter(function (descriptor) {\n return descriptor.field === field;\n }).length > 0) {\n result += ' k-sorted';\n }\n\n return result;\n },\n setFilter: function setFilter(value, operator, field, e) {\n var filters = [];\n\n if (value !== '' && value !== null || operator !== '') {\n filters.push({\n field: field,\n operator: operator,\n value: value\n });\n }\n\n if (this.$props.filter && this.$props.filter.filters) {\n var oldFilters = this.$props.filter.filters || [];\n oldFilters.forEach(function (filter) {\n var descriptor = filter;\n\n if (descriptor && descriptor.field !== field) {\n filters.push(descriptor);\n }\n });\n }\n\n var filtersResult = filters.length > 0 ? {\n logic: 'and',\n filters: filters\n } : null;\n this.$emit('filterchange', filtersResult, e);\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var intl = provideLocalizationService(this);\n var oldFilters = this.$props.filter && this.$props.filter.filters || [];\n\n var activeFilterValueFor = function activeFilterValueFor(field, defaultValue) {\n if (defaultValue === void 0) {\n defaultValue = null;\n }\n\n var found = oldFilters.filter(function (filter) {\n return filter.field === field;\n })[0];\n return found ? found.value : defaultValue;\n };\n\n var activeOperatorFor = function activeOperatorFor(field) {\n var found = oldFilters.filter(function (filter) {\n return filter.field === field;\n })[0];\n return found ? found.operator : null;\n };\n\n var filterCellProps;\n var serviceIndex = 0,\n index = -1;\n var filterCells = this.$props.columns.filter(function (c) {\n return c.children.length === 0;\n }).map(function (column) {\n var _this = this;\n\n var onChangeFn = function onChangeFn(e) {\n _this.setFilter(e.value, e.operator, column.field, e);\n };\n\n var filterType = getFilterType(column.filter); // @ts-ignore\n\n var filterRender = h(GridFilterCell, {\n grid: this.$props.grid,\n attrs: this.v3 ? undefined : {\n grid: this.$props.grid,\n field: column.field,\n title: column.filterTitle,\n value: activeFilterValueFor(column.field, filterType === 'text' ? '' : null),\n operator: activeOperatorFor(column.field),\n operators: operatorMap(this.$props.filterOperators[filterType] || [], intl),\n booleanValues: operatorMap(booleanFilterValues, intl),\n filterType: filterType,\n render: column.filterCell || this.$props.cellRender\n },\n field: column.field,\n title: column.filterTitle,\n value: activeFilterValueFor(column.field, filterType === 'text' ? '' : null),\n operator: activeOperatorFor(column.field),\n operators: operatorMap(this.$props.filterOperators[filterType] || [], intl),\n booleanValues: operatorMap(booleanFilterValues, intl),\n filterType: filterType,\n onChange: onChangeFn,\n on: this.v3 ? undefined : {\n \"change\": onChangeFn\n },\n render: column.filterCell || this.$props.cellRender\n });\n var key = column.declarationIndex >= 0 ? ++index : --serviceIndex;\n var ariaAttrs = {\n ariaLabel: column.filterable ? intl.toLanguageString(filterAriaLabel, messages[filterAriaLabel]) : undefined,\n ariaColumnIndex: column.ariaColumnIndex\n };\n var style = column.left !== undefined ? !this.$props.isRtl ? {\n left: column.left + 'px',\n right: column.right + 'px'\n } : {\n left: column.right + 'px',\n right: column.left + 'px'\n } : {};\n var filterCell = // @ts-ignore function children\n h(HeaderThElement, {\n key: key,\n columnId: navigationTools.getFilterColumnId(column.id),\n attrs: this.v3 ? undefined : {\n columnId: navigationTools.getFilterColumnId(column.id),\n navigatable: column.navigatable,\n ariaLabel: ariaAttrs.ariaLabel,\n ariaColumnIndex: ariaAttrs.ariaColumnIndex\n },\n navigatable: column.navigatable,\n style: style,\n \"class\": this.headerCellClassName(column.field, column.locked) || undefined,\n ariaLabel: ariaAttrs.ariaLabel,\n ariaColumnIndex: ariaAttrs.ariaColumnIndex\n }, this.v3 ? function () {\n return [filterRender];\n } : [filterRender]);\n return column.filterable && filterCell || // @ts-ignore function children\n h(HeaderThElement, {\n key: key,\n columnId: navigationTools.getFilterColumnId(column.id),\n attrs: this.v3 ? undefined : {\n columnId: navigationTools.getFilterColumnId(column.id),\n navigatable: column.navigatable,\n ariaLabel: ariaAttrs.ariaLabel,\n ariaColumnIndex: ariaAttrs.ariaColumnIndex\n },\n navigatable: column.navigatable,\n style: style,\n \"class\": this.headerCellClassName(column.field, column.locked) || undefined,\n ariaLabel: ariaAttrs.ariaLabel,\n ariaColumnIndex: ariaAttrs.ariaColumnIndex\n });\n }, this);\n return h(\"tr\", {\n \"class\": \"k-filter-row\"\n }, [filterCells]);\n }\n};\nvar FilterRowVue3 = FilterRow;\nexport { FilterRow, FilterRowVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nimport { Draggable } from '@progress/kendo-vue-common';\n/**\n * Represents the default `GroupingIndicator` component.\n */\n\nvar GroupingIndicator = {\n props: {\n title: String,\n dir: String // 'asc' | 'desc';\n\n },\n mounted: function mounted() {\n this.element = this.v3 ? this.indicatorContainerRef : this.$refs.indicatorContainer;\n\n if (this.element) {\n this.draggable = this.$refs.draggable;\n }\n },\n methods: {\n press: function press(event) {\n if (this.element) {\n this.$emit('press', event, this.element);\n }\n },\n drag: function drag(event) {\n if (this.element) {\n this.$emit('drag', event, this.element);\n }\n },\n release: function release(event) {\n if (this.element) {\n this.$emit('release', event, this.element);\n }\n },\n sortChange: function sortChange(event) {\n event.preventDefault();\n var sort = this.$props.dir === 'asc' ? 'desc' : 'asc';\n this.$emit('sortChange', event, sort);\n },\n groupRemove: function groupRemove(event) {\n event.preventDefault();\n this.$emit('remove', event);\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var indicatorContainerRef = ref(null);\n return {\n v3: v3,\n indicatorContainerRef: indicatorContainerRef\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this2 = this;\n\n var _this = this;\n\n var h = gh || createElement;\n return (// @ts-ignore function children\n h(Draggable, {\n onPress: this.press,\n on: this.v3 ? undefined : {\n \"press\": this.press,\n \"drag\": this.drag,\n \"release\": this.release\n },\n onDrag: this.drag,\n onRelease: this.release,\n ref: 'draggable'\n }, this.v3 ? function () {\n return [h(\"div\", {\n \"class\": \"k-indicator-container\",\n ref: _this2.v3 ? function (el) {\n _this.indicatorContainerRef = el;\n } : 'indicatorContainer'\n }, [h(\"div\", {\n \"class\": \"k-group-indicator\"\n }, [h(\"a\", {\n \"class\": \"k-link\",\n href: \"#\",\n attrs: _this2.v3 ? undefined : {\n href: \"#\",\n tabIndex: -1\n },\n tabIndex: -1,\n onClick: _this2.sortChange,\n on: _this2.v3 ? undefined : {\n \"click\": _this2.sortChange\n }\n }, [h(\"span\", {\n \"class\": 'k-icon k-i-sort-' + _this2.$props.dir + '-sm'\n }), _this2.$props.title]), h(\"a\", {\n \"class\": \"k-button k-button-icon k-bare\",\n tabIndex: -1,\n attrs: _this2.v3 ? undefined : {\n tabIndex: -1\n },\n onClick: _this2.groupRemove,\n on: _this2.v3 ? undefined : {\n \"click\": _this2.groupRemove\n }\n }, [h(\"span\", {\n \"class\": \"k-icon k-i-group-delete\"\n })])])])];\n } : [h(\"div\", {\n \"class\": \"k-indicator-container\",\n ref: _this2.v3 ? function (el) {\n _this.indicatorContainerRef = el;\n } : 'indicatorContainer'\n }, [h(\"div\", {\n \"class\": \"k-group-indicator\"\n }, [h(\"a\", {\n \"class\": \"k-link\",\n href: \"#\",\n attrs: _this2.v3 ? undefined : {\n href: \"#\",\n tabIndex: -1\n },\n tabIndex: -1,\n onClick: _this2.sortChange,\n on: _this2.v3 ? undefined : {\n \"click\": _this2.sortChange\n }\n }, [h(\"span\", {\n \"class\": 'k-icon k-i-sort-' + _this2.$props.dir + '-sm'\n }), _this2.$props.title]), h(\"a\", {\n \"class\": \"k-button k-button-icon k-bare\",\n tabIndex: -1,\n attrs: _this2.v3 ? undefined : {\n tabIndex: -1\n },\n onClick: _this2.groupRemove,\n on: _this2.v3 ? undefined : {\n \"click\": _this2.groupRemove\n }\n }, [h(\"span\", {\n \"class\": \"k-icon k-i-group-delete\"\n })])])])])\n );\n }\n};\nvar GroupingIndicatorVue3 = GroupingIndicator;\nexport { GroupingIndicator, GroupingIndicatorVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar inject = allVue.inject;\nimport { GroupingIndicator } from '../drag/GroupingIndicator';\nimport { messages, groupPanelEmpty as messageKey } from './../messages';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\n/**\n * Represents the default `GroupPanel` component.\n */\n\nvar GroupPanel = {\n props: {\n group: Array,\n resolveTitle: Function\n },\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n methods: {\n pressHandler: function pressHandler(event, element) {\n this.$emit('pressHandler', event, element);\n },\n dragHandler: function dragHandler(event, element) {\n this.$emit('dragHandler', event, element);\n },\n releaseHandler: function releaseHandler(event) {\n this.$emit('releaseHandler', event);\n },\n onGroupRemove: function onGroupRemove(event, index) {\n var newGroups = this.$props.group.slice();\n newGroups.splice(index, 1);\n this.$emit('groupChange', newGroups, event);\n },\n onGroupSortChange: function onGroupSortChange(event, index, groupDesc, dir) {\n var group = Object.assign({}, groupDesc, {\n dir: dir\n });\n var newGroups = this.$props.group.slice();\n newGroups.splice(index, 1, group);\n this.$emit('groupChange', newGroups, event);\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var groupsProp = this.$props.group || [];\n var groups = groupsProp.map(function (groupDesc, index) {\n var _this = this;\n\n return (// @ts-ignore\n h(GroupingIndicator, {\n key: index,\n dir: groupDesc.dir || 'asc',\n attrs: this.v3 ? undefined : {\n dir: groupDesc.dir || 'asc',\n title: this.$props.resolveTitle(groupDesc.field)\n },\n title: this.$props.resolveTitle(groupDesc.field),\n onRemove: function onRemove(event) {\n return _this.onGroupRemove(event, index);\n },\n on: this.v3 ? undefined : {\n \"remove\": function onRemove(event) {\n return _this.onGroupRemove(event, index);\n },\n \"sortChange\": function sortChange(event, dir) {\n _this.onGroupSortChange(event, index, groupDesc, dir);\n },\n \"press\": this.pressHandler,\n \"drag\": this.dragHandler,\n \"release\": this.releaseHandler\n },\n onSortChange: function sortChange(event, dir) {\n _this.onGroupSortChange(event, index, groupDesc, dir);\n },\n onPress: this.pressHandler,\n onDrag: this.dragHandler,\n onRelease: this.releaseHandler\n })\n );\n }, this);\n return h(\"div\", {\n \"class\": \"k-grouping-header k-grouping-header-flex\"\n }, [groups, h(\"div\", {\n \"class\": \"k-indicator-container\"\n }, [!groups.length && provideLocalizationService(this).toLanguageString(messageKey, messages[messageKey])])]);\n }\n};\nvar GroupPanelVue3 = GroupPanel;\nexport { GroupPanel, GroupPanelVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nimport { BrowserSupportService } from '../utils/browser-support.service';\nimport { isRtl } from '../utils';\nvar Footer = {\n name: 'Footer',\n props: {\n staticHeaders: Boolean,\n row: Object,\n columnResize: Object,\n cols: Array\n },\n data: function data() {\n return {\n scrollbarWidth: 0,\n rtl: false,\n tableWidth: null\n };\n },\n computed: {\n divStyle: {\n get: function get() {\n var padding = this.$data.scrollbarWidth + 'px';\n var right = this.rtl ? 0 : padding;\n var left = this.rtl ? padding : 0;\n return {\n padding: \"0 \" + right + \" 0 \" + left\n };\n }\n },\n tableStyle: {\n get: function get() {\n return this.tableWidth ? {\n width: this.tableWidth\n } : null;\n }\n }\n },\n mounted: function mounted() {\n this.$data.scrollbarWidth = new BrowserSupportService().scrollbarWidth;\n this.rtl = isRtl(this.$el);\n this.$props.columnResize.colGroupFooter = this.v3 ? this.colGroupHeaderRef : this.$refs.colGroupHeader;\n this._footerWrap = this.v3 ? this.footerWrapRef : this.$refs.footerWrap;\n },\n methods: {\n setScrollLeft: function setScrollLeft(scrollLeft) {\n if (this._footerWrap) {\n this._footerWrap.scrollLeft = scrollLeft;\n }\n },\n setWidth: function setWidth(width) {\n this.$data.tableWidth = width + 'px';\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var footerWrapRef = ref(null);\n var colGroupHeaderRef = ref(null);\n return {\n v3: v3,\n colGroupHeaderRef: colGroupHeaderRef,\n footerWrapRef: footerWrapRef\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n\n if (!this.$props.staticHeaders) {\n return h(\"tfoot\", {\n \"class\": \"k-grid-footer\"\n }, [this.$props.row]);\n }\n\n return h(\"div\", {\n \"class\": \"k-grid-footer\",\n style: this.divStyle\n }, [h(\"div\", {\n \"class\": \"k-grid-footer-wrap\",\n ref: this.v3 ? function (el) {\n _this.footerWrapRef = el;\n } : 'footerWrap'\n }, [h(\"table\", {\n style: this.tableStyle\n }, [h(\"colgroup\", {\n ref: this.v3 ? function (el) {\n _this.colGroupHeaderRef = el;\n } : 'colGroupHeader'\n }, [this.$props.cols]), h(\"tfoot\", [this.$props.row])])])]);\n }\n};\nvar FooterVue3 = Footer;\nexport { Footer, FooterVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getTemplate } from '@progress/kendo-vue-common';\nimport { footerColumns } from './../utils';\nvar FooterRow = {\n name: 'FooterRow',\n props: {\n isRtl: Boolean,\n columns: Array\n },\n methods: {\n columnStyles: function columnStyles(column) {\n return column.left !== undefined ? !this.$props.isRtl ? {\n left: column.left + 'px',\n right: column.right + 'px'\n } : {\n left: column.right + 'px',\n right: column.left + 'px'\n } : {};\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n\n var renderCell = function renderCell(column, index) {\n var footerCellRendering = null;\n var stickyClassName = column.locked && column.left !== undefined ? 'k-grid-footer-sticky' : '';\n var tdClassName = column.footerClassName ? column.footerClassName + \" \" + stickyClassName : stickyClassName;\n footerCellRendering = getTemplate.call(this, {\n h: h,\n template: column.footerCell,\n defaultRendering: null,\n additionalProps: {\n field: column.field,\n colSpan: column.colSpan !== 1 ? column.colSpan : undefined,\n defaultStyle: this.columnStyles(column)\n }\n });\n return h(\"td\", {\n key: index,\n field: column.field,\n attrs: this.v3 ? undefined : {\n field: column.field,\n colSpan: column.colSpan !== 1 ? column.colSpan : undefined\n },\n colSpan: column.colSpan !== 1 ? column.colSpan : undefined,\n style: this.columnStyles(column),\n \"class\": tdClassName\n }, [footerCellRendering]);\n };\n\n return h(\"tr\", [footerColumns(this.$props.columns).map(renderCell, this)]);\n }\n};\nvar FooterRowVue3 = FooterRow;\nexport { FooterRow, FooterRowVue3 };","/**\n * @hidden\n */\nvar VirtualScroll = /** @class */ (function () {\n function VirtualScroll(cached) {\n this.containerHeight = 0;\n this.topCacheCount = 0; // 4;\n this.attendedSkip = 0; // -4;\n this.propsSkip = 0;\n this.total = 0;\n this.scrollableVirtual = false;\n this.realSkip = 0;\n this.pageSize = 0;\n this.heightContainer = null;\n this.prevScrollPos = 0;\n this.tableTranslate = 0;\n this.scrollSyncing = false;\n if (cached) {\n this.topCacheCount = 4;\n this.attendedSkip = -this.topCacheCount;\n }\n this.scrollHandler = this.scrollHandler.bind(this);\n }\n Object.defineProperty(VirtualScroll.prototype, \"rowHeights\", {\n /**\n * @return - The row heights in an array.\n */\n get: function () {\n var result = [];\n var allRows = this.tableBody && this.tableBody.children || [];\n var accumulate = 0;\n for (var i = 0; i < allRows.length; i++) {\n if (allRows[i].className.indexOf('k-grouping-row') > -1) {\n accumulate += allRows[i].scrollHeight;\n continue;\n }\n if (allRows[i].className.indexOf('k-detail-row') > -1) {\n result[result.length - 1].line += allRows[i].scrollHeight;\n }\n else {\n result.push({\n line: allRows[i].scrollHeight,\n acc: accumulate\n });\n accumulate = 0;\n }\n }\n return result;\n },\n enumerable: false,\n configurable: true\n });\n VirtualScroll.prototype.changePage = function (skip, e) {\n this.attendedSkip = skip - this.topCacheCount;\n this.PageChange({\n skip: Math.max(0, skip - this.topCacheCount),\n take: this.pageSize\n }, e);\n };\n VirtualScroll.prototype.translate = function (dY) {\n this.tableTranslate = dY;\n if (this.table) {\n this.table.style.transform = 'translateY(' + dY + 'px)';\n }\n };\n VirtualScroll.prototype.syncScroll = function () {\n if (!this.scrollableVirtual || !this.container) {\n return;\n }\n this.syncTimeout = null;\n var scrollTop = this.container.scrollTop;\n var containerHeight = this.containerHeight; // = this.container.scrollHeight;\n var rowHeights = this.rowHeights;\n var percentage = (scrollTop - this.tableTranslate) / rowHeights[0].line;\n var targetFloorScrollPosition = Math.floor((containerHeight) * (this.propsSkip + percentage) / this.total);\n if (this.container.scrollTop !== (this.prevScrollPos = targetFloorScrollPosition)) {\n this.scrollSyncing = true;\n this.container.scrollTop = (this.prevScrollPos = targetFloorScrollPosition);\n }\n this.translate(this.tableTranslate + targetFloorScrollPosition - scrollTop);\n };\n VirtualScroll.prototype.reset = function () {\n this.scrollSyncing = true;\n if (this.container) {\n this.container.scrollTop = 0;\n }\n this.translate(0);\n };\n VirtualScroll.prototype.localScrollUp = function (e) {\n if (!this.container) {\n return;\n }\n var heights = this.rowHeights;\n var scrollTop = this.container.scrollTop;\n var targetTranslate = this.tableTranslate;\n var rowsCount = 0;\n var additionalOnTop = scrollTop - targetTranslate;\n if (additionalOnTop > 0) {\n return;\n }\n while ((rowsCount < this.topCacheCount + this.attendedSkip - this.realSkip)\n && this.propsSkip - rowsCount > 0 &&\n !(targetTranslate + (heights[heights.length - 1 - rowsCount].line + heights[heights.length - 1 - rowsCount].acc) + additionalOnTop <= scrollTop)) {\n targetTranslate -= heights[heights.length - 1 - rowsCount].line +\n heights[heights.length - 1 - rowsCount].acc;\n rowsCount++;\n }\n if (rowsCount === 0 && this.topCacheCount === 0 && this.attendedSkip > 0) {\n // allows local scrolling up, when top caching is disabled\n // for variable heights 'topCacheCount' should be atleast 1 to avoid flickering\n targetTranslate = Math.max(targetTranslate - heights[0].line, 0);\n rowsCount = 1;\n }\n if (this.propsSkip - rowsCount <= 0 && targetTranslate > scrollTop) {\n this.translate(0);\n this.changePage(0, e);\n this.container.scrollTop = 0;\n return;\n }\n if (targetTranslate > scrollTop) {\n targetTranslate = scrollTop;\n // need to handle these cases\n // if the item height is not available:\n // floor the translate to beginning of the item in absolute value\n }\n if (targetTranslate !== this.tableTranslate) {\n this.translate(targetTranslate);\n this.changePage(this.propsSkip - rowsCount, e);\n }\n };\n VirtualScroll.prototype.localScrollDown = function (e) {\n if (!this.container) {\n return;\n }\n var heights = this.rowHeights;\n var scrollTop = this.container.scrollTop;\n var targetTranslate = this.tableTranslate;\n var rowsCount = 0;\n while (rowsCount < heights.length - this.topCacheCount &&\n !(targetTranslate + heights[rowsCount].line + heights[rowsCount].acc > scrollTop)) {\n targetTranslate += heights[rowsCount].line + heights[rowsCount].acc;\n rowsCount++;\n }\n if (rowsCount >= heights.length - this.topCacheCount && this.propsSkip + rowsCount >= this.total) {\n this.translate(targetTranslate);\n this.changePage(this.total - 1, e);\n }\n else if (targetTranslate !== this.tableTranslate) {\n this.translate(targetTranslate);\n this.changePage(this.propsSkip + rowsCount, e);\n }\n };\n VirtualScroll.prototype.scrollNonStrict = function (e) {\n var floatRowIndex = this.total * this.prevScrollPos / (this.containerHeight);\n var rowIndex = Math.floor(floatRowIndex);\n if (rowIndex >= this.total) {\n rowIndex = this.total - 1;\n }\n var rowpercentage = Math.min(floatRowIndex - rowIndex, 1);\n var microAdjust = 0;\n var rowIndexOffset = rowIndex - this.propsSkip;\n var heights = this.rowHeights;\n if (rowIndexOffset >= 0 && rowIndexOffset <= 1) {\n microAdjust = -((heights[0].line + heights[0].acc) * rowpercentage);\n }\n else if (rowIndexOffset === -1) {\n microAdjust = -((heights[heights.length - 1].line + heights[heights.length - 1].acc) * rowpercentage);\n }\n this.translate(microAdjust + this.containerHeight * floatRowIndex / this.total);\n this.changePage(rowIndex, e);\n };\n VirtualScroll.prototype.scrollHandler = function (e) {\n if (!this.scrollableVirtual) {\n return;\n }\n if (this.scrollSyncing || !this.container || !this.table) {\n this.scrollSyncing = false;\n return;\n }\n var grid = this;\n clearTimeout(this.syncTimeout);\n this.syncTimeout = setTimeout(function () { grid.syncScroll(); }, 200);\n var scrollTop = this.container.scrollTop;\n var prev = this.prevScrollPos;\n this.prevScrollPos = scrollTop;\n if (scrollTop - prev < 0 && scrollTop > this.tableTranslate - this.table.scrollHeight / 10) {\n this.localScrollUp(e);\n }\n else if (scrollTop - prev > 0 && scrollTop < this.tableTranslate + this.table.scrollHeight * 2 / 3) {\n this.localScrollDown(e);\n }\n else {\n this.scrollNonStrict(e);\n }\n this.prevScrollPos = scrollTop;\n };\n return VirtualScroll;\n}());\nexport { VirtualScroll };\n","/**\n * @hidden\n */\nvar ColumnResize = /** @class */ (function () {\n function ColumnResize(triggerResize) {\n var _this = this;\n /**\n * The settings for resizing the Grid.\n */\n this.resizable = false;\n this.isRtl = false;\n this.setIsRtl = function (isRtl) {\n _this.isRtl = isRtl;\n };\n this.onResize = triggerResize;\n this.dragHandler = this.dragHandler.bind(this);\n }\n ColumnResize.prototype.dragHandler = function (event, column, dragCue, end) {\n var e = event.originalEvent;\n if (!end) {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n var tdElement = dragCue.parentElement;\n if (!tdElement || !tdElement.parentElement) {\n return;\n }\n var oldWidth = tdElement.clientWidth;\n var newWidth;\n if (this.isRtl) {\n newWidth = (dragCue.getBoundingClientRect().right - (dragCue.offsetWidth / 2)) - event.clientX;\n newWidth += oldWidth;\n }\n else {\n newWidth = oldWidth + event.clientX - dragCue.getBoundingClientRect().left - (dragCue.offsetWidth / 2);\n }\n if (!end && Math.abs(newWidth - oldWidth) < 1) {\n return;\n }\n this.fixateInitialWidths(tdElement.parentElement.clientWidth);\n this.setWidths(column, Math.floor(newWidth) / oldWidth);\n var index = this.columns.filter(function (c) { return !c.children.length; }).indexOf(column);\n this.onResize(index, oldWidth, newWidth, e, end);\n };\n ColumnResize.prototype.fixateInitialWidths = function (width) {\n var columns = this.columns.filter(function (c) { return !c.children.length; });\n var remainingCount = 0;\n var cols = this.colGroupMain ? this.colGroupMain.children : [];\n for (var i = 0; i < cols.length; i++) {\n if (cols[i].width) {\n width -= parseFloat(cols[i].width);\n }\n else {\n remainingCount++;\n }\n }\n if (remainingCount === 0) {\n return;\n }\n var perCol = Math.floor(width / remainingCount);\n for (var i = 0; i < cols.length; i++) {\n var col = cols[i];\n if (!col.width) {\n col.width = perCol;\n columns[i].width = perCol.toString();\n if (this.colGroupHeader) {\n this.colGroupHeader.children[i].width = perCol;\n }\n if (this.colGroupFooter) {\n this.colGroupFooter.children[i].width = perCol;\n }\n }\n }\n };\n ColumnResize.prototype.setWidths = function (column, coef) {\n var indexInOriginal = this.columns.indexOf(column);\n var toAdjust = [];\n var more = column.children.length;\n for (var i = indexInOriginal + 1; more > 0 && i < this.columns.length; i++, more--) {\n var cc = this.columns[i];\n if (!cc.children.length) {\n toAdjust.push(cc);\n }\n else {\n more += cc.children.length;\n }\n }\n if (toAdjust.length === 0) {\n toAdjust.push(column);\n }\n toAdjust.forEach(function (colToAdjust) {\n var targetWidth = colToAdjust.width ? parseFloat(colToAdjust.width.toString()) * coef : 0;\n var min = colToAdjust.minResizableWidth === undefined ? 10 : colToAdjust.minResizableWidth;\n if (targetWidth < min) {\n targetWidth = min;\n }\n colToAdjust.width = targetWidth;\n });\n this.updateColElements(toAdjust);\n };\n ColumnResize.prototype.updateColElements = function (affectedColumns) {\n var columns = this.columns.filter(function (c) { return !c.children.length; });\n var difference = 1e-10;\n for (var i = 0; i < affectedColumns.length; i++) {\n var colIndex = columns.indexOf(affectedColumns[i]);\n var currentColumnFloatWidth = parseFloat((affectedColumns[i].width || 0).toString());\n difference += currentColumnFloatWidth - Math.floor(currentColumnFloatWidth);\n var currentWidth = Math.floor(currentColumnFloatWidth) + Math.floor(difference);\n difference -= Math.floor(difference);\n if (this.colGroupMain) {\n this.colGroupMain.children[colIndex].width = currentWidth + 'px';\n }\n if (this.colGroupHeader) {\n // static headers\n this.colGroupHeader.children[colIndex].width = currentWidth + 'px';\n }\n if (this.colGroupFooter && this.colGroupFooter.children[colIndex]) {\n // static footers\n this.colGroupFooter.children[colIndex].width = currentWidth + 'px';\n }\n }\n };\n return ColumnResize;\n}());\nexport { ColumnResize };\n","import { getIndex } from '../utils';\nimport { canUseDOM } from '@progress/kendo-vue-common';\n/**\n * @hidden\n */\nvar CommonDragLogic = /** @class */ (function () {\n function CommonDragLogic(columnReorder, groupReorder, columnToGroup) {\n var _this = this;\n this.reorderable = false;\n this.groupable = false;\n this.dropElementClue = null;\n this.dragElementClue = null;\n this.startColumn = -1;\n this.startGroup = -1;\n this.currentColumn = -1;\n this.currentGroup = -1;\n this.groupPanelDivElement = null;\n this.refGroupPanelDiv = function (e) {\n _this.groupPanelDivElement = e;\n };\n this.refDropElementClue = function (e) {\n _this.dropElementClue = e;\n if (_this.dropElementClue && canUseDOM) {\n document.body.appendChild(_this.dropElementClue.$el);\n }\n };\n this.refDragElementClue = function (e) {\n _this.dragElementClue = e;\n if (_this.dragElementClue && canUseDOM) {\n document.body.appendChild(_this.dragElementClue.$el);\n }\n };\n this.pressHandler = function (event, element) {\n if (!event.isTouch) {\n event.originalEvent.preventDefault();\n }\n var startColumn = _this.getColumnIndex(event, element);\n _this.startGroup = _this.getGroupIndex(event);\n if (startColumn >= 0) {\n var col = _this.columns[startColumn];\n if (col.reorderable && _this.reorderable || col.groupable && _this.groupable) {\n _this.startColumn = startColumn;\n }\n }\n };\n this.dragHandler = function (event, element) {\n if (!event.isTouch) {\n event.originalEvent.preventDefault();\n }\n event.originalEvent.stopPropagation();\n if (_this.startColumn === -1 && _this.startGroup === -1) {\n return;\n }\n _this.currentColumn = _this.getColumnIndex(event, element);\n _this.currentGroup = _this.getGroupIndex(event);\n if (_this.groupPanelDivElement && _this.startGroup >= 0) {\n _this.currentGroup = Math.min(_this.currentGroup, _this.groupPanelDivElement.children.length - 2);\n }\n var invalidIndex = !_this.isValid();\n if (invalidIndex) {\n _this.currentColumn = -1;\n _this.currentGroup = -1;\n }\n var targetElement = (_this.currentColumn >= 0) ?\n element.children[_this.columns[_this.currentColumn].index] :\n _this.groupPanelDivElement && _this.groupPanelDivElement.children[_this.currentGroup];\n _this.updateDragElementClue(event, element, targetElement, invalidIndex);\n _this.updateDropElementClue(event, element, targetElement, invalidIndex);\n };\n this.releaseHandler = function (event) {\n var prevColumnIndex = _this.startColumn;\n var nextColumnIndex = _this.currentColumn;\n var prevGroupIndex = _this.startGroup;\n var nextGroupIndex = _this.currentGroup;\n if (_this.dropElementClue) {\n _this.dropElementClue.visible = false;\n }\n if (_this.dragElementClue) {\n _this.dragElementClue.visible = false;\n }\n var isValid = _this.isValid();\n _this.startColumn = _this.startGroup = _this.currentColumn = _this.currentGroup = -1;\n if (!isValid) {\n return;\n }\n if (prevColumnIndex >= 0 && nextColumnIndex >= 0) {\n _this.columnReorder(prevColumnIndex, nextColumnIndex, event.originalEvent);\n }\n else if (prevGroupIndex >= 0 && nextGroupIndex >= 0) {\n _this.groupReorder(prevGroupIndex, nextGroupIndex, event.originalEvent);\n }\n else if (prevColumnIndex >= 0 && nextGroupIndex >= 0) {\n _this.columnToGroup(prevColumnIndex, nextGroupIndex, event.originalEvent);\n }\n };\n this.columnReorder = columnReorder;\n this.groupReorder = groupReorder;\n this.columnToGroup = columnToGroup;\n }\n CommonDragLogic.prototype.getColumnIndex = function (event, parent) {\n if (!parent || (parent.parentElement === this.groupPanelDivElement)) {\n return -1;\n }\n var index = getIndex(event, parent);\n if (index === -1) {\n return -1;\n }\n var _loop_1 = function (i) {\n if (parent.parentNode.children[i] === parent) {\n return { value: this_1.columns.findIndex(function (c) { return ((c.index === index) && (c.depth === i)); }) };\n }\n };\n var this_1 = this;\n for (var i = 0; i < parent.parentNode.children.length; i++) {\n var state_1 = _loop_1(i);\n if (typeof state_1 === \"object\")\n return state_1.value;\n }\n return -1;\n };\n CommonDragLogic.prototype.getGroupIndex = function (event) {\n return getIndex(event, this.groupPanelDivElement);\n };\n CommonDragLogic.prototype.isValid = function () {\n if (this.startGroup >= 0) {\n // group can be moved into group only\n return this.currentGroup >= 0 && this.currentGroup !== this.startGroup;\n }\n if (this.startColumn === -1) {\n return false;\n }\n if (this.currentGroup >= 0) {\n // column to group is possible\n return this.columns[this.startColumn].groupable === true && this.groupable === true;\n }\n // reorder is possible\n return this.reorderable === true &&\n this.currentColumn >= 0 &&\n this.currentColumn !== this.startColumn &&\n this.columns[this.startColumn].reorderable === true &&\n this.columns[this.currentColumn].parentIndex === this.columns[this.startColumn].parentIndex;\n };\n CommonDragLogic.prototype.updateDragElementClue = function (event, element, targetElement, invalidIndex) {\n if (!this.dragElementClue) {\n return;\n }\n var innerText = this.startColumn >= 0 ?\n element.children[this.columns[this.startColumn].index].innerText :\n element.innerText;\n this.dragElementClue.visible = true;\n this.dragElementClue.top = (event.pageY + 10);\n this.dragElementClue.left = event.pageX;\n this.dragElementClue.innerText = innerText;\n this.dragElementClue.status = (invalidIndex || !targetElement) ? 'k-i-cancel' : 'k-i-add';\n };\n CommonDragLogic.prototype.updateDropElementClue = function (event, element, targetElement, invalidIndex) {\n if (!this.dropElementClue) {\n return;\n }\n if (invalidIndex || !targetElement) {\n this.dropElementClue.visible = false;\n return;\n }\n var rect = targetElement.getBoundingClientRect();\n var left = rect.left + event.pageX - event.clientX - 6;\n if (this.currentColumn > this.startColumn || this.currentGroup > this.startGroup && this.startGroup !== -1) {\n left += rect.width;\n }\n var top = rect.top + event.pageY - event.clientY;\n this.dropElementClue.visible = true;\n this.dropElementClue.top = top;\n this.dropElementClue.left = left;\n this.dropElementClue.height = (this.currentColumn >= 0) ? element.clientHeight : rect.height;\n };\n return CommonDragLogic;\n}());\nexport { CommonDragLogic };\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\n/**\n * Represents the default `DragClue` component.\n */\n\nvar DragClue = {\n data: function data() {\n return {\n visible: false,\n top: 0,\n left: 0,\n innerText: '',\n status: 'k-i-cancel'\n };\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n return this.visible && h(\"div\", {\n \"class\": \"k-header k-drag-clue\",\n style: {\n display: 'block',\n position: 'absolute',\n zIndex: 20000,\n padding: '8px 12px',\n top: this.top + 'px',\n left: this.left + 'px'\n }\n }, [h(\"span\", {\n \"class\": 'k-icon k-drag-status ' + this.status + ' k-icon-with-modifier'\n }, [h(\"span\", {\n \"class\": \"k-icon k-icon-modifier\"\n })]), this.innerText]);\n }\n};\nvar DragClueVue3 = DragClue;\nexport { DragClue, DragClueVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\n/**\n * Represents the default `DropClue` component.\n */\n\nvar DropClue = {\n data: function data() {\n return {\n height: 0,\n visible: false,\n left: 0,\n top: 0\n };\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n return this.visible && h(\"div\", {\n \"class\": \"k-grouping-dropclue\",\n style: {\n zIndex: 10000,\n display: 'block',\n top: this.top + 'px',\n left: this.left + 'px',\n height: this.height + 'px'\n }\n });\n }\n};\nvar DropClueVue3 = DropClue;\nexport { DropClue, DropClueVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar inject = allVue.inject;\nimport { getNestedValue, parsers } from './../utils';\nimport { provideIntlService } from '@progress/kendo-vue-intl';\nimport { getTemplate, noop } from '@progress/kendo-vue-common';\nimport { KEYBOARD_NAV_DATA_ID, KEYBOARD_NAV_DATA_LEVEL } from '@progress/kendo-vue-data-tools';\n/**\n * Represents the default `GridCell` component.\n */\n\nvar GridCell = {\n name: 'GridCell',\n // @ts-ignore\n emits: {\n cellclick: null,\n cellkeydown: null\n },\n props: {\n id: String,\n field: String,\n dataItem: Object,\n format: String,\n className: String,\n colSpan: Number,\n columnIndex: Number,\n columnsCount: Number,\n dataIndex: Number,\n rowType: String,\n level: Number,\n expanded: Boolean,\n type: String,\n editor: String,\n isSelected: Boolean,\n ariaColumnIndex: Number,\n render: [String, Function, Object]\n },\n inject: {\n kendoIntlService: {\n default: null\n },\n getKeyboardNavigationAttributes: {\n default: noop\n }\n },\n methods: {\n triggerClick: function triggerClick() {\n this.$emit('cellclick', {\n dataItem: this.$props.dataItem,\n field: this.$props.field\n });\n },\n triggerKeydown: function triggerKeydown(e) {\n this.$emit('cellkeydown', {\n event: e,\n dataItem: this.$props.dataItem,\n field: this.$props.field\n });\n },\n triggerEdit: function triggerEdit(dataItem) {\n this.$emit('edit', dataItem);\n },\n triggerAdd: function triggerAdd(dataItem) {\n this.$emit('add', dataItem);\n },\n triggerCancel: function triggerCancel(dataItem) {\n this.$emit('cancel', dataItem);\n },\n triggerSave: function triggerSave(dataItem) {\n this.$emit('save', dataItem);\n },\n triggerRemove: function triggerRemove(dataItem) {\n this.$emit('remove', dataItem);\n }\n },\n created: function created() {\n this._intl = provideIntlService(this);\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoIntlService = inject('kendoIntlService', {});\n return {\n v3: v3,\n kendoIntlService: kendoIntlService\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultRendering = null;\n var navAttrs = this.getKeyboardNavigationAttributes(this.$props.id);\n\n if (this.$props.rowType === 'groupFooter') {\n defaultRendering = h(\"td\", {\n \"class\": this.$props.className\n });\n } else if (this.$props.field !== undefined && this.$props.rowType !== 'groupHeader') {\n var data = getNestedValue(this.$props.field, this.$props.dataItem);\n var dataAsString = '';\n\n if (data !== undefined && data !== null) {\n dataAsString = this.$props.format ? this.$props.type ? this._intl.format(this.$props.format, parsers[this.$props.type](data, this._intl)) : this._intl.format(this.$props.format, data) : data.toString();\n }\n\n defaultRendering = h(\"td\", {\n colSpan: this.$props.colSpan,\n attrs: this.v3 ? undefined : {\n colSpan: this.$props.colSpan,\n role: 'gridcell',\n \"aria-colindex\": this.$props.ariaColumnIndex,\n \"aria-selected\": this.$props.isSelected,\n \"data-grid-col-index\": this.$props.columnIndex,\n tabIndex: navAttrs.tabIndex,\n \"data-keyboardnavlevel\": navAttrs[KEYBOARD_NAV_DATA_LEVEL],\n \"data-keyboardnavid\": navAttrs[KEYBOARD_NAV_DATA_ID]\n },\n \"class\": this.$props.className,\n onKeydown: this.triggerKeydown,\n on: this.v3 ? undefined : {\n \"keydown\": this.triggerKeydown,\n \"click\": this.triggerClick\n },\n onClick: this.triggerClick,\n role: 'gridcell',\n \"aria-colindex\": this.$props.ariaColumnIndex,\n \"aria-selected\": this.$props.isSelected,\n \"data-grid-col-index\": this.$props.columnIndex,\n tabIndex: navAttrs.tabIndex,\n \"data-keyboardnavlevel\": navAttrs[KEYBOARD_NAV_DATA_LEVEL],\n \"data-keyboardnavid\": navAttrs[KEYBOARD_NAV_DATA_ID]\n }, [dataAsString]);\n }\n\n return getTemplate.call(this, {\n h: h,\n template: this.$props.render,\n defaultRendering: defaultRendering,\n additionalProps: this.$props,\n additionalListeners: {\n click: this.triggerClick,\n keydown: this.triggerKeydown,\n edit: this.triggerEdit,\n add: this.triggerAdd,\n cancel: this.triggerCancel,\n save: this.triggerSave,\n remove: this.triggerRemove\n }\n });\n }\n};\nvar GridCellVue3 = GridCell;\nexport { GridCell, GridCellVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getTemplate, Keys, noop } from '@progress/kendo-vue-common';\nimport { KEYBOARD_NAV_DATA_ID, KEYBOARD_NAV_DATA_LEVEL } from '@progress/kendo-vue-data-tools';\n/**\n * Represents the default `GridGroupCell` component.\n */\n\nvar GridGroupCell = {\n props: {\n id: String,\n field: String,\n dataItem: Object,\n format: String,\n type: String,\n colSpan: Number,\n className: String,\n columnIndex: Number,\n columnsCount: Number,\n rowType: String,\n level: Number,\n expanded: Boolean,\n editor: String,\n dataIndex: Number,\n isSelected: Boolean,\n ariaColumnIndex: Number,\n render: [String, Function, Object]\n },\n // @ts-ignore\n emits: {\n change: null,\n cellkeydown: null\n },\n inject: {\n kendoIntlService: {\n default: null\n },\n getKeyboardNavigationAttributes: {\n default: noop\n }\n },\n methods: {\n triggerKeydown: function triggerKeydown(event, expanded) {\n this.$emit('cellkeydown', {\n event: event,\n dataItem: this.$props.dataItem,\n dataIndex: this.$props.dataIndex,\n field: this.$props.field,\n expanded: this.$props.expanded\n });\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (event.keyCode === Keys.enter) {\n event.preventDefault();\n this.$emit('change', {\n dataItem: this.$props.dataItem,\n dataIndex: this.$props.dataIndex,\n event: event,\n field: undefined,\n value: !expanded\n });\n }\n },\n clickHandler: function clickHandler(e, dataItem, expanded) {\n e.preventDefault();\n this.$emit('change', {\n dataItem: dataItem,\n dataIndex: this.$props.dataIndex,\n event: e,\n field: undefined,\n value: !expanded\n });\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var defaultRendering = null;\n var _a = this.$props,\n columnIndex = _a.columnIndex,\n level = _a.level,\n columnsCount = _a.columnsCount,\n rowType = _a.rowType,\n dataItem = _a.dataItem,\n field = _a.field,\n expanded = _a.expanded,\n render = _a.render;\n var navAttrs = this.getKeyboardNavigationAttributes(this.$props.id);\n\n if (columnIndex === undefined || level === undefined || columnIndex < level || columnsCount === undefined || rowType !== 'groupHeader' || dataItem[field] === undefined) {\n defaultRendering = h(\"td\", {\n key: 'g' + columnIndex,\n \"class\": \"k-group-cell\"\n });\n } else if (columnIndex <= level) {\n defaultRendering = h(\"td\", {\n onKeydown: function onKeydown(ev) {\n _this.triggerKeydown(ev, expanded);\n },\n on: this.v3 ? undefined : {\n \"keydown\": function onKeydown(ev) {\n _this.triggerKeydown(ev, expanded);\n }\n },\n key: 'g-colspan',\n colSpan: columnsCount - columnIndex,\n attrs: this.v3 ? undefined : {\n colSpan: columnsCount - columnIndex,\n role: 'gridcell',\n \"aria-colindex\": this.$props.ariaColumnIndex,\n \"aria-selected\": this.$props.isSelected,\n \"data-grid-col-index\": this.$props.columnIndex,\n tabIndex: navAttrs.tabIndex,\n \"data-keyboardnavlevel\": navAttrs[KEYBOARD_NAV_DATA_LEVEL],\n \"data-keyboardnavid\": navAttrs[KEYBOARD_NAV_DATA_ID]\n },\n role: 'gridcell',\n \"aria-colindex\": this.$props.ariaColumnIndex,\n \"aria-selected\": this.$props.isSelected,\n \"data-grid-col-index\": this.$props.columnIndex,\n tabIndex: navAttrs.tabIndex,\n \"data-keyboardnavlevel\": navAttrs[KEYBOARD_NAV_DATA_LEVEL],\n \"data-keyboardnavid\": navAttrs[KEYBOARD_NAV_DATA_ID]\n }, [h(\"p\", {\n \"class\": \"k-reset\"\n }, [h(\"a\", {\n onClick: function onClick(e) {\n _this.clickHandler(e, dataItem, expanded);\n },\n on: this.v3 ? undefined : {\n \"click\": function onClick(e) {\n _this.clickHandler(e, dataItem, expanded);\n }\n },\n href: \"#\",\n attrs: this.v3 ? undefined : {\n href: \"#\",\n tabIndex: -1\n },\n tabIndex: -1,\n \"class\": expanded ? 'k-i-collapse k-icon' : 'k-i-expand k-icon'\n }), dataItem[field].toString()])]);\n }\n\n return getTemplate.call(this, {\n h: h,\n template: render,\n defaultRendering: defaultRendering,\n additionalProps: this.$props,\n additionalListeners: {\n keydown: this.triggerKeydown,\n click: this.clickHandler\n }\n });\n }\n};\nvar GridGroupCellVue3 = GridGroupCell;\nexport { GridGroupCell, GridGroupCellVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getNestedValue } from '../utils';\nimport { getTemplate, getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * Represents the default `GridRow` component.\n */\n\nvar GridRow = {\n props: {\n rowType: String,\n dataItem: Object,\n isAltRow: Boolean,\n isHidden: Boolean,\n onClick: Function,\n selectedField: String,\n rowHeight: Number,\n ariaRowIndex: Number,\n dataIndex: Number,\n render: [String, Function, Object]\n },\n methods: {\n handleClick: function handleClick(e) {\n this.$emit('rowclick', e);\n },\n handleDoubleClick: function handleDoubleClick(e) {\n this.$emit('rowdblclick', e);\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n var className = this.$props.rowType === 'groupFooter' || this.$props.rowType === 'groupHeader' ? this.$props.rowType === 'groupFooter' && 'k-group-footer' || 'k-grouping-row' : (this.$props.isAltRow ? 'k-master-row k-alt' : 'k-master-row') + (this.$props.selectedField !== undefined && getNestedValue(this.$props.selectedField, this.$props.dataItem) ? ' k-state-selected' : '');\n var defaultRendering = h(\"tr\", {\n onClick: this.handleClick,\n on: this.v3 ? undefined : {\n \"click\": this.handleClick,\n \"dblclick\": this.handleDoubleClick\n },\n onDblclick: this.handleDoubleClick,\n \"class\": className,\n style: {\n height: this.$props.rowHeight ? this.$props.rowHeight + 'px' : '',\n visibility: this.$props.isHidden ? 'hidden' : ''\n },\n role: \"row\",\n attrs: this.v3 ? undefined : {\n role: \"row\",\n \"aria-rowindex\": this.$props.ariaRowIndex,\n \"data-grid-row-index\": this.$props.rowType === 'data' ? this.$props.dataIndex : undefined\n },\n \"aria-rowindex\": this.$props.ariaRowIndex,\n \"data-grid-row-index\": this.$props.rowType === 'data' ? this.$props.dataIndex : undefined\n }, [defaultSlot]);\n return getTemplate.call(this, {\n h: h,\n template: this.$props.render,\n defaultRendering: defaultRendering,\n additionalProps: this.$props,\n additionalListeners: {\n click: this.handleClick\n },\n defaultSlots: defaultSlot,\n swapDefaultSlots: true\n });\n }\n};\nvar GridRowVue3 = GridRow;\nexport { GridRow, GridRowVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { guid, getTemplate } from '@progress/kendo-vue-common';\n/**\n * Represents the default `GridHeaderSelectionCell` component.\n */\n\nvar GridHeaderSelectionCell = {\n props: {\n field: String,\n title: String,\n selectionValue: Boolean,\n render: [Object, Function, String]\n },\n created: function created() {\n this.inputId = guid();\n },\n methods: {\n changeHandle: function changeHandle(e) {\n this.$emit('selectionchange', {\n field: this.$props.field,\n event: e\n });\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var renderTemplate = this.$props.render;\n var defaultRendering = h(\"span\", [[h(\"input\", {\n key: 0,\n checked: this.v3 ? this.$props.selectionValue : null,\n domProps: this.v3 ? undefined : {\n \"checked\": this.$props.selectionValue\n },\n id: this.inputId,\n attrs: this.v3 ? undefined : {\n id: this.inputId,\n type: \"checkbox\"\n },\n type: \"checkbox\",\n \"class\": \"k-checkbox\",\n onChange: this.changeHandle,\n on: this.v3 ? undefined : {\n \"change\": this.changeHandle\n }\n }), h(\"label\", {\n key: 1,\n \"class\": \"k-checkbox-label\",\n \"for\": this.inputId,\n attrs: this.v3 ? undefined : {\n \"for\": this.inputId\n }\n })]]);\n return getTemplate.call(this, {\n h: h,\n template: renderTemplate,\n defaultRendering: defaultRendering,\n additionalProps: this.$props,\n additionalListeners: {\n selectionchange: this.changeHandle\n }\n });\n }\n};\nvar GridHeaderSelectionCellVue3 = GridHeaderSelectionCell;\nexport { GridHeaderSelectionCell, GridHeaderSelectionCellVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar inject = allVue.inject;\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { messages, noRecords } from './messages';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * Represents the GridNoRecords component which is rendered\n * when the `data` property of the Grid is empty or `null`.\n *\n * @example\n * ```tsx-no-run\n * \n * \n * \n * There is no data available custom\n * \n * \n *
\n * \n * ```\n */\n\n/**\n * Represents the default `GridNoRecords` component.\n */\n\nvar GridNoRecords = {\n name: 'GridNoRecords',\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n var localizationService = provideLocalizationService(this);\n var noRecordsMessage = localizationService.toLanguageString(noRecords, messages[noRecords]);\n return defaultSlot ? h(\"div\", [defaultSlot]) // @ts-ignore\n : this.v3 ? noRecordsMessage : this._v(noRecordsMessage);\n }\n};\nvar GridNoRecordsVue3 = GridNoRecords;\nexport { GridNoRecords, GridNoRecordsVue3 };","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-vue-grid',\n productName: 'Kendo UI for Vue',\n productCodes: ['KENDOUIVUE', 'KENDOUICOMPLETE'],\n publishDate: 1641561536,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning'\n};\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nvar markRaw = allVue.markRaw;\nimport { templateRendering, hasListener, getListeners, getDefaultSlots, guid, getter, isRtl, validatePackage, getTemplate, canUseDOM } from '@progress/kendo-vue-common';\nimport { tableColumnsVirtualization, Pager, normalize, tableKeyboardNavigationTools as navigationTools, TableKeyboardNavigationProvider } from '@progress/kendo-vue-data-tools';\nimport { GridNav } from './GridNav';\nimport { GridSelectionCell } from './cells/GridSelectionCell';\nimport { GridHierarchyCell } from './cells/GridHierarchyCell';\nimport { GridDetailHierarchyCell } from './cells/GridDetailHierarchyCell';\nimport { GridDetailCell } from './cells/GridDetailCell';\nimport { GridEditCell } from './cells/GridEditCell';\nimport { Header } from './header/Header';\nimport { HeaderRow } from './header/HeaderRow';\nimport { FilterRow } from './header/FilterRow';\nimport { GroupPanel } from './header/GroupPanel';\nimport { Footer } from './footer/Footer';\nimport { FooterRow } from './footer/FooterRow';\nimport { operators } from './filterCommon';\nimport { VirtualScroll } from './VirtualScroll';\nimport { ColumnResize } from './drag/ColumnResize';\nimport { CommonDragLogic } from './drag/CommonDragLogic';\nimport { DragClue } from './drag/DragClue';\nimport { DropClue } from './drag/DropClue';\nimport { getNestedValue, flatData, mapColumns, readColumns, autoGenerateColumns } from './utils/index'; // import { GridCellProps } from './interfaces/GridCellProps';\n\nimport { GridCell } from './cells/GridCell'; // import { GridToolbar } from './GridToolbar';\n\nimport { GridGroupCell } from './cells/GridGroupCell';\nimport { GridRow } from './rows/GridRow';\nimport { GridHeaderSelectionCell } from './header/GridHeaderSelectionCell'; // import { ScrollMode } from './ScrollMode';\n\nimport { GridNoRecords } from './GridNoRecords';\nimport { packageMetadata } from './package-metadata';\nimport { pagerMessagesMap } from './messages';\n/**\n * Represents the default `Grid` component.\n */\n\nvar Grid = {\n name: 'KendoGrid',\n props: {\n alternatePerGroup: Boolean,\n columns: Array,\n columnVirtualization: Boolean,\n dataItems: [Array, Object],\n sortable: [Boolean, Object],\n sort: Array,\n filterable: Boolean,\n filterOperators: Object,\n filterCellRender: [String, Function, Object],\n headerCellRender: [String, Function, Object],\n filter: Object,\n pageable: [Boolean, Object],\n pageSize: Number,\n total: Number,\n skip: Number,\n take: Number,\n expandField: String,\n selectedField: String,\n cellRender: [String, Function, Object],\n rowRender: [String, Function, Object],\n resizable: Boolean,\n reorderable: Boolean,\n group: Array,\n groupable: [Boolean, Object],\n editField: String,\n scrollable: {\n type: String,\n default: 'scrollable'\n },\n pager: [String, Function, Object],\n rowHeight: Number,\n detail: [String, Function, Object],\n columnMenu: [Boolean, String, Function, Object],\n columnMenuAnimate: {\n type: [Boolean, Object],\n default: function _default() {\n return true;\n }\n },\n dataItemKey: String,\n navigatable: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n isRtl: false,\n context: undefined,\n navigation: undefined\n };\n },\n watch: {\n skip: function skip(value, oldValue) {\n // @ts-ignore\n this.onSkipChanged(value, oldValue);\n },\n total: function total(value, oldValue) {\n // @ts-ignore\n this.onTotalChanged(value, oldValue);\n },\n rowHeight: function rowHeight(value, oldValue) {\n // @ts-ignore\n this.onRowHeightChanged(value, oldValue);\n }\n },\n created: function created() {\n validatePackage(packageMetadata);\n this.initialHeight = null;\n this._columns = [];\n var groupable = this.$props.groupable === true || _typeof(this.$props.groupable) === 'object' && this.$props.groupable.enabled !== false;\n this.vs = new VirtualScroll(groupable || this.$props.rowHeight === undefined || this.$props.rowHeight === 0);\n this.dragLogic = new CommonDragLogic(this.columnReorder.bind(this), this.groupReorder.bind(this), this.columnToGroup.bind(this));\n this.columnResize = new ColumnResize(this.onResize.bind(this));\n this._columnsMap = [[]];\n this._header = null;\n this._footer = null;\n this.forceUpdateTimeout = undefined;\n this._gridId = guid();\n },\n mounted: function mounted() {\n this.setRefs();\n var rtl = isRtl(this._element);\n this.isRtl = rtl; // @ts-ignore\n\n this.initialHeight = this._element.style ? this._element.style.height : null;\n },\n updated: function updated() {\n this.setRefs();\n var rtl = isRtl(this._element);\n this.isRtl = rtl;\n },\n destroyed: !!gh ? undefined : function () {\n this.gridUnmounted();\n },\n // @ts-ignore\n unmounted: function unmounted() {\n this.gridUnmounted();\n },\n computed: {\n getCorrectHeight: {\n get: function get() {\n if (this.$props.scrollable === 'virtual') {\n return this.initialHeight || '450px';\n } else {\n return null;\n }\n }\n }\n },\n methods: {\n /**\n * A getter of the current columns. Gets the current column width or current columns,\n * or any other [`GridColumnProps`]({% slug api_grid_native_columnprops %}) for each defined column.\n * Can be used on each Grid instance. To obtain the instance of the rendered Grid, use the `ref`\n * callback. The following example demonstrates how to reorder the columns by dragging their handlers\n * and check the properties afterwards. You can check the result in the browser console.\n */\n getColumns: function getColumns() {\n var shuffledColumns = this._columns.filter(function (q) {\n return q.declarationIndex >= 0 && q.parentIndex === -1;\n });\n\n var sanitize = function sanitize(columns) {\n columns.sort(function (a, b) {\n return a.declarationIndex - b.declarationIndex;\n });\n return columns.map(function (column) {\n var declarationIndex = column.declarationIndex,\n parentIndex = column.parentIndex,\n depth = column.depth,\n colSpan = column.colSpan,\n rowSpan = column.rowSpan,\n index = column.index,\n kFirst = column.kFirst,\n children = column.children,\n props = __rest(column, [\"declarationIndex\", \"parentIndex\", \"depth\", \"colSpan\", \"rowSpan\", \"index\", \"kFirst\", \"children\"]);\n\n return children.length ? __assign({\n children: sanitize(children)\n }, props) : props;\n });\n };\n\n return sanitize(shuffledColumns);\n },\n setRefs: function setRefs() {\n var elementString = '$el';\n var element = this.v3 ? this.gridNavRef : this.$refs.gridNav;\n\n if (element) {\n this._element = element[elementString];\n }\n\n var groupPanelDiv = this.v3 ? this.groupPanelDivRef : this.$refs.groupPanelDiv;\n\n if (groupPanelDiv) {\n var groupPanelDivElement = groupPanelDiv[elementString] || null;\n this.dragLogic.refGroupPanelDiv(groupPanelDivElement);\n }\n\n var dropElementClue = this.v3 ? this.dropElementClueRef : this.$refs.dropElementClue;\n var dragElementClue = this.v3 ? this.dragElementClueRef : this.$refs.dragElementClue;\n this.dragLogic.refDropElementClue(dropElementClue);\n this.dragLogic.refDragElementClue(dragElementClue);\n this.columnResize.colGroupMain = this.v3 ? this.colGroupRef : this.$refs.colGroup;\n this._header = this.v3 ? this.headerRef : this.$refs.header;\n this._footer = this.v3 ? this.footerRef : this.$refs.footer;\n this.vs.container = this.v3 ? this.scrollContainerRef : this.$refs.scrollContainer;\n this.vs.table = this.v3 ? this.scrollTableRef : this.$refs.scrollTable;\n this.resetTableWidth();\n this.vs.tableBody = this.v3 ? this.scrollTableBodyRef : this.$refs.scrollTableBody;\n },\n gridUnmounted: function gridUnmounted() {\n clearTimeout(this.forceUpdateTimeout);\n this.columnResize.columns = [];\n this.dragLogic.columns = [];\n\n if (this.dragLogic && this.dragLogic.dragElementClue) {\n this.dragLogic.dragElementClue.$el.remove();\n this.dragLogic.dropElementClue.$el.remove();\n }\n\n this._columns = [];\n },\n resetVirtual: function resetVirtual() {\n this.vs.PageChange = this.pageChangeHandler;\n this.vs.realSkip = this.$props.skip || 0;\n this.vs.pageSize = (this.$props.take !== undefined ? this.$props.take : this.$props.pageSize) || 0;\n this.vs.scrollableVirtual = this.$props.scrollable === 'virtual';\n this.vs.propsSkip = (this.$props.skip || 0) + (this.$props.scrollable === 'virtual' ? this.vs.topCacheCount + (this.vs.attendedSkip - (this.$props.skip || 0)) : 0);\n },\n onSkipChanged: function onSkipChanged(value, _oldValue) {\n if (Math.max(0, this.vs.attendedSkip) !== value && value !== undefined) {\n this.vs.attendedSkip = value;\n this.vs.propsSkip = (value || 0) + (this.$props.scrollable === 'virtual' ? this.vs.topCacheCount + (this.vs.attendedSkip - (value || 0)) : 0);\n this.vs.syncScroll();\n }\n },\n onTotalChanged: function onTotalChanged(_value, _oldValue) {\n var groupable = this.$props.groupable === true || _typeof(this.$props.groupable) === 'object' && this.$props.groupable.enabled !== false;\n this.vs.reset();\n this.vs = new VirtualScroll(groupable || this.$props.rowHeight === undefined || this.$props.rowHeight === 0);\n this.resetVirtual();\n this.setRefs();\n },\n onRowHeightChanged: function onRowHeightChanged(_value, _oldValue) {\n var groupable = this.$props.groupable === true || _typeof(this.$props.groupable) === 'object' && this.$props.groupable.enabled !== false;\n this.vs.reset();\n this.vs = new VirtualScroll(groupable || this.$props.rowHeight === undefined || this.$props.rowHeight === 0);\n this.resetVirtual();\n this.setRefs();\n },\n scrollHandler: function scrollHandler(event) {\n var _this = this;\n\n clearTimeout(this.forceUpdateTimeout);\n\n if (this.$props.columnVirtualization && !this.vs.scrollableVirtual) {\n this.forceUpdateTimeout = setTimeout(function () {\n _this.$forceUpdate();\n }, 0);\n }\n\n if (this._header) {\n this._header.setScrollLeft(event.currentTarget.scrollLeft);\n }\n\n if (this._footer) {\n this._footer.setScrollLeft(event.currentTarget.scrollLeft);\n }\n\n if (this.vs) {\n this.vs.scrollHandler(event);\n }\n\n this.$emit('scroll', event);\n },\n rowClick: function rowClick(e, item) {\n if (e.target.type !== 'checkbox') {\n this.$emit('rowclick', __assign({\n dataItem: item.dataItem\n }, this.getArguments(e)));\n }\n },\n rowDoubleClick: function rowDoubleClick(e, item) {\n if (e.target.type !== 'checkbox') {\n this.$emit('rowdblclick', __assign({\n dataItem: item.dataItem\n }, this.getArguments(e)));\n }\n },\n itemChange: function itemChange(event) {\n var itemChange = hasListener.call(this, 'itemchange');\n\n if (event.field === this.$props.expandField || (this.$props.group || this.$props.detail) && event.field === undefined) {\n var expandChange = hasListener.call(this, 'expandchange');\n\n if (expandChange) {\n this.$emit('expandchange', __assign(__assign({}, this.getArguments(event.event)), {\n dataItem: event.dataItem,\n value: event.value\n }));\n }\n\n return;\n }\n\n if (itemChange) {\n this.$emit('itemchange', __assign(__assign({}, this.getArguments(event.event)), {\n dataItem: event.dataItem,\n field: event.field,\n value: event.value\n }));\n }\n },\n cellClickHandler: function cellClickHandler(event) {\n this.$emit('cellclick', {\n dataItem: event.dataItem,\n field: event.field\n });\n },\n cellKeydownHandler: function cellKeydownHandler(event) {\n this.$emit('cellkeydown', event);\n },\n editHandler: function editHandler(dataItem) {\n this.$emit('edit', {\n dataItem: dataItem\n });\n },\n removeHandler: function removeHandler(dataItem) {\n this.$emit('remove', {\n dataItem: dataItem\n });\n },\n saveHandler: function saveHandler(dataItem) {\n this.$emit('save', {\n dataItem: dataItem\n });\n },\n cancelHandler: function cancelHandler(dataItem) {\n this.$emit('cancel', {\n dataItem: dataItem\n });\n },\n selectionChangeHandler: function selectionChangeHandler(options) {\n var event = options.event,\n dataItem = options.dataItem,\n dataIndex = options.dataIndex,\n columnIndex = options.columnIndex;\n this.$emit('selectionchange', __assign(__assign({}, this.getArguments(event.event)), {\n dataItem: dataItem,\n startColIndex: columnIndex,\n endColIndex: columnIndex,\n startRowIndex: dataIndex,\n endRowIndex: dataIndex,\n dataItems: this.getLeafDataItems(),\n altKey: false,\n ctrlKey: false,\n shiftKey: false,\n metaKey: false,\n isDrag: false,\n componentId: this._gridId,\n selectedField: this.$props.selectedField || ''\n }));\n },\n onHeaderSelectionChangeHandler: function onHeaderSelectionChangeHandler(event) {\n this.$emit('headerselectionchange', {\n field: event.field,\n event: event.event,\n target: this\n });\n },\n pageChangeHandler: function pageChangeHandler(page, event) {\n this.raiseDataEvent('pagechange', {\n page: page\n }, {\n skip: page.skip,\n take: page.take\n }, event);\n },\n sortChangeHandler: function sortChangeHandler(sort, event) {\n this.raiseDataEvent('sortchange', {\n sort: sort\n }, {\n sort: sort\n }, event);\n },\n filterChangeHandler: function filterChangeHandler(filter, event) {\n this.raiseDataEvent('filterchange', {\n filter: filter\n }, {\n filter: filter,\n skip: 0\n }, event);\n },\n groupChangeHandler: function groupChangeHandler(groups, event) {\n this.raiseDataEvent('groupchange', {\n group: groups\n }, {\n group: groups,\n skip: 0\n }, event);\n },\n raiseDataEvent: function raiseDataEvent(handler, data, moreData, event) {\n if (hasListener.call(this, handler)) {\n this.$emit(handler, __assign(__assign({}, this.getArguments(event)), data));\n } else if (hasListener.call(this, 'datastatechange')) {\n this.$emit('datastatechange', __assign(__assign({}, this.getArguments(event)), {\n data: __assign(__assign({}, this.getDataState()), moreData)\n }));\n }\n },\n columnReorder: function columnReorder(prev, next, event) {\n var _a;\n\n var _this = this;\n\n var depth = this._columns[prev].depth;\n\n var end = function end(index) {\n do {\n index++;\n } while (index < _this._columns.length && _this._columns[index].depth > depth);\n\n return index;\n };\n\n var spliced = this._columns.splice(prev, end(prev) - prev);\n\n (_a = this._columns).splice.apply(_a, __spreadArrays([prev < next ? end(next - spliced.length) : next, 0], spliced));\n\n this._columns.filter(function (q) {\n return q.declarationIndex >= 0;\n }).forEach(function (c, i) {\n return c.orderIndex = i;\n });\n\n var eventColumnProps = this.getColumns();\n this.$emit('columnreorder', {\n target: this,\n columns: eventColumnProps,\n event: event\n });\n },\n groupReorder: function groupReorder(prevIndex, nextIndex, event) {\n if (this.$props.group === undefined) {\n return;\n }\n\n var group = this.$props.group.slice();\n group.splice.apply(group, __spreadArrays([nextIndex, 0], group.splice(prevIndex, 1)));\n this.groupChangeHandler(group, event);\n },\n columnToGroup: function columnToGroup(columnIndex, groupIndex, event) {\n var field = this._columns[columnIndex].field;\n\n if (!field) {\n return;\n }\n\n var group = (this.$props.group || []).slice();\n group.splice(groupIndex, 0, {\n field: field\n });\n this.groupChangeHandler(group, event);\n },\n resetTableWidth: function resetTableWidth() {\n var totalWidth = 0;\n\n if (!this.columnResize.colGroupMain) {\n return;\n }\n\n var colElements = this.columnResize.colGroupMain.children;\n\n for (var i = 0; i < colElements.length; i++) {\n var width = colElements[i].width;\n\n if (!width) {\n return;\n }\n\n totalWidth += parseFloat(width.toString());\n }\n\n totalWidth = Math.round(totalWidth);\n\n if (this._header) {\n this._header.setWidth(totalWidth);\n }\n\n if (this._footer) {\n this._footer.setWidth(totalWidth);\n }\n\n if (this.vs.table) {\n this.vs.table.style.width = totalWidth + 'px';\n }\n },\n onResize: function onResize(index, newWidth, oldWidth, event, end) {\n this.resetTableWidth();\n this.$emit('columnresize', {\n columns: this.getColumns(),\n index: index,\n event: event,\n newWidth: newWidth,\n oldWidth: oldWidth,\n end: end,\n target: this\n });\n },\n initColumns: function initColumns(columnElements, groupCount) {\n var _this = this;\n\n var idPrefix = navigationTools.getIdPrefix(this.navigation);\n this._columns = readColumns(columnElements, this.getColumns(), {\n prevId: 0,\n idPrefix: idPrefix\n });\n\n if (this._columns.length === 0) {\n var currentColumns = autoGenerateColumns(this.$props.dataItems, this.$props.group, this.$props.expandField, {\n prevId: 0,\n idPrefix: idPrefix\n });\n this._columns = currentColumns;\n }\n\n if (this.$props.selectedField) {\n var that_1 = this;\n\n this._columns.filter(function (c) {\n return c.field === _this.$props.selectedField;\n }).forEach(function (c) {\n c.width = c.width || '50px';\n c.internalCell = that_1.v3 ? markRaw(GridSelectionCell) : GridSelectionCell;\n c.internalHeaderCell = that_1.v3 ? markRaw(GridHeaderSelectionCell) : GridHeaderSelectionCell;\n });\n }\n\n var defaultServiceProps = {\n id: '',\n resizable: true,\n width: '32px',\n title: ' ',\n declarationIndex: -1,\n orderIndex: -1,\n children: [],\n parentIndex: -1,\n depth: 0,\n colSpan: 0,\n rowSpan: 0,\n left: 0,\n right: 0,\n // position: 'sticky',\n index: 0,\n rightBorder: false,\n ariaColumnIndex: 0,\n isAccessible: true\n };\n var columnIndexOffset = 0;\n\n if (this.$props.expandField && hasListener.call(this, 'expandchange') && this.$props.detail) {\n this._columns.unshift(__assign(__assign({}, defaultServiceProps), {\n internalCell: this.v3 ? markRaw(GridHierarchyCell) : GridHierarchyCell,\n field: this.$props.expandField,\n headerClassName: 'k-hierarchy-cell k-header',\n id: navigationTools.generateNavigatableId(\"\" + this._columns.length, idPrefix, 'column')\n }));\n\n columnIndexOffset++;\n }\n\n for (var i = 0; i < groupCount; i++) {\n this._columns.unshift(__assign(__assign({}, defaultServiceProps), {\n isAccessible: false,\n internalCell: this.v3 ? markRaw(GridGroupCell) : GridGroupCell,\n field: 'value'\n }));\n\n columnIndexOffset++;\n }\n\n this._columns.slice(columnIndexOffset).forEach(function (c) {\n return c.parentIndex >= 0 && (c.parentIndex += columnIndexOffset);\n });\n\n this._columnsMap = mapColumns(this._columns);\n this.columnResize.columns = this._columns;\n this.dragLogic.columns = this._columns;\n },\n resolveTitle: function resolveTitle(field) {\n var column = this.findColumnByField(field);\n var title = column && (column.title || column.field);\n return title === undefined ? field : title;\n },\n findColumnByField: function findColumnByField(field) {\n var _this = this;\n\n var column;\n this.$props.columns.forEach(function (c) {\n var columnFound = _this.searchColumn(c, field);\n\n if (columnFound) {\n column = columnFound;\n }\n });\n return column;\n },\n searchColumn: function searchColumn(column, field) {\n if (column.field === field) {\n return column;\n } else if (column.children) {\n var i = void 0,\n result = null;\n\n for (i = 0; result == null && i < column.children.length; i++) {\n result = this.searchColumn(column.children[i], field);\n }\n\n return result;\n }\n\n return null;\n },\n getDataState: function getDataState() {\n return {\n filter: this.$props.filter,\n sort: this.$props.sort,\n skip: this.$props.skip,\n take: this.$props.take !== undefined ? this.$props.take : this.$props.pageSize,\n group: this.$props.group\n };\n },\n getArguments: function getArguments(event) {\n return {\n event: event,\n target: this\n };\n },\n getLeafDataItems: function getLeafDataItems() {\n return this.currentData.filter(function (item) {\n return item.rowType === 'data';\n }).map(function (item) {\n return item.dataItem;\n });\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var groupPanelDivRef = ref(null);\n var dropElementClueRef = ref(null);\n var dragElementClueRef = ref(null);\n var headerRef = ref(null);\n var footerRef = ref(null);\n var gridNavRef = ref(null);\n var colGroupRef = ref(null);\n var scrollContainerRef = ref(null);\n var scrollTableRef = ref(null);\n var scrollTableBodyRef = ref(null);\n return {\n v3: v3,\n groupPanelDivRef: groupPanelDivRef,\n dropElementClueRef: dropElementClueRef,\n dragElementClueRef: dragElementClueRef,\n headerRef: headerRef,\n footerRef: footerRef,\n gridNavRef: gridNavRef,\n colGroupRef: colGroupRef,\n scrollContainerRef: scrollContainerRef,\n scrollTableRef: scrollTableRef,\n scrollTableBodyRef: scrollTableBodyRef\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this3 = this;\n\n var _this = this;\n\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n var total = this.$props.total || 0;\n var idPrefix = navigationTools.getIdPrefix(this.navigation);\n var gridData = [];\n\n if (Array.isArray(this.$props.dataItems)) {\n gridData = this.$props.dataItems;\n } else if (this.$props.dataItems) {\n gridData = this.$props.dataItems.data;\n total = total || this.$props.dataItems.total;\n }\n\n var groupable = this.$props.groupable === true || _typeof(this.$props.groupable) === 'object' && this.$props.groupable.enabled !== false;\n this.columnResize.resizable = this.$props.resizable || false;\n this.dragLogic.reorderable = this.$props.reorderable || false;\n this.dragLogic.groupable = groupable;\n this.resetVirtual();\n this.vs.total = total;\n\n if (this.$props.rowHeight !== undefined && this.$props.rowHeight > 0 && !groupable) {\n this.vs.containerHeight = Math.min(1533915, this.$props.rowHeight * (total || 0));\n } else {\n this.vs.containerHeight = 1533915;\n }\n\n var children = defaultSlot || [];\n var groupingFooter = _typeof(this.$props.groupable) === 'object' && this.$props.groupable.footer || 'none';\n this.currentData = [];\n var resolvedGroupsCount = flatData(this.currentData, gridData, groupingFooter, {\n index: this.$props.skip || 0\n }, this.$props.group !== undefined, this.$props.expandField);\n var notHiddenColumns = this.$props.columns ? this.$props.columns.filter(function (column) {\n return !column.hidden;\n }) : this.$props.columns;\n this.initColumns(notHiddenColumns, resolvedGroupsCount);\n var toolbar = children.filter(function (child) {\n return child && child.tag && child.tag.toLowerCase().indexOf('toolbar') !== -1 || child.componentOptions && child.componentOptions.tag && child.componentOptions.tag.toLowerCase().indexOf('toolbar') !== -1 || child.type && child.type.name && child.type.name.toLowerCase().indexOf('toolbar') !== -1;\n });\n var noRecords = children.filter(function (child) {\n return child && child.tag && child.tag.toLowerCase().indexOf('records') !== -1 || child.componentOptions && child.componentOptions.tag && child.componentOptions.tag.toLowerCase().indexOf('records') !== -1 || child.type && child.type.name && child.type.name.toLowerCase().indexOf('records') !== -1;\n });\n\n var columnsWithColGroup = this._columns.filter(function (c) {\n return c.children.length === 0;\n }); // @ts-ignore\n\n\n var groupingPanel = groupable && h(GroupPanel, {\n ref: this.v3 ? function (el) {\n _this.groupPanelDivRef = el;\n } : 'groupPanelDiv',\n group: this.$props.group || [],\n attrs: this.v3 ? undefined : {\n group: this.$props.group || [],\n resolveTitle: this.resolveTitle\n },\n onGroupChange: this.groupChangeHandler,\n on: this.v3 ? undefined : {\n \"groupChange\": this.groupChangeHandler,\n \"pressHandler\": this.dragLogic.pressHandler,\n \"dragHandler\": this.dragLogic.dragHandler,\n \"releaseHandler\": this.dragLogic.releaseHandler\n },\n onPressHandler: this.dragLogic.pressHandler,\n onDragHandler: this.dragLogic.dragHandler,\n onReleaseHandler: this.dragLogic.releaseHandler,\n resolveTitle: this.resolveTitle\n });\n var clues = (this.dragLogic.reorderable || this.dragLogic.groupable) && canUseDOM && document && document.body // @ts-ignore\n && [h(DropClue, {\n ref: this.v3 ? function (el) {\n _this.dropElementClueRef = el;\n } : 'dropElementClue'\n }), // @ts-ignore\n h(DragClue, {\n ref: this.v3 ? function (el) {\n _this.dragElementClueRef = el;\n } : 'dragElementClue'\n })]; // @ts-ignore\n\n var header = h(Header, {\n columnResize: this.columnResize,\n attrs: this.v3 ? undefined : {\n columnResize: this.columnResize,\n staticHeaders: this.$props.scrollable !== 'none',\n // @ts-ignore\n headerRow: h(HeaderRow, {\n grid: this,\n attrs: this.v3 ? undefined : {\n grid: this,\n sort: this.$props.sort,\n groupable: this.$props.groupable,\n reorderable: this.$props.reorderable,\n sortable: this.$props.sortable,\n filter: this.$props.filter,\n filterable: this.$props.filterable,\n filterOperators: this.$props.filterOperators || operators,\n columnMenu: this.$props.columnMenu,\n columnMenuAnimate: this.$props.columnMenuAnimate,\n columns: this._columns,\n columnResize: this.columnResize,\n columnsMap: this._columnsMap,\n cellRender: this.$props.headerCellRender,\n isRtl: this.isRtl,\n filterRow: this.$props.filterable // @ts-ignore \n && h(FilterRow, {\n grid: this,\n attrs: this.v3 ? undefined : {\n grid: this,\n columns: this._columns,\n filter: this.$props.filter,\n filterOperators: this.$props.filterOperators || operators,\n sort: this.$props.sort,\n cellRender: this.$props.filterCellRender,\n isRtl: this.isRtl,\n ariaRowIndex: this._columnsMap.length + 1\n },\n columns: this._columns,\n filter: this.$props.filter,\n filterOperators: this.$props.filterOperators || operators,\n onFilterchange: this.filterChangeHandler,\n on: this.v3 ? undefined : {\n \"filterchange\": this.filterChangeHandler\n },\n sort: this.$props.sort,\n cellRender: this.$props.filterCellRender,\n isRtl: this.isRtl,\n ariaRowIndex: this._columnsMap.length + 1\n }) || undefined\n },\n sort: this.$props.sort,\n groupable: this.$props.groupable,\n reorderable: this.$props.reorderable,\n sortable: this.$props.sortable,\n onSortChange: this.sortChangeHandler,\n on: this.v3 ? undefined : {\n \"sortChange\": this.sortChangeHandler,\n \"filterChange\": this.filterChangeHandler,\n \"selectionchange\": this.onHeaderSelectionChangeHandler,\n \"pressHandler\": this.dragLogic.pressHandler,\n \"dragHandler\": this.dragLogic.dragHandler,\n \"releaseHandler\": this.dragLogic.releaseHandler\n },\n filter: this.$props.filter,\n filterable: this.$props.filterable,\n filterOperators: this.$props.filterOperators || operators,\n onFilterChange: this.filterChangeHandler,\n columnMenu: this.$props.columnMenu,\n columnMenuAnimate: this.$props.columnMenuAnimate,\n onSelectionchange: this.onHeaderSelectionChangeHandler,\n columns: this._columns,\n columnResize: this.columnResize,\n onPressHandler: this.dragLogic.pressHandler,\n onDragHandler: this.dragLogic.dragHandler,\n onReleaseHandler: this.dragLogic.releaseHandler,\n columnsMap: this._columnsMap,\n cellRender: this.$props.headerCellRender,\n isRtl: this.isRtl,\n filterRow: this.$props.filterable && h(FilterRow, {\n grid: this,\n attrs: this.v3 ? undefined : {\n grid: this,\n columns: this._columns,\n filter: this.$props.filter,\n filterOperators: this.$props.filterOperators || operators,\n sort: this.$props.sort,\n cellRender: this.$props.filterCellRender,\n isRtl: this.isRtl,\n ariaRowIndex: this._columnsMap.length + 1\n },\n columns: this._columns,\n filter: this.$props.filter,\n filterOperators: this.$props.filterOperators || operators,\n onFilterchange: this.filterChangeHandler,\n on: this.v3 ? undefined : {\n \"filterchange\": this.filterChangeHandler\n },\n sort: this.$props.sort,\n cellRender: this.$props.filterCellRender,\n isRtl: this.isRtl,\n ariaRowIndex: this._columnsMap.length + 1\n }) || undefined\n }),\n cols: columnsWithColGroup.map(function (column, index) {\n return h(\"col\", {\n key: index.toString(),\n width: column.width !== undefined ? Math.floor(parseFloat(column.width.toString())) + 'px' : undefined,\n attrs: this.v3 ? undefined : {\n width: column.width !== undefined ? Math.floor(parseFloat(column.width.toString())) + 'px' : undefined\n }\n });\n }, this)\n },\n staticHeaders: this.$props.scrollable !== 'none',\n ref: this.v3 ? function (el) {\n _this.headerRef = el;\n } : 'header',\n headerRow: h(HeaderRow, {\n grid: this,\n attrs: this.v3 ? undefined : {\n grid: this,\n sort: this.$props.sort,\n groupable: this.$props.groupable,\n reorderable: this.$props.reorderable,\n sortable: this.$props.sortable,\n filter: this.$props.filter,\n filterable: this.$props.filterable,\n filterOperators: this.$props.filterOperators || operators,\n columnMenu: this.$props.columnMenu,\n columnMenuAnimate: this.$props.columnMenuAnimate,\n columns: this._columns,\n columnResize: this.columnResize,\n columnsMap: this._columnsMap,\n cellRender: this.$props.headerCellRender,\n isRtl: this.isRtl,\n filterRow: this.$props.filterable && h(FilterRow, {\n grid: this,\n attrs: this.v3 ? undefined : {\n grid: this,\n columns: this._columns,\n filter: this.$props.filter,\n filterOperators: this.$props.filterOperators || operators,\n sort: this.$props.sort,\n cellRender: this.$props.filterCellRender,\n isRtl: this.isRtl,\n ariaRowIndex: this._columnsMap.length + 1\n },\n columns: this._columns,\n filter: this.$props.filter,\n filterOperators: this.$props.filterOperators || operators,\n onFilterchange: this.filterChangeHandler,\n on: this.v3 ? undefined : {\n \"filterchange\": this.filterChangeHandler\n },\n sort: this.$props.sort,\n cellRender: this.$props.filterCellRender,\n isRtl: this.isRtl,\n ariaRowIndex: this._columnsMap.length + 1\n }) || undefined\n },\n sort: this.$props.sort,\n groupable: this.$props.groupable,\n reorderable: this.$props.reorderable,\n sortable: this.$props.sortable,\n onSortChange: this.sortChangeHandler,\n on: this.v3 ? undefined : {\n \"sortChange\": this.sortChangeHandler,\n \"filterChange\": this.filterChangeHandler,\n \"selectionchange\": this.onHeaderSelectionChangeHandler,\n \"pressHandler\": this.dragLogic.pressHandler,\n \"dragHandler\": this.dragLogic.dragHandler,\n \"releaseHandler\": this.dragLogic.releaseHandler\n },\n filter: this.$props.filter,\n filterable: this.$props.filterable,\n filterOperators: this.$props.filterOperators || operators,\n onFilterChange: this.filterChangeHandler,\n columnMenu: this.$props.columnMenu,\n columnMenuAnimate: this.$props.columnMenuAnimate,\n onSelectionchange: this.onHeaderSelectionChangeHandler,\n columns: this._columns,\n columnResize: this.columnResize,\n onPressHandler: this.dragLogic.pressHandler,\n onDragHandler: this.dragLogic.dragHandler,\n onReleaseHandler: this.dragLogic.releaseHandler,\n columnsMap: this._columnsMap,\n cellRender: this.$props.headerCellRender,\n isRtl: this.isRtl,\n filterRow: this.$props.filterable && h(FilterRow, {\n grid: this,\n attrs: this.v3 ? undefined : {\n grid: this,\n columns: this._columns,\n filter: this.$props.filter,\n filterOperators: this.$props.filterOperators || operators,\n sort: this.$props.sort,\n cellRender: this.$props.filterCellRender,\n isRtl: this.isRtl,\n ariaRowIndex: this._columnsMap.length + 1\n },\n columns: this._columns,\n filter: this.$props.filter,\n filterOperators: this.$props.filterOperators || operators,\n onFilterchange: this.filterChangeHandler,\n on: this.v3 ? undefined : {\n \"filterchange\": this.filterChangeHandler\n },\n sort: this.$props.sort,\n cellRender: this.$props.filterCellRender,\n isRtl: this.isRtl,\n ariaRowIndex: this._columnsMap.length + 1\n }) || undefined\n }),\n cols: columnsWithColGroup.map(function (column, index) {\n return h(\"col\", {\n key: index.toString(),\n width: column.width !== undefined ? Math.floor(parseFloat(column.width.toString())) + 'px' : undefined,\n attrs: this.v3 ? undefined : {\n width: column.width !== undefined ? Math.floor(parseFloat(column.width.toString())) + 'px' : undefined\n }\n });\n }, this)\n });\n var footer = this._columns.some(function (c) {\n return Boolean(c.footerCell);\n }) ? // @ts-ignore\n h(Footer, {\n columnResize: this.columnResize,\n attrs: this.v3 ? undefined : {\n columnResize: this.columnResize,\n staticHeaders: this.$props.scrollable !== 'none',\n row: // @ts-ignore\n h(FooterRow, {\n isRtl: this.isRtl,\n attrs: this.v3 ? undefined : {\n isRtl: this.isRtl,\n columns: this._columns.map(function (col) {\n return __assign(__assign({}, col), {\n footerCell: templateRendering.call(this, col.footerCell, getListeners.call(this))\n });\n }, this)\n },\n columns: this._columns.map(function (col) {\n return __assign(__assign({}, col), {\n footerCell: templateRendering.call(this, col.footerCell, getListeners.call(this))\n });\n }, this)\n }),\n cols: columnsWithColGroup.map(function (column, index) {\n return h(\"col\", {\n key: index.toString(),\n width: column.width !== undefined ? Math.floor(parseFloat(column.width.toString())) + 'px' : undefined,\n attrs: this.v3 ? undefined : {\n width: column.width !== undefined ? Math.floor(parseFloat(column.width.toString())) + 'px' : undefined\n }\n });\n }, this)\n },\n staticHeaders: this.$props.scrollable !== 'none',\n ref: this.v3 ? function (el) {\n _this.footerRef = el;\n } : 'footer',\n row: h(FooterRow, {\n isRtl: this.isRtl,\n attrs: this.v3 ? undefined : {\n isRtl: this.isRtl,\n columns: this._columns.map(function (col) {\n return __assign(__assign({}, col), {\n footerCell: templateRendering.call(this, col.footerCell, getListeners.call(this))\n });\n }, this)\n },\n columns: this._columns.map(function (col) {\n return __assign(__assign({}, col), {\n footerCell: templateRendering.call(this, col.footerCell, getListeners.call(this))\n });\n }, this)\n }),\n cols: columnsWithColGroup.map(function (column, index) {\n return h(\"col\", {\n key: index.toString(),\n width: column.width !== undefined ? Math.floor(parseFloat(column.width.toString())) + 'px' : undefined,\n attrs: this.v3 ? undefined : {\n width: column.width !== undefined ? Math.floor(parseFloat(column.width.toString())) + 'px' : undefined\n }\n });\n }, this)\n }) : h(\"span\");\n var cellRenderFunction = templateRendering.call(this, this.$props.cellRender, getListeners.call(this));\n var leftWidth = 0;\n var vnodeDataStyle = this.v3 ? this.$attrs.style : this.$vnode && this.$vnode.data ? this.$vnode.data.style : null;\n var widthProp = 'width';\n var elementInlineStyleWidth = vnodeDataStyle && (typeof vnodeDataStyle === \"undefined\" ? \"undefined\" : _typeof(vnodeDataStyle)) === 'object' ? vnodeDataStyle[widthProp] || '' : '';\n var tableWidth = parseFloat(elementInlineStyleWidth.toString());\n var scrollLeft = this.vs && this.vs.container && this.vs.container.scrollLeft || 0;\n\n var _a = tableColumnsVirtualization({\n enabled: this.$props.columnVirtualization,\n columns: this._columns,\n tableViewPortWidth: tableWidth,\n scrollLeft: scrollLeft\n }),\n colSpans = _a.colSpans,\n isColHidden = _a.hiddenColumns;\n\n var dataRow = function dataRow(item, rowId, rowDataIndex) {\n var isInEdit = false;\n var selectedValue = this.$props.selectedField ? getNestedValue(this.$props.selectedField, item.dataItem) : undefined;\n return {\n row: this._columns.map(function (column, index) {\n var _this = this;\n\n if (isColHidden[index]) {\n return null;\n }\n\n var className = \"\" + (column.className ? column.className + ' ' : '') + (\"\" + (column.locked ? 'k-grid-content-sticky' : ''));\n var style = column.left !== undefined ? !this.isRtl ? {\n left: column.left + 'px',\n right: column.right + 'px'\n } : {\n left: column.right + 'px',\n right: column.left + 'px'\n } : {};\n var currentColumnIsInEdit = false;\n\n if (column.editable && this.$props.editField) {\n var inEdit = getNestedValue(this.$props.editField, item.dataItem);\n\n if (inEdit === true || inEdit === column.field) {\n isInEdit = true;\n currentColumnIsInEdit = true;\n }\n }\n\n var columnCellRenderFunction;\n\n if (column.cell) {\n columnCellRenderFunction = templateRendering.call(this, column.cell, getListeners.call(this));\n }\n\n if (column.internalCell) {\n return h(column.internalCell, {\n key: index,\n id: navigationTools.generateNavigatableId(rowId + \"-\" + String(index), idPrefix),\n attrs: this.v3 ? undefined : {\n id: navigationTools.generateNavigatableId(rowId + \"-\" + String(index), idPrefix),\n colSpan: colSpans[index],\n dataItem: item.dataItem,\n field: column.field || '',\n editor: column.editor,\n format: column.format,\n type: column.type,\n className: className,\n render: columnCellRenderFunction || cellRenderFunction,\n columnIndex: index,\n columnsCount: this._columns.filter(function (c) {\n return !c.children.length;\n }).length,\n rowType: item.rowType,\n level: item.level,\n expanded: item.expanded,\n dataIndex: item.dataIndex,\n ariaColumnIndex: column.ariaColumnIndex,\n isSelected: Array.isArray(selectedValue) && selectedValue.indexOf(index) > -1\n },\n colSpan: colSpans[index],\n dataItem: item.dataItem,\n field: column.field || '',\n editor: column.editor,\n format: column.format,\n type: column.type,\n className: className,\n render: columnCellRenderFunction || cellRenderFunction,\n onChange: this.itemChange,\n on: this.v3 ? undefined : {\n \"change\": this.itemChange,\n \"selectionchange\": function selectionchange(e) {\n return _this.selectionChangeHandler({\n event: e,\n dataItem: item.dataItem,\n dataIndex: rowDataIndex,\n columnIndex: index\n });\n }\n },\n onSelectionchange: function selectionchange(e) {\n return _this.selectionChangeHandler({\n event: e,\n dataItem: item.dataItem,\n dataIndex: rowDataIndex,\n columnIndex: index\n });\n },\n columnIndex: index,\n columnsCount: this._columns.filter(function (c) {\n return !c.children.length;\n }).length,\n rowType: item.rowType,\n level: item.level,\n expanded: item.expanded,\n dataIndex: item.dataIndex,\n style: style,\n ariaColumnIndex: column.ariaColumnIndex,\n isSelected: Array.isArray(selectedValue) && selectedValue.indexOf(index) > -1\n });\n }\n\n if (currentColumnIsInEdit) {\n // @ts-ignore\n return h(GridEditCell, {\n id: navigationTools.generateNavigatableId(rowId + \"-\" + String(index), idPrefix),\n attrs: this.v3 ? undefined : {\n id: navigationTools.generateNavigatableId(rowId + \"-\" + String(index), idPrefix),\n colSpan: colSpans[index],\n dataItem: item.dataItem,\n field: column.field || '' // todo\n ,\n editor: column.editor,\n format: column.format,\n type: column.type,\n className: className,\n render: columnCellRenderFunction || cellRenderFunction,\n columnIndex: index,\n columnsCount: this._columns.filter(function (c) {\n return !c.children.length;\n }).length,\n rowType: item.rowType,\n level: item.level,\n expanded: item.expanded,\n dataIndex: item.dataIndex\n },\n key: index,\n colSpan: colSpans[index],\n dataItem: item.dataItem,\n field: column.field || '',\n editor: column.editor,\n format: column.format,\n type: column.type,\n className: className,\n render: columnCellRenderFunction || cellRenderFunction,\n onEdit: this.editHandler,\n on: this.v3 ? undefined : {\n \"edit\": this.editHandler,\n \"remove\": this.removeHandler,\n \"save\": this.saveHandler,\n \"cancel\": this.cancelHandler,\n \"change\": this.itemChange\n },\n onRemove: this.removeHandler,\n onSave: this.saveHandler,\n onCancel: this.cancelHandler,\n onChange: this.itemChange,\n columnIndex: index,\n columnsCount: this._columns.filter(function (c) {\n return !c.children.length;\n }).length,\n rowType: item.rowType,\n level: item.level,\n expanded: item.expanded,\n dataIndex: item.dataIndex,\n style: style\n });\n } // @ts-ignore\n\n\n var inbuiltSlot = h(GridCell, {\n key: index,\n id: navigationTools.generateNavigatableId(rowId + \"-\" + String(index), idPrefix),\n attrs: this.v3 ? undefined : {\n id: navigationTools.generateNavigatableId(rowId + \"-\" + String(index), idPrefix),\n colSpan: colSpans[index],\n dataItem: item.dataItem,\n field: column.field || '' // todo\n ,\n editor: column.editor,\n format: column.format,\n type: column.type,\n className: className,\n render: columnCellRenderFunction || cellRenderFunction,\n columnIndex: index,\n columnsCount: this._columns.filter(function (c) {\n return !c.children.length;\n }).length,\n rowType: item.rowType,\n level: item.level,\n expanded: item.expanded,\n dataIndex: item.dataIndex\n },\n colSpan: colSpans[index],\n dataItem: item.dataItem,\n field: column.field || '',\n editor: column.editor,\n format: column.format,\n type: column.type,\n className: className,\n render: columnCellRenderFunction || cellRenderFunction,\n onCellclick: this.cellClickHandler,\n on: this.v3 ? undefined : {\n \"cellclick\": this.cellClickHandler,\n \"cellkeydown\": this.cellKeydownHandler,\n \"edit\": this.editHandler,\n \"remove\": this.removeHandler,\n \"save\": this.saveHandler,\n \"cancel\": this.cancelHandler,\n \"change\": this.itemChange,\n \"selectionchange\": function selectionchange(e) {\n return _this.selectionChangeHandler({\n event: e,\n dataItem: item.dataItem,\n dataIndex: rowDataIndex,\n columnIndex: index\n });\n }\n },\n onCellkeydown: this.cellKeydownHandler,\n onEdit: this.editHandler,\n onRemove: this.removeHandler,\n onSave: this.saveHandler,\n onCancel: this.cancelHandler,\n onChange: this.itemChange,\n onSelectionchange: function selectionchange(e) {\n return _this.selectionChangeHandler({\n event: e,\n dataItem: item.dataItem,\n dataIndex: rowDataIndex,\n columnIndex: index\n });\n },\n columnIndex: index,\n columnsCount: this._columns.filter(function (c) {\n return !c.children.length;\n }).length,\n rowType: item.rowType,\n level: item.level,\n expanded: item.expanded,\n dataIndex: item.dataIndex,\n style: style\n });\n return inbuiltSlot;\n }, this),\n isInEdit: isInEdit,\n isSelected: typeof selectedValue === 'boolean' && selectedValue\n };\n };\n\n var hiddenRows = 0;\n\n if (this.$props.scrollable === 'virtual') {\n for (var i = 0; i < this.vs.topCacheCount + this.vs.attendedSkip - (this.$props.skip || 0); i++) {\n var item = this.currentData.shift();\n\n if (item) {\n this.currentData.push(item);\n hiddenRows++;\n\n if (item.rowType === 'groupHeader') {\n i--;\n }\n } else {\n break;\n }\n }\n }\n\n var hidden = function hidden(index) {\n return index >= _this.currentData.length - hiddenRows;\n };\n\n var detailRenderFunction = templateRendering.call(this, this.$props.detail, getListeners.call(this));\n var absoluteDataIndex = this.vs.propsSkip || 0;\n var rowIndexStart = this._columnsMap.length + (this.$props.filterable ? 1 : 0) + 1;\n var currentAriaRowIndex;\n var dataIndex = -1;\n var detailRowCount = 0; // @ts-ignore\n\n var body = this.currentData.length && this.currentData.map(function (item, rowIndex) {\n var _this2 = this;\n\n var _this = this;\n\n if (item.rowType === 'data') {\n absoluteDataIndex++;\n }\n\n if (this.$props.alternatePerGroup && item.rowType === 'groupHeader') {\n absoluteDataIndex = 0;\n }\n\n var isAlt = absoluteDataIndex % 2 === 0;\n var dataItemKey = this.$props.dataItemKey && getter(this.$props.dataItemKey)(item.dataItem);\n var absoluteIndex = rowIndex + (this.vs.propsSkip || 0);\n var rowId = dataItemKey ? dataItemKey : 'ai' + absoluteIndex;\n var detailRowId = rowId + '_1';\n currentAriaRowIndex = absoluteIndex + rowIndexStart + detailRowCount;\n leftWidth = 0;\n var rowRenderFunction = templateRendering.call(this, this.$props.rowRender, getListeners.call(this));\n var detailColspan;\n\n if (this.$props.detail && item.rowType === 'data' && item.expanded) {\n detailColspan = columnsWithColGroup.length - (this.$props.expandField ? 1 : 0) - (this.$props.group ? this.$props.group.length : 0) || 1;\n detailRowCount++;\n currentAriaRowIndex = absoluteIndex + rowIndexStart + detailRowCount;\n }\n\n return [// @ts-ignore function children\n h(GridRow, {\n key: rowId,\n dataItem: item.dataItem,\n attrs: this.v3 ? undefined : {\n dataItem: item.dataItem,\n isAltRow: isAlt,\n isInEdit: dataRow.isInEdit,\n rowType: item.rowType,\n isHidden: hidden(rowIndex),\n selectedField: this.$props.selectedField,\n rowHeight: this.$props.rowHeight,\n render: rowRenderFunction,\n ariaRowIndex: currentAriaRowIndex,\n dataIndex: dataIndex,\n isSelected: dataRow.isSelected\n },\n isAltRow: isAlt,\n isInEdit: dataRow.isInEdit,\n rowType: item.rowType,\n isHidden: hidden(rowIndex),\n onRowclick: function onRowclick(e) {\n return _this.rowClick(e, item);\n },\n on: this.v3 ? undefined : {\n \"rowclick\": function onRowclick(e) {\n return _this.rowClick(e, item);\n },\n \"rowdblclick\": function rowdblclick(e) {\n return _this.rowDoubleClick(e, item);\n }\n },\n onRowdblclick: function rowdblclick(e) {\n return _this.rowDoubleClick(e, item);\n },\n selectedField: this.$props.selectedField,\n rowHeight: this.$props.rowHeight,\n render: rowRenderFunction,\n ariaRowIndex: currentAriaRowIndex,\n dataIndex: dataIndex,\n isSelected: dataRow.isSelected\n }, this.v3 ? function () {\n return [dataRow.call(_this2, item, rowId, dataIndex).row];\n } : [dataRow.call(_this2, item, rowId, dataIndex).row]), this.$props.detail && item.rowType === 'data' && item.expanded && h(\"tr\", {\n key: detailRowId,\n \"class\": isAlt ? 'k-detail-row k-alt' : 'k-detail-row',\n style: {\n visibility: hidden(rowIndex) ? 'hidden' : ''\n },\n role: \"row\",\n attrs: this.v3 ? undefined : {\n role: \"row\",\n \"aria-rowindex\": currentAriaRowIndex\n },\n \"aria-rowindex\": currentAriaRowIndex\n }, [this.$props.group && this.$props.group.map(function (group, idx) {\n // @ts-ignore\n return h(GridGroupCell, {\n id: '',\n attrs: this.v3 ? undefined : {\n id: '',\n dataIndex: item.dataIndex,\n field: group.field,\n dataItem: item.dataItem\n },\n dataIndex: item.dataIndex,\n field: group.field,\n dataItem: item.dataItem,\n key: idx\n });\n }, this), this.$props.expandField && // @ts-ignore function children\n h(GridDetailHierarchyCell, {\n id: navigationTools.generateNavigatableId(detailRowId + \"-dhcell\", idPrefix),\n attrs: this.v3 ? undefined : {\n id: navigationTools.generateNavigatableId(detailRowId + \"-dhcell\", idPrefix)\n }\n }), // @ts-ignore function children\n h(GridDetailCell, {\n dataItem: item.dataItem,\n attrs: this.v3 ? undefined : {\n dataItem: item.dataItem,\n dataIndex: item.dataIndex,\n colSpan: detailColspan,\n ariaColIndex: 2 + (this.$props.group ? this.$props.group.length : 0),\n detail: this.$props.detail ? detailRenderFunction : undefined,\n id: navigationTools.generateNavigatableId(detailRowId + \"-dcell\", idPrefix)\n },\n dataIndex: item.dataIndex,\n colSpan: detailColspan,\n ariaColIndex: 2 + (this.$props.group ? this.$props.group.length : 0),\n detail: this.$props.detail ? detailRenderFunction : undefined,\n id: navigationTools.generateNavigatableId(detailRowId + \"-dcell\", idPrefix)\n })])];\n }, this) || h(\"tr\", {\n \"class\": \"k-grid-norecords\"\n }, [h(\"td\", {\n colSpan: this._columns.filter(function (c) {\n return !c.children.length;\n }).length,\n attrs: this.v3 ? undefined : {\n colSpan: this._columns.filter(function (c) {\n return !c.children.length;\n }).length\n }\n }, [// @ts-ignore\n noRecords.length ? noRecords : h(GridNoRecords)])]);\n var pagerTemplate = templateRendering.call(this, this.$props.pager, getListeners.call(this)); // @ts-ignore\n\n var defaultPagerRendering = this.$props.pageable && h(Pager, {\n \"class\": 'k-grid-pager',\n onPagesizechange: this.pageChangeHandler,\n on: this.v3 ? undefined : {\n \"pagesizechange\": this.pageChangeHandler,\n \"pagechange\": this.pageChangeHandler\n },\n onPagechange: this.pageChangeHandler,\n total: total,\n attrs: this.v3 ? undefined : {\n total: total,\n skip: this.vs.propsSkip || 0,\n pageSize: (this.$props.take !== undefined ? this.$props.take : this.$props.pageSize) || 10,\n messagesMap: pagerMessagesMap,\n settings: normalize(this.$props.pageable || {})\n },\n skip: this.vs.propsSkip || 0,\n pageSize: (this.$props.take !== undefined ? this.$props.take : this.$props.pageSize) || 10,\n messagesMap: pagerMessagesMap,\n settings: normalize(this.$props.pageable || {})\n });\n var pager = getTemplate.call(this, {\n h: h,\n template: pagerTemplate,\n defaultRendering: defaultPagerRendering,\n additionalProps: __assign(__assign({}, this.$props), {\n skip: this.vs.propsSkip || 0,\n messagesMap: pagerMessagesMap\n }),\n additionalListeners: {\n pagesizechange: this.pageChangeHandler,\n pagechange: this.pageChangeHandler\n }\n });\n\n var sorted = function sorted(field) {\n return _this.$props.sort && _this.$props.sort.filter(function (descriptor) {\n return descriptor.field === field;\n }).length > 0;\n };\n\n var colGroups = h(\"colgroup\", {\n role: \"presentation\",\n attrs: this.v3 ? undefined : {\n role: \"presentation\"\n },\n ref: this.v3 ? function (el) {\n _this.colGroupRef = el;\n } : 'colGroup'\n }, [columnsWithColGroup.map(function (column, index) {\n return h(\"col\", {\n key: index.toString(),\n \"class\": sorted(column.field) ? 'k-sorted' : undefined,\n width: column.width !== undefined ? Math.floor(parseFloat(column.width.toString())) + 'px' : undefined,\n attrs: this.v3 ? undefined : {\n width: column.width !== undefined ? Math.floor(parseFloat(column.width.toString())) + 'px' : undefined\n }\n });\n }, this)]);\n var wrapperStyle = {\n height: this.getCorrectHeight\n };\n\n if (this.$props.scrollable === 'none') {\n return (// @ts-ignore function children\n h(TableKeyboardNavigationProvider, {\n ref: 'navRef',\n id: this._gridId,\n attrs: this.v3 ? undefined : {\n id: this._gridId,\n navigatable: this.$props.navigatable\n },\n navigatable: this.$props.navigatable\n }, this.v3 ? function () {\n return [// @ts-ignore function children\n h(GridNav, {\n ref: _this3.v3 ? function (el) {\n _this.gridNavRef = el;\n } : 'gridNav',\n currentData: _this3.currentData,\n attrs: _this3.v3 ? undefined : {\n currentData: _this3.currentData,\n role: \"grid\"\n },\n style: wrapperStyle,\n role: \"grid\",\n \"class\": \"k-widget k-grid\"\n }, _this3.v3 ? function () {\n return [toolbar, groupingPanel, h(\"table\", {\n style: {\n tableLayout: 'fixed'\n }\n }, [colGroups, header, h(\"tbody\", {\n \"data-keyboardnavbody\": true,\n attrs: _this3.v3 ? undefined : {\n \"data-keyboardnavbody\": true\n }\n }, [body]), footer]), pager, clues];\n } : [toolbar, groupingPanel, h(\"table\", {\n style: {\n tableLayout: 'fixed'\n }\n }, [colGroups, header, h(\"tbody\", {\n \"data-keyboardnavbody\": true,\n attrs: _this3.v3 ? undefined : {\n \"data-keyboardnavbody\": true\n }\n }, [body]), footer]), pager, clues])];\n } : [h(GridNav, {\n ref: _this3.v3 ? function (el) {\n _this.gridNavRef = el;\n } : 'gridNav',\n currentData: _this3.currentData,\n attrs: _this3.v3 ? undefined : {\n currentData: _this3.currentData,\n role: \"grid\"\n },\n style: wrapperStyle,\n role: \"grid\",\n \"class\": \"k-widget k-grid\"\n }, _this3.v3 ? function () {\n return [toolbar, groupingPanel, h(\"table\", {\n style: {\n tableLayout: 'fixed'\n }\n }, [colGroups, header, h(\"tbody\", {\n \"data-keyboardnavbody\": true,\n attrs: _this3.v3 ? undefined : {\n \"data-keyboardnavbody\": true\n }\n }, [body]), footer]), pager, clues];\n } : [toolbar, groupingPanel, h(\"table\", {\n style: {\n tableLayout: 'fixed'\n }\n }, [colGroups, header, h(\"tbody\", {\n \"data-keyboardnavbody\": true,\n attrs: _this3.v3 ? undefined : {\n \"data-keyboardnavbody\": true\n }\n }, [body]), footer]), pager, clues])])\n );\n }\n\n return (// @ts-ignore function children\n h(TableKeyboardNavigationProvider, {\n ref: 'navRef',\n id: this._gridId,\n attrs: this.v3 ? undefined : {\n id: this._gridId,\n navigatable: this.$props.navigatable\n },\n navigatable: this.$props.navigatable\n }, this.v3 ? function () {\n return [// @ts-ignore function children\n h(GridNav, {\n ref: _this3.v3 ? function (el) {\n _this.gridNavRef = el;\n } : 'gridNav',\n currentData: _this3.currentData,\n attrs: _this3.v3 ? undefined : {\n currentData: _this3.currentData,\n role: \"grid\"\n },\n style: wrapperStyle,\n role: \"grid\",\n \"class\": 'k-widget k-grid' + (_this3.$props.scrollable === 'virtual' ? ' k-grid-virtual' : '')\n }, _this3.v3 ? function () {\n return [toolbar, groupingPanel, header, h(\"div\", {\n \"class\": \"k-grid-container\",\n role: \"presentation\",\n attrs: _this3.v3 ? undefined : {\n role: \"presentation\"\n }\n }, [h(\"div\", {\n role: \"presentation\",\n attrs: _this3.v3 ? undefined : {\n role: \"presentation\"\n },\n ref: _this3.v3 ? function (el) {\n _this.scrollContainerRef = el;\n } : 'scrollContainer',\n \"class\": \"k-grid-content k-virtual-content\",\n onScroll: _this3.scrollHandler,\n on: _this3.v3 ? undefined : {\n \"scroll\": _this3.scrollHandler\n }\n }, [h(\"div\", {\n style: {\n 'position': 'relative'\n }\n }, [h(\"table\", {\n role: \"presentation\",\n attrs: _this3.v3 ? undefined : {\n role: \"presentation\",\n tabIndex: -1\n },\n tabIndex: -1,\n \"class\": 'k-grid-table',\n ref: _this3.v3 ? function (el) {\n _this.scrollTableRef = el;\n } : 'scrollTable'\n }, [colGroups, h(\"tbody\", {\n role: \"presentation\",\n attrs: _this3.v3 ? undefined : {\n role: \"presentation\",\n \"data-keyboardnavbody\": true\n },\n \"data-keyboardnavbody\": true,\n ref: _this3.v3 ? function (el) {\n _this.scrollTableBodyRef = el;\n } : 'scrollTableBody'\n }, [body])])]), h(\"div\", {\n \"class\": \"k-height-container\",\n role: \"presentation\",\n attrs: _this3.v3 ? undefined : {\n role: \"presentation\"\n }\n }, [h(\"div\", {\n style: _this3.$props.scrollable === 'virtual' ? {\n 'height': _this3.vs.containerHeight + 'px'\n } : {}\n })])])]), footer, pager, clues];\n } : [toolbar, groupingPanel, header, h(\"div\", {\n \"class\": \"k-grid-container\",\n role: \"presentation\",\n attrs: _this3.v3 ? undefined : {\n role: \"presentation\"\n }\n }, [h(\"div\", {\n role: \"presentation\",\n attrs: _this3.v3 ? undefined : {\n role: \"presentation\"\n },\n ref: _this3.v3 ? function (el) {\n _this.scrollContainerRef = el;\n } : 'scrollContainer',\n \"class\": \"k-grid-content k-virtual-content\",\n onScroll: _this3.scrollHandler,\n on: _this3.v3 ? undefined : {\n \"scroll\": _this3.scrollHandler\n }\n }, [h(\"div\", {\n style: {\n 'position': 'relative'\n }\n }, [h(\"table\", {\n role: \"presentation\",\n attrs: _this3.v3 ? undefined : {\n role: \"presentation\",\n tabIndex: -1\n },\n tabIndex: -1,\n \"class\": 'k-grid-table',\n ref: _this3.v3 ? function (el) {\n _this.scrollTableRef = el;\n } : 'scrollTable'\n }, [colGroups, h(\"tbody\", {\n role: \"presentation\",\n attrs: _this3.v3 ? undefined : {\n role: \"presentation\",\n \"data-keyboardnavbody\": true\n },\n \"data-keyboardnavbody\": true,\n ref: _this3.v3 ? function (el) {\n _this.scrollTableBodyRef = el;\n } : 'scrollTableBody'\n }, [body])])]), h(\"div\", {\n \"class\": \"k-height-container\",\n role: \"presentation\",\n attrs: _this3.v3 ? undefined : {\n role: \"presentation\"\n }\n }, [h(\"div\", {\n style: _this3.$props.scrollable === 'virtual' ? {\n 'height': _this3.vs.containerHeight + 'px'\n } : {}\n })])])]), footer, pager, clues])];\n } : [h(GridNav, {\n ref: _this3.v3 ? function (el) {\n _this.gridNavRef = el;\n } : 'gridNav',\n currentData: _this3.currentData,\n attrs: _this3.v3 ? undefined : {\n currentData: _this3.currentData,\n role: \"grid\"\n },\n style: wrapperStyle,\n role: \"grid\",\n \"class\": 'k-widget k-grid' + (_this3.$props.scrollable === 'virtual' ? ' k-grid-virtual' : '')\n }, _this3.v3 ? function () {\n return [toolbar, groupingPanel, header, h(\"div\", {\n \"class\": \"k-grid-container\",\n role: \"presentation\",\n attrs: _this3.v3 ? undefined : {\n role: \"presentation\"\n }\n }, [h(\"div\", {\n role: \"presentation\",\n attrs: _this3.v3 ? undefined : {\n role: \"presentation\"\n },\n ref: _this3.v3 ? function (el) {\n _this.scrollContainerRef = el;\n } : 'scrollContainer',\n \"class\": \"k-grid-content k-virtual-content\",\n onScroll: _this3.scrollHandler,\n on: _this3.v3 ? undefined : {\n \"scroll\": _this3.scrollHandler\n }\n }, [h(\"div\", {\n style: {\n 'position': 'relative'\n }\n }, [h(\"table\", {\n role: \"presentation\",\n attrs: _this3.v3 ? undefined : {\n role: \"presentation\",\n tabIndex: -1\n },\n tabIndex: -1,\n \"class\": 'k-grid-table',\n ref: _this3.v3 ? function (el) {\n _this.scrollTableRef = el;\n } : 'scrollTable'\n }, [colGroups, h(\"tbody\", {\n role: \"presentation\",\n attrs: _this3.v3 ? undefined : {\n role: \"presentation\",\n \"data-keyboardnavbody\": true\n },\n \"data-keyboardnavbody\": true,\n ref: _this3.v3 ? function (el) {\n _this.scrollTableBodyRef = el;\n } : 'scrollTableBody'\n }, [body])])]), h(\"div\", {\n \"class\": \"k-height-container\",\n role: \"presentation\",\n attrs: _this3.v3 ? undefined : {\n role: \"presentation\"\n }\n }, [h(\"div\", {\n style: _this3.$props.scrollable === 'virtual' ? {\n 'height': _this3.vs.containerHeight + 'px'\n } : {}\n })])])]), footer, pager, clues];\n } : [toolbar, groupingPanel, header, h(\"div\", {\n \"class\": \"k-grid-container\",\n role: \"presentation\",\n attrs: _this3.v3 ? undefined : {\n role: \"presentation\"\n }\n }, [h(\"div\", {\n role: \"presentation\",\n attrs: _this3.v3 ? undefined : {\n role: \"presentation\"\n },\n ref: _this3.v3 ? function (el) {\n _this.scrollContainerRef = el;\n } : 'scrollContainer',\n \"class\": \"k-grid-content k-virtual-content\",\n onScroll: _this3.scrollHandler,\n on: _this3.v3 ? undefined : {\n \"scroll\": _this3.scrollHandler\n }\n }, [h(\"div\", {\n style: {\n 'position': 'relative'\n }\n }, [h(\"table\", {\n role: \"presentation\",\n attrs: _this3.v3 ? undefined : {\n role: \"presentation\",\n tabIndex: -1\n },\n tabIndex: -1,\n \"class\": 'k-grid-table',\n ref: _this3.v3 ? function (el) {\n _this.scrollTableRef = el;\n } : 'scrollTable'\n }, [colGroups, h(\"tbody\", {\n role: \"presentation\",\n attrs: _this3.v3 ? undefined : {\n role: \"presentation\",\n \"data-keyboardnavbody\": true\n },\n \"data-keyboardnavbody\": true,\n ref: _this3.v3 ? function (el) {\n _this.scrollTableBodyRef = el;\n } : 'scrollTableBody'\n }, [body])])]), h(\"div\", {\n \"class\": \"k-height-container\",\n role: \"presentation\",\n attrs: _this3.v3 ? undefined : {\n role: \"presentation\"\n }\n }, [h(\"div\", {\n style: _this3.$props.scrollable === 'virtual' ? {\n 'height': _this3.vs.containerHeight + 'px'\n } : {}\n })])])]), footer, pager, clues])])\n );\n }\n};\nvar GridVue3 = Grid;\nexport { Grid, GridVue3 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar inject = allVue.inject;\nimport { GridColumnMenuItem } from './GridColumnMenuItem';\nimport { GridColumnMenuItemGroup } from './GridColumnMenuItemGroup';\nimport { GridColumnMenuItemContent } from './GridColumnMenuItemContent';\nimport { Checkbox } from '@progress/kendo-vue-inputs';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { messages, filterClearButton, filterSubmitButton, filterTitle, searchPlaceholder, filterCheckAll } from '../messages';\nimport { filterBy } from '@progress/kendo-data-query';\nimport { clone } from '@progress/kendo-vue-common';\nimport { getNestedValue } from '../utils';\n/**\n * @hidden\n */\n\nvar isArrayEqual = function isArrayEqual(firstArray, secondArray) {\n if (firstArray.length !== secondArray.length) {\n return false;\n }\n\n return firstArray.every(function (ex, i) {\n return ex === secondArray[i];\n });\n};\n/**\n * Represents the default `GridColumnMenuCheckboxFilter` component.\n */\n\n\nvar GridColumnMenuCheckboxFilter = {\n name: 'KendoGridColumnMenuCheckboxFilter',\n props: {\n column: Object,\n filter: Object,\n filterable: Boolean,\n filterOperators: Object,\n expanded: {\n type: Boolean,\n default: undefined\n },\n dataItems: Array,\n searchBox: {\n type: Boolean,\n default: true\n },\n uniqueData: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n return {\n currentExpanded: false,\n currentValue: '',\n currentData: undefined,\n dataFromProps: undefined,\n currentFilter: undefined\n };\n },\n created: function created() {\n this.compositeFilterIndex = this.getFilterIndex();\n this.currentExpanded = this.$props.expanded;\n this.currentData = this.parseData(this.$props.dataItems, this.$props.uniqueData) || [];\n this.dataFromProps = this.parseData(this.$props.dataItems, false) || [];\n this.currentFilter = this.defaultFilter();\n },\n updated: function updated() {\n var field = this.$props.column.field || '';\n var data = this.$props.dataItems.map(function (item) {\n return getNestedValue(field, item);\n });\n\n if (!isArrayEqual(data, this.dataFromProps)) {\n this.currentData = data;\n this.dataFromProps = data;\n }\n },\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this2 = this;\n\n var _this = this;\n\n var h = gh || createElement;\n var column = this.$props.column;\n\n if (!column || !column.field) {\n return h(\"div\");\n }\n\n var localizationService = provideLocalizationService(this);\n var expandState = this.$props.expanded !== undefined ? this.$props.expanded : this.currentExpanded;\n var filterValues = [];\n\n if (this.currentFilter) {\n var currentFilter = __spreadArrays(this.currentFilter.filters);\n\n this.compositeFilterIndex = currentFilter.findIndex(function (filter) {\n if (filter.filters && filter.filters.length > 0) {\n return filter.filters[0].field === column.field;\n }\n\n return false;\n });\n\n if (this.compositeFilterIndex !== -1 && currentFilter[this.compositeFilterIndex].filters.length > 0) {\n currentFilter[this.compositeFilterIndex].filters.forEach(function (filterItem) {\n if (filterItem.field === _this.$props.column.field) {\n filterValues.push(filterItem.value);\n }\n });\n }\n }\n\n var searchBox = function searchBox() {\n return this.$props.searchBox && h(\"span\", {\n \"class\": \"k-list-filter\"\n }, [h(\"input\", {\n ref: 'searchBox',\n placeholder: localizationService.toLanguageString(searchPlaceholder, messages[searchPlaceholder]),\n attrs: this.v3 ? undefined : {\n placeholder: localizationService.toLanguageString(searchPlaceholder, messages[searchPlaceholder])\n },\n \"class\": \"k-textbox\",\n value: this.v3 ? this.currentValue : null,\n domProps: this.v3 ? undefined : {\n \"value\": this.currentValue\n },\n onInput: this.handleSearchChange,\n on: this.v3 ? undefined : {\n \"input\": this.handleSearchChange\n }\n }), h(\"span\", {\n \"class\": \"k-icon k-i-search\"\n })]);\n };\n\n var uniqueFilterValues = filterValues.filter(function (item, index) {\n return filterValues.indexOf(item) === index;\n });\n return (// @ts-ignore function children\n h(GridColumnMenuItemGroup, this.v3 ? function () {\n return [// @ts-ignore function children\n h(GridColumnMenuItem, {\n title: localizationService.toLanguageString(filterTitle, messages[filterTitle]),\n attrs: _this2.v3 ? undefined : {\n title: localizationService.toLanguageString(filterTitle, messages[filterTitle]),\n iconClass: 'k-i-filter'\n },\n iconClass: 'k-i-filter',\n onClick: _this2.onFilterExpand,\n on: _this2.v3 ? undefined : {\n \"click\": _this2.onFilterExpand\n }\n }), // @ts-ignore function children\n h(GridColumnMenuItemContent, {\n show: !!expandState,\n attrs: _this2.v3 ? undefined : {\n show: !!expandState\n }\n }, _this2.v3 ? function () {\n return [h(\"div\", {\n \"class\": 'kendo-grid-filter-menu-container'\n }, [h(\"form\", {\n \"class\": 'k-filter-menu k-group k-reset k-state-border-up',\n onSubmit: _this2.submit,\n on: _this2.v3 ? undefined : {\n \"submit\": _this2.submit,\n \"reset\": _this2.clear\n },\n onReset: _this2.clear\n }, [h(\"div\", {\n \"class\": 'k-filter-menu-container'\n }, [searchBox.call(_this2), h(\"ul\", {\n \"class\": \"k-reset k-multicheck-wrap\"\n }, [h(\"li\", {\n \"class\": \"k-item\"\n }, [// @ts-ignore function children\n h(Checkbox, {\n label: localizationService.toLanguageString(filterCheckAll, messages[filterCheckAll]),\n attrs: _this2.v3 ? undefined : {\n label: localizationService.toLanguageString(filterCheckAll, messages[filterCheckAll]),\n checked: _this2.isAllSelected()\n },\n onChange: function onChange(e) {\n return _this.handleCheckBoxChange(e, 'all');\n },\n on: _this2.v3 ? undefined : {\n \"change\": function onChange(e) {\n return _this.handleCheckBoxChange(e, 'all');\n }\n },\n checked: _this2.isAllSelected()\n })]), _this2.currentData.map(function (item, index) {\n var _this = this;\n\n return h(\"li\", {\n \"class\": \"k-item\",\n key: index\n }, [// @ts-ignore function children\n h(Checkbox, {\n label: String(item),\n attrs: this.v3 ? undefined : {\n label: String(item),\n checked: uniqueFilterValues.includes(item)\n },\n onChange: function onChange(e) {\n return _this.handleCheckBoxChange(e, item);\n },\n on: this.v3 ? undefined : {\n \"change\": function onChange(e) {\n return _this.handleCheckBoxChange(e, item);\n }\n },\n checked: uniqueFilterValues.includes(item)\n })]);\n }, _this2)]), h(\"div\", {\n \"class\": 'k-columnmenu-actions'\n }, [h(\"button\", {\n \"class\": 'k-button',\n type: 'reset',\n attrs: _this2.v3 ? undefined : {\n type: 'reset'\n }\n }, [localizationService.toLanguageString(filterClearButton, messages[filterClearButton])]), h(\"button\", {\n \"class\": 'k-button k-primary'\n }, [localizationService.toLanguageString(filterSubmitButton, messages[filterSubmitButton])])])])])])];\n } : [h(\"div\", {\n \"class\": 'kendo-grid-filter-menu-container'\n }, [h(\"form\", {\n \"class\": 'k-filter-menu k-group k-reset k-state-border-up',\n onSubmit: _this2.submit,\n on: _this2.v3 ? undefined : {\n \"submit\": _this2.submit,\n \"reset\": _this2.clear\n },\n onReset: _this2.clear\n }, [h(\"div\", {\n \"class\": 'k-filter-menu-container'\n }, [searchBox.call(_this2), h(\"ul\", {\n \"class\": \"k-reset k-multicheck-wrap\"\n }, [h(\"li\", {\n \"class\": \"k-item\"\n }, [h(Checkbox, {\n label: localizationService.toLanguageString(filterCheckAll, messages[filterCheckAll]),\n attrs: _this2.v3 ? undefined : {\n label: localizationService.toLanguageString(filterCheckAll, messages[filterCheckAll]),\n checked: _this2.isAllSelected()\n },\n onChange: function onChange(e) {\n return _this.handleCheckBoxChange(e, 'all');\n },\n on: _this2.v3 ? undefined : {\n \"change\": function onChange(e) {\n return _this.handleCheckBoxChange(e, 'all');\n }\n },\n checked: _this2.isAllSelected()\n })]), _this2.currentData.map(function (item, index) {\n var _this = this;\n\n return h(\"li\", {\n \"class\": \"k-item\",\n key: index\n }, [h(Checkbox, {\n label: String(item),\n attrs: this.v3 ? undefined : {\n label: String(item),\n checked: uniqueFilterValues.includes(item)\n },\n onChange: function onChange(e) {\n return _this.handleCheckBoxChange(e, item);\n },\n on: this.v3 ? undefined : {\n \"change\": function onChange(e) {\n return _this.handleCheckBoxChange(e, item);\n }\n },\n checked: uniqueFilterValues.includes(item)\n })]);\n }, _this2)]), h(\"div\", {\n \"class\": 'k-columnmenu-actions'\n }, [h(\"button\", {\n \"class\": 'k-button',\n type: 'reset',\n attrs: _this2.v3 ? undefined : {\n type: 'reset'\n }\n }, [localizationService.toLanguageString(filterClearButton, messages[filterClearButton])]), h(\"button\", {\n \"class\": 'k-button k-primary'\n }, [localizationService.toLanguageString(filterSubmitButton, messages[filterSubmitButton])])])])])])])];\n } : [h(GridColumnMenuItem, {\n title: localizationService.toLanguageString(filterTitle, messages[filterTitle]),\n attrs: _this2.v3 ? undefined : {\n title: localizationService.toLanguageString(filterTitle, messages[filterTitle]),\n iconClass: 'k-i-filter'\n },\n iconClass: 'k-i-filter',\n onClick: _this2.onFilterExpand,\n on: _this2.v3 ? undefined : {\n \"click\": _this2.onFilterExpand\n }\n }), h(GridColumnMenuItemContent, {\n show: !!expandState,\n attrs: _this2.v3 ? undefined : {\n show: !!expandState\n }\n }, _this2.v3 ? function () {\n return [h(\"div\", {\n \"class\": 'kendo-grid-filter-menu-container'\n }, [h(\"form\", {\n \"class\": 'k-filter-menu k-group k-reset k-state-border-up',\n onSubmit: _this2.submit,\n on: _this2.v3 ? undefined : {\n \"submit\": _this2.submit,\n \"reset\": _this2.clear\n },\n onReset: _this2.clear\n }, [h(\"div\", {\n \"class\": 'k-filter-menu-container'\n }, [searchBox.call(_this2), h(\"ul\", {\n \"class\": \"k-reset k-multicheck-wrap\"\n }, [h(\"li\", {\n \"class\": \"k-item\"\n }, [h(Checkbox, {\n label: localizationService.toLanguageString(filterCheckAll, messages[filterCheckAll]),\n attrs: _this2.v3 ? undefined : {\n label: localizationService.toLanguageString(filterCheckAll, messages[filterCheckAll]),\n checked: _this2.isAllSelected()\n },\n onChange: function onChange(e) {\n return _this.handleCheckBoxChange(e, 'all');\n },\n on: _this2.v3 ? undefined : {\n \"change\": function onChange(e) {\n return _this.handleCheckBoxChange(e, 'all');\n }\n },\n checked: _this2.isAllSelected()\n })]), _this2.currentData.map(function (item, index) {\n var _this = this;\n\n return h(\"li\", {\n \"class\": \"k-item\",\n key: index\n }, [h(Checkbox, {\n label: String(item),\n attrs: this.v3 ? undefined : {\n label: String(item),\n checked: uniqueFilterValues.includes(item)\n },\n onChange: function onChange(e) {\n return _this.handleCheckBoxChange(e, item);\n },\n on: this.v3 ? undefined : {\n \"change\": function onChange(e) {\n return _this.handleCheckBoxChange(e, item);\n }\n },\n checked: uniqueFilterValues.includes(item)\n })]);\n }, _this2)]), h(\"div\", {\n \"class\": 'k-columnmenu-actions'\n }, [h(\"button\", {\n \"class\": 'k-button',\n type: 'reset',\n attrs: _this2.v3 ? undefined : {\n type: 'reset'\n }\n }, [localizationService.toLanguageString(filterClearButton, messages[filterClearButton])]), h(\"button\", {\n \"class\": 'k-button k-primary'\n }, [localizationService.toLanguageString(filterSubmitButton, messages[filterSubmitButton])])])])])])];\n } : [h(\"div\", {\n \"class\": 'kendo-grid-filter-menu-container'\n }, [h(\"form\", {\n \"class\": 'k-filter-menu k-group k-reset k-state-border-up',\n onSubmit: _this2.submit,\n on: _this2.v3 ? undefined : {\n \"submit\": _this2.submit,\n \"reset\": _this2.clear\n },\n onReset: _this2.clear\n }, [h(\"div\", {\n \"class\": 'k-filter-menu-container'\n }, [searchBox.call(_this2), h(\"ul\", {\n \"class\": \"k-reset k-multicheck-wrap\"\n }, [h(\"li\", {\n \"class\": \"k-item\"\n }, [h(Checkbox, {\n label: localizationService.toLanguageString(filterCheckAll, messages[filterCheckAll]),\n attrs: _this2.v3 ? undefined : {\n label: localizationService.toLanguageString(filterCheckAll, messages[filterCheckAll]),\n checked: _this2.isAllSelected()\n },\n onChange: function onChange(e) {\n return _this.handleCheckBoxChange(e, 'all');\n },\n on: _this2.v3 ? undefined : {\n \"change\": function onChange(e) {\n return _this.handleCheckBoxChange(e, 'all');\n }\n },\n checked: _this2.isAllSelected()\n })]), _this2.currentData.map(function (item, index) {\n var _this = this;\n\n return h(\"li\", {\n \"class\": \"k-item\",\n key: index\n }, [h(Checkbox, {\n label: String(item),\n attrs: this.v3 ? undefined : {\n label: String(item),\n checked: uniqueFilterValues.includes(item)\n },\n onChange: function onChange(e) {\n return _this.handleCheckBoxChange(e, item);\n },\n on: this.v3 ? undefined : {\n \"change\": function onChange(e) {\n return _this.handleCheckBoxChange(e, item);\n }\n },\n checked: uniqueFilterValues.includes(item)\n })]);\n }, _this2)]), h(\"div\", {\n \"class\": 'k-columnmenu-actions'\n }, [h(\"button\", {\n \"class\": 'k-button',\n type: 'reset',\n attrs: _this2.v3 ? undefined : {\n type: 'reset'\n }\n }, [localizationService.toLanguageString(filterClearButton, messages[filterClearButton])]), h(\"button\", {\n \"class\": 'k-button k-primary'\n }, [localizationService.toLanguageString(filterSubmitButton, messages[filterSubmitButton])])])])])])])])\n );\n },\n methods: {\n defaultFilter: function defaultFilter() {\n if (this.$props.filter) {\n return clone(this.$props.filter);\n }\n\n return {\n filters: [],\n logic: 'and'\n };\n },\n parseData: function parseData(originalData, isUnique) {\n var field = this.$props.column.field || '';\n var data = originalData.map(function (item) {\n return getNestedValue(field, item);\n });\n\n if (isUnique) {\n return data.filter(function (item, index) {\n return data.indexOf(item) === index;\n });\n }\n\n return data;\n },\n getFilterIndex: function getFilterIndex() {\n var field = this.$props.column.field;\n var currentFilter = this.defaultFilter();\n var compositeFilterIndex = currentFilter.filters.findIndex(function (filter) {\n return filter.filters && filter.filters.length > 0 && filter.filters[0].field === field;\n });\n return compositeFilterIndex;\n },\n onFilterExpand: function onFilterExpand() {\n var isControlled = this.$props.expanded !== undefined;\n var nextValue = !(isControlled ? this.$props.expanded : this.currentExpanded);\n this.$emit('expandchange', nextValue);\n\n if (!isControlled) {\n this.currentExpanded = nextValue;\n }\n },\n handleSearchChange: function handleSearchChange(e) {\n var filterExpression = {\n logic: 'and',\n filters: [{\n field: this.$props.column.field,\n operator: 'startswith',\n value: e.target.value,\n ignoreCase: true\n }]\n };\n this.currentValue = e.target.value;\n this.currentData = this.parseData(filterBy(this.$props.dataItems || [], filterExpression), this.$props.uniqueData);\n },\n clear: function clear(e) {\n e.preventDefault();\n var updatedFilter = this.currentFilter || null;\n\n if (updatedFilter !== null && updatedFilter.filters.length > 0) {\n if (this.compositeFilterIndex >= 0) {\n updatedFilter.filters.splice(this.compositeFilterIndex, 1);\n }\n\n this.$emit('filterchange', updatedFilter, e);\n } else {\n this.$emit('filterchange', null, e);\n }\n\n this.$emit('closemenu');\n },\n submit: function submit(e) {\n e.preventDefault();\n var updatedFilter = this.currentFilter || null;\n this.$emit('filterchange', updatedFilter, e);\n this.$emit('closemenu');\n },\n handleCheckBoxChange: function handleCheckBoxChange(e, value) {\n var field = this.$props.column.field || '';\n\n var newFilter = __assign({}, this.currentFilter);\n\n var filters = __spreadArrays(this.currentFilter.filters) || [];\n var fieldFilters = [];\n\n if (this.compositeFilterIndex !== -1 && newFilter.filters[this.compositeFilterIndex].filters && value !== 'all') {\n fieldFilters = newFilter.filters[this.compositeFilterIndex].filters;\n }\n\n if (e.value && value === 'all') {\n this.currentData.forEach(function (item) {\n fieldFilters.push({\n field: field,\n operator: 'eq',\n value: item\n });\n });\n } else if (e.value) {\n fieldFilters.push({\n field: field,\n operator: 'eq',\n value: value\n });\n } else if (this.currentFilter) {\n var index = fieldFilters.findIndex(function (filter) {\n return filter.value === value;\n });\n fieldFilters.splice(index, 1);\n }\n\n newFilter.logic = 'and';\n\n if (this.compositeFilterIndex !== -1) {\n filters[this.compositeFilterIndex] = {\n logic: 'or',\n filters: fieldFilters\n };\n } else {\n filters.push({\n logic: 'or',\n filters: fieldFilters\n });\n }\n\n if (!e.value && value === 'all' || fieldFilters.length === 0) {\n filters.splice(this.compositeFilterIndex, 1);\n }\n\n newFilter.filters = filters;\n this.currentFilter = newFilter;\n },\n isAllSelected: function isAllSelected() {\n var _this = this;\n\n var isAllChecked = false;\n\n if (this.currentFilter) {\n var filters_1 = __spreadArrays(this.currentFilter.filters);\n\n if (this.compositeFilterIndex === -1) {\n return false;\n }\n\n isAllChecked = this.currentData.every(function (item) {\n if (_this.compositeFilterIndex !== -1 && filters_1[_this.compositeFilterIndex].filters) {\n var index = filters_1[_this.compositeFilterIndex].filters.findIndex(function (filter) {\n return filter.value === item;\n });\n\n return index >= 0;\n }\n\n return false;\n });\n return isAllChecked;\n }\n\n return isAllChecked;\n }\n }\n};\nvar GridColumnMenuCheckboxFilterVue3 = GridColumnMenuCheckboxFilter;\nexport { GridColumnMenuCheckboxFilter, GridColumnMenuCheckboxFilterVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\n/**\n * The detail-row class of the native Vue Grid by Kendo UI. Defines custom\n * details for each row. Can be applied for building the hierarchy. If `expandField` is\n * set, depending on the current data item and its `expandField` value,\n * the details for each row will be visible or hidden.\n */\n\n/**\n * @hidden\n */\n\nvar GridDetailRow = {\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n return null;\n }\n};\nvar GridDetailRowVue3 = GridDetailRow;\nexport { GridDetailRow, GridDetailRowVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * Represents the GridToolbar component.\n *\n * @example\n * ```tsx-no-run\n * \n * \n * \n * \n * \n * \n * \n *
\n * \n * ```\n */\n\n/**\n * Represents the default `GridToolbar` component.\n */\n\nvar GridToolbar = {\n name: 'GridToolbar',\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n return h(\"div\", {\n \"class\": \"k-toolbar k-grid-toolbar\"\n }, [defaultSlot]);\n }\n};\nvar GridToolbarVue3 = GridToolbar;\nexport { GridToolbar, GridToolbarVue3 };","import { Grid, GridVue3 } from './Grid';\nimport { GridColumnMenuSort, GridColumnMenuSortVue3, sortGroupByField } from './columnMenu/GridColumnMenuSort';\nimport { GridColumnMenuFilter, GridColumnMenuFilterVue3, filterGroupByField } from './columnMenu/GridColumnMenuFilter';\nimport { GridColumnMenuFilterUI, GridColumnMenuFilterUIVue3 } from './columnMenu/GridColumnMenuFilterUI';\nimport { GridColumnMenuFilterCell, GridColumnMenuFilterCellVue3 } from './columnMenu/GridColumnMenuFilterCell';\nimport { GridColumnMenuCheckboxFilter, GridColumnMenuCheckboxFilterVue3 } from './columnMenu/GridColumnMenuCheckboxFilter';\nimport { GridCell, GridCellVue3 } from './cells/GridCell';\nimport { GridEditCell, GridEditCellVue3 } from './cells/GridEditCell';\nimport { GridGroupCell, GridGroupCellVue3 } from './cells/GridGroupCell';\nimport { GridHierarchyCell, GridHierarchyCellVue3 } from './cells/GridHierarchyCell';\nimport { GridFilterCell, GridFilterCellVue3 } from './cells/GridFilterCell';\nimport { GridHeaderCell, GridHeaderCellVue3 } from './header/GridHeaderCell';\nimport { Footer, FooterVue3 } from './footer/Footer';\nimport { FooterRow, FooterRowVue3 } from './footer/FooterRow';\nimport { GridDetailRow, GridDetailRowVue3 } from './rows/GridDetailRow';\nimport { GridRow, GridRowVue3 } from './rows/GridRow';\nimport { GridToolbar, GridToolbarVue3 } from './GridToolbar';\nimport { GridNoRecords, GridNoRecordsVue3 } from './GridNoRecords';\nimport { GridColumnMenuItem, GridColumnMenuItemVue3 } from './columnMenu/GridColumnMenuItem';\nimport { GridColumnMenuItemContent, GridColumnMenuItemContentVue3 } from './columnMenu/GridColumnMenuItemContent';\nimport { GridColumnMenuItemGroup, GridColumnMenuItemGroupVue3 } from './columnMenu/GridColumnMenuItemGroup';\nexport { Grid, GridVue3, GridCell, GridCellVue3, GridEditCell, GridEditCellVue3, GridGroupCell, GridHierarchyCell, GridGroupCellVue3, GridHierarchyCellVue3, GridDetailRow, GridDetailRowVue3, GridRow, GridRowVue3, GridFilterCell, GridFilterCellVue3, GridHeaderCell, GridHeaderCellVue3, Footer, FooterRow, FooterVue3, FooterRowVue3, GridColumnMenuSort, GridColumnMenuSortVue3, sortGroupByField, GridColumnMenuFilter, GridColumnMenuFilterVue3, filterGroupByField, GridColumnMenuItem, GridColumnMenuItemVue3, GridColumnMenuItemContent, GridColumnMenuItemContentVue3, GridColumnMenuItemGroup, GridColumnMenuItemGroupVue3, GridColumnMenuFilterUI, GridColumnMenuFilterUIVue3, GridColumnMenuFilterCell, GridColumnMenuFilterCellVue3, GridColumnMenuCheckboxFilter, GridColumnMenuCheckboxFilterVue3, GridToolbar, GridToolbarVue3, GridNoRecords, GridNoRecordsVue3 };\n// Automatic installation if Vue has been added to the global scope.\nvar vue = 'Vue';\nif (typeof window !== 'undefined' && window[vue] && window[vue].component) {\n window[vue].component('kendo-grid', Grid);\n window[vue].component('kendo-grid-toolbar', GridToolbar);\n window[vue].component('kendo-grid-norecords', GridNoRecords);\n}\n","var _DraggableVue;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return (typeof key === \"undefined\" ? \"undefined\" : _typeof(key)) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if ((typeof input === \"undefined\" ? \"undefined\" : _typeof(input)) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if ((typeof res === \"undefined\" ? \"undefined\" : _typeof(res)) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport * as d from '@progress/kendo-draggable';\nimport { getDefaultSlots } from './defaultSlots';\n/**\n * @hidden\n */\nvar DraggableVue2 = (_DraggableVue = {\n // @ts-ignore\n emits: {\n press: null,\n drag: null,\n release: null\n },\n inheritAttrs: false,\n created: function created() {\n this.element = null;\n var draggable = d;\n var dp = typeof draggable !== 'undefined' && draggable.Draggable ? draggable : draggable.default;\n this.draggable = new dp.Draggable({\n press: this.press,\n drag: this.drag,\n release: this.release\n });\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n mounted: function mounted() {\n if (this.$el) {\n this.element = this.$el.nodeType === 3 || this.$el.nodeType === 8 ? this.$el.nextElementSibling : this.$el;\n this.draggable.bindTo(this.element);\n }\n },\n destroyed: !!isV3 ? undefined : function () {\n this.draggable.destroy();\n },\n // @ts-ignore\n unmounted: function unmounted() {\n this.draggable.destroy();\n },\n methods: {\n press: function press(event) {\n if (this.element) {\n this.$emit('press', event, this.element);\n }\n },\n drag: function drag(event) {\n if (this.element) {\n this.$emit('drag', event, this.element);\n }\n },\n release: function release(event) {\n if (this.element) {\n this.$emit('release', event, this.element);\n }\n }\n }\n}, _defineProperty(_DraggableVue, \"setup\", !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n}), _defineProperty(_DraggableVue, \"render\", function render(createElement) {\n // @ts-ignore\n var h = gh || createElement;\n return getDefaultSlots(this);\n}), _DraggableVue);\n/**\n * @hidden\n */\nvar Draggable = DraggableVue2;\nexport { Draggable, DraggableVue2 };","/**\n * @hidden\n */\nvar canUseDOM = Boolean(\n// from fbjs\ntypeof window !== 'undefined' &&\n window.document &&\n window.document.createElement);\nexport { canUseDOM };\n","/**\n * @hidden\n */\nexport function getDefaultSlots(component) {\n var defaultSlots = component.$slots.default;\n return (component.v3 && defaultSlots && typeof defaultSlots === 'function') ? defaultSlots() : defaultSlots;\n}\n","/**\n * @hidden\n */\nexport var isObject = function (value) {\n return typeof value === 'object';\n};\n","import { FIELD_REGEX } from './constants/main';\nvar getterCache = {};\ngetterCache.undefined = function () { return undefined; };\n/**\n * @hidden\n */\nexport function getter(field) {\n if (getterCache[field]) {\n return getterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n getterCache[field] = function (obj) {\n var result = obj;\n for (var idx = 0; idx < fields.length && result; idx++) {\n result = result[fields[idx]];\n }\n return result;\n };\n return getterCache[field];\n}\n","import { FIELD_REGEX } from './constants/main';\nvar setterCache = {};\nsetterCache.undefined = function (obj) { return obj; };\n/**\n * @hidden\n */\nexport function setter(field) {\n if (setterCache[field]) {\n return setterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n setterCache[field] = function (obj, value) {\n var root = obj;\n var depth = fields.length - 1;\n for (var idx = 0; idx < depth && root; idx++) {\n root = root[fields[idx]] = root[fields[idx]] || {};\n }\n root[fields[depth]] = value;\n };\n return setterCache[field];\n}\n","/**\n * @hidden\n */\nexport function hasListener(eventName) {\n if (this.v3) {\n return Object.keys(this.$attrs).map(function (name) { return name.toLowerCase(); })\n .some(function (event) { return event.endsWith(eventName.toLowerCase()); });\n }\n else {\n return this.$listeners[eventName];\n }\n}\n/**\n * @hidden\n */\nexport function getListeners() {\n if (this.v3) {\n var listeners = {};\n for (var key in (this.$attrs)) {\n if (key.startsWith('on')) {\n listeners[key] = this.$attrs[key];\n }\n }\n return listeners;\n }\n else {\n return this.$listeners;\n }\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nimport { isObject } from './isObject';\nvar allVue = Vue;\nvar isV3 = allVue.version && allVue.version[0] === '3';\n/**\n * @hidden\n */\nexport var templateDefinition = {\n type: [String, Function, Object, Boolean],\n default: function () {\n return undefined;\n }\n};\n/**\n * @hidden\n */\nexport function templateRendering(template, listeners) {\n if (!template && template !== false) {\n return undefined;\n }\n if (template.kt) {\n return template;\n }\n var scopedSlot = isV3 ?\n this.$slots[template] ||\n (template.toLowerCase ? this.$slots[template.toLowerCase()]\n : null) :\n this.$scopedSlots[template] ||\n (template.toLowerCase ? this.$scopedSlots[template.toLowerCase()]\n : null);\n if (typeof template === 'string' && scopedSlot) {\n return { kt: true, type: 'slot', render: scopedSlot, listeners: listeners };\n }\n if (typeof template === 'string' || isObject(template) ||\n (typeof template === 'function' && template.component)) {\n return { kt: true, type: 'component', render: template, listeners: listeners };\n }\n return { kt: true, type: 'renderFunction', render: template, listeners: listeners };\n}\n/**\n * @hidden\n */\nexport function getTemplate(_a) {\n var h = _a.h, template = _a.template, defaultRendering = _a.defaultRendering, defaultSlots = _a.defaultSlots, additionalProps = _a.additionalProps, additionalListeners = _a.additionalListeners, swapDefaultSlots = _a.swapDefaultSlots;\n if (!template || (template && template.render === true)) {\n return defaultRendering;\n }\n var events;\n var props;\n var componentOptions;\n if (isV3) {\n var passedProps = defaultRendering ? defaultRendering.props : {};\n events = __assign(__assign({}, transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, passedProps), additionalProps), events);\n componentOptions = __assign(__assign({}, props), events);\n }\n else {\n var hasComponentOptions = defaultRendering && defaultRendering.componentOptions;\n var defaultListeners = hasComponentOptions ?\n defaultRendering.componentOptions.listeners : {};\n var defaultProps = hasComponentOptions ?\n defaultRendering.componentOptions.propsData : {};\n events = __assign(__assign(__assign(__assign({}, defaultListeners), additionalListeners), transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, defaultProps), additionalProps), events);\n componentOptions = { props: props, on: events };\n }\n if (template.type === 'slot') {\n var slotTemplate = template.render({ props: props, listeners: events, methods: events,\n defaultSlots: defaultSlots });\n return isV3\n ? slotTemplate\n : slotTemplate ? slotTemplate[0] : undefined;\n }\n else if (template.type === 'renderFunction') {\n if (swapDefaultSlots) {\n return template.render ? template.render(h, defaultRendering, defaultSlots, props, events) : undefined;\n }\n return template.render ? template.render(h, defaultRendering, props, events, defaultSlots) : undefined;\n }\n else {\n return h(template.render, componentOptions, isV3 ? function () { return [defaultSlots]; } : [defaultSlots]);\n }\n}\n/**\n * @hidden\n */\nexport function transformListeners(listeners) {\n if (!listeners) {\n return listeners;\n }\n var newListeners = {};\n var listenersKeys = Object.keys(listeners);\n for (var i = 0; i < listenersKeys.length; i++) {\n var currentKey = listenersKeys[i];\n newListeners['on' + currentKey.charAt(0).toUpperCase() + currentKey.slice(1)] =\n listeners[currentKey];\n }\n return newListeners;\n}\n","import { canUseDOM } from './canUseDOM';\n/**\n * @hidden\n */\nexport function isRtl(element) {\n return Boolean(canUseDOM && element && getComputedStyle(element).direction === 'rtl');\n}\n/**\n * @hidden\n */\nexport function getDir(element, initialDir) {\n if (!initialDir && canUseDOM && element) {\n // Note: getComputedStyle forces reflow\n var rtlCandidate = window.getComputedStyle(element).direction;\n if (rtlCandidate) {\n // rerender is needed as DOM is read after first render\n return rtlCandidate;\n }\n }\n return initialDir;\n}\n","import * as l from '@progress/kendo-licensing';\nvar allowed = ['telerik.com', 'progress.com', 'stackblitz.io', 'csb.app', 'webcontainer.io'];\nvar licensing = l;\nvar ls = typeof licensing !== 'undefined' && licensing.validatePackage\n ? licensing\n : licensing.default;\n/**\n * @hidden\n */\nexport function validatePackage(packageMetadata) {\n if (ls && ls.validatePackage) {\n ls.validatePackage(packageMetadata);\n }\n else {\n var message = \"License activation failed for \".concat(packageMetadata.name, \"\\n\");\n message += 'The @progress/kendo-licensing script is not loaded.\\n';\n message += \"See \".concat(packageMetadata.licensingDocsUrl, \" for more information.\\n\");\n console.warn(message);\n }\n}\n/**\n * @hidden\n */\nexport function shouldShowValidationUI(packageMetadata) {\n var skip = allowed.some(function (hostname) { var _a; return (_a = globalThis.document) === null || _a === void 0 ? void 0 : _a.location.hostname.endsWith(hostname); });\n return !skip && !(ls && ls.validatePackage && ls.validatePackage(packageMetadata));\n}\n","/** @hidden */\nexport var kendoThemeMaps = {\n sizeMap: {\n small: 'sm',\n medium: 'md',\n large: 'lg'\n },\n roundedMap: {\n small: 'sm',\n medium: 'md',\n large: 'lg'\n }\n};\n","/**\n * @hidden\n */\nvar getDocument = function () { return typeof document !== 'undefined' ? document : {}; };\n/**\n * @hidden\n */\nvar BrowserSupportService = /** @class */ (function () {\n function BrowserSupportService() {\n }\n Object.defineProperty(BrowserSupportService.prototype, \"scrollbarWidth\", {\n get: function () {\n var document = getDocument();\n if (!this.scrollbar && document && document.createElement) {\n var div = document.createElement('div');\n div.style.cssText = 'overflow:scroll;overflow-x:hidden;zoom:1;clear:both;display:block';\n div.innerHTML = ' ';\n document.body.appendChild(div);\n this.scrollbar = div.offsetWidth - div.scrollWidth;\n document.body.removeChild(div);\n }\n return this.scrollbar;\n },\n enumerable: false,\n configurable: true\n });\n return BrowserSupportService;\n}());\nexport { BrowserSupportService };\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { SIZE_CLASSES } from './constants';\n/**\n * @hidden\n */\nvar FontIconVue2 = {\n name: 'KendoFontIcon',\n // @ts-ignore\n emits: {\n click: null\n },\n props: {\n name: String,\n themeColor: {\n type: String\n },\n size: {\n type: String\n },\n flip: {\n type: String\n },\n id: String,\n ariaLabel: String,\n title: String,\n tabIndex: Number\n },\n computed: {\n fontClassNames: function fontClassNames() {\n var _a;\n var _b = this.$props,\n name = _b.name,\n flip = _b.flip,\n size = _b.size,\n themeColor = _b.themeColor;\n return _a = {\n 'k-icon': true,\n 'k-font-icon': true\n }, _a['k-i-' + name] = name, _a['k-color-' + themeColor] = themeColor, _a['k-flip-h'] = flip === 'horizontal' || flip === 'both', _a['k-flip-v'] = flip === 'vertical' || flip === 'both', _a[SIZE_CLASSES[size]] = size, _a;\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n id = _a.id,\n title = _a.title,\n tabIndex = _a.tabIndex,\n ariaLabel = _a.ariaLabel;\n return h(\"span\", {\n \"class\": this.fontClassNames,\n id: id,\n attrs: this.v3 ? undefined : {\n id: id,\n title: title,\n \"aria-label\": ariaLabel,\n tabIndex: tabIndex,\n role: \"presentation\"\n },\n title: title,\n \"aria-label\": ariaLabel,\n tabIndex: tabIndex,\n role: \"presentation\",\n onClick: this.handleClick,\n on: this.v3 ? undefined : {\n \"click\": this.handleClick\n }\n });\n },\n methods: {\n handleClick: function handleClick(e) {\n this.$emit('click', e);\n }\n }\n};\n/**\n * @hidden\n */\nvar FontIcon = FontIconVue2;\nexport { FontIcon, FontIconVue2 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { SIZE_CLASSES } from './constants';\nimport { getDefaultSlots } from '../defaultSlots';\n/**\n * @hidden\n */\nvar SvgIconVue2 = {\n name: 'KendoSvgIcon',\n // @ts-ignore\n emits: {\n click: null\n },\n props: {\n name: String,\n icon: Object,\n themeColor: {\n type: String\n },\n size: {\n type: String\n },\n flip: {\n type: String\n },\n id: String,\n ariaLabel: String,\n title: String,\n viewBox: {\n type: String,\n default: '0 0 24 24'\n },\n tabIndex: Number,\n svgClassName: String,\n svgStyle: Object\n },\n computed: {\n wrapperClass: function wrapperClass() {\n var _a;\n var _b = this.$props,\n name = _b.name,\n flip = _b.flip,\n size = _b.size,\n themeColor = _b.themeColor;\n return _a = {\n 'k-icon': true,\n 'k-svg-icon': true\n }, _a['k-color-' + themeColor] = themeColor, _a['k-svg-i-' + name] = name, _a['k-flip-h'] = flip === 'horizontal' || flip === 'both', _a['k-flip-v'] = flip === 'vertical' || flip === 'both', _a[SIZE_CLASSES[size]] = size, _a;\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n var _a = this.$props,\n svgClassName = _a.svgClassName,\n icon = _a.icon,\n id = _a.id,\n tabIndex = _a.tabIndex,\n svgStyle = _a.svgStyle,\n viewBox = _a.viewBox,\n title = _a.title,\n ariaLabel = _a.ariaLabel;\n var innerHTML = icon ? icon.content : undefined;\n var attrs = {\n id: id,\n title: title,\n 'aria-hidden': true,\n tabIndex: tabIndex,\n ariaLabel: ariaLabel,\n focusable: 'false',\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: icon ? icon.viewBox : viewBox\n };\n var svg = h('svg', __assign(__assign({}, attrs), {\n attrs: this.v3 ? undefined : attrs,\n domProps: this.v3 ? undefined : {\n innerHTML: innerHTML\n },\n innerHTML: innerHTML,\n 'class': svgClassName,\n style: svgStyle\n }), icon ? [] : [defaultSlot]);\n return h(\"span\", {\n \"class\": this.wrapperClass,\n onClick: this.handleClick,\n on: this.v3 ? undefined : {\n \"click\": this.handleClick\n }\n }, [svg]);\n },\n methods: {\n handleClick: function handleClick(e) {\n this.$emit('click', e);\n }\n }\n};\n/**\n * @hidden\n */\nvar SvgIcon = SvgIconVue2;\nexport { SvgIcon, SvgIconVue2 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { FontIcon } from './FontIcon';\nimport { SvgIcon } from './SvgIcon';\n/**\n * @hidden\n */\nvar IconVue2 = {\n name: 'KendoIcon',\n // @ts-ignore\n emits: {\n click: null\n },\n inject: {\n kendoIcons: {\n default: {\n type: 'svg',\n icons: {}\n }\n }\n },\n props: {\n name: String,\n icon: Object,\n title: String,\n themeColor: {\n type: String\n },\n size: {\n type: String\n },\n flip: {\n type: String\n },\n id: String,\n ariaLabel: String,\n viewBox: {\n type: String,\n default: '0 0 24 24'\n },\n tabIndex: Number\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n name = _a.name,\n icon = _a.icon,\n themeColor = _a.themeColor,\n size = _a.size,\n flip = _a.flip,\n id = _a.id,\n viewBox = _a.viewBox,\n tabIndex = _a.tabIndex,\n title = _a.title,\n ariaLabel = _a.ariaLabel;\n var svg = name && this.kendoIcons && this.kendoIcons.icons && this.kendoIcons.icons[name] || icon;\n var renderSVG = this.kendoIcons && this.kendoIcons.type === 'svg' && svg !== undefined;\n var newSize = this.kendoIcons && this.kendoIcons.size ? this.kendoIcons.size : size;\n var newFlip = this.kendoIcons && this.kendoIcons.flip ? this.kendoIcons.flip : flip;\n var resolvedName = name || (icon && icon.name ? icon.name : undefined);\n var commonProps = {\n themeColor: themeColor,\n size: newSize,\n flip: newFlip,\n id: id,\n tabIndex: tabIndex,\n title: title,\n ariaLabel: ariaLabel\n };\n var fontIcon = h(FontIcon, __assign(__assign({}, commonProps), {\n name: resolvedName,\n attrs: this.v3 ? undefined : __assign(__assign({}, commonProps), {\n name: resolvedName\n }),\n onClick: this.handleClick,\n on: this.v3 ? undefined : {\n 'click': this.handleClick\n }\n }));\n var svgIcon = h(SvgIcon, __assign(__assign({}, commonProps), {\n icon: svg,\n viewBox: viewBox,\n name: resolvedName,\n attrs: this.v3 ? undefined : __assign(__assign({}, commonProps), {\n icon: svg,\n viewBox: viewBox,\n name: resolvedName\n }),\n onClick: this.handleClick,\n on: this.v3 ? undefined : {\n 'click': this.handleClick\n }\n }));\n return renderSVG ? svgIcon : fontIcon;\n },\n methods: {\n handleClick: function handleClick(e) {\n this.$emit('click', e);\n }\n }\n};\n/**\n * @hidden\n */\nvar Icon = IconVue2;\nexport { Icon, IconVue2 };","import * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\n// @ts-ignore\nvar licenseKeyUrl = 'https://www.telerik.com/kendo-vue-ui/components/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-banner';\nvar banners = new Array();\nvar WatermarkOverlayVue2 = {\n name: 'KendoWatermarkOverlay',\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n mounted: function mounted() {\n this.bannerWrapper = this.$refs.banner;\n banners.push(this.bannerWrapper);\n if (document && document.body) {\n document.body.append(this.bannerWrapper);\n }\n if (banners.length > 1) {\n for (var i = 1; i < banners.length; i++) {\n var bannerElement = banners[i];\n bannerElement.remove();\n }\n }\n },\n beforeDestroy: !!isV3 ? undefined : function () {\n this.bannerWrapper.remove();\n banners = [];\n },\n beforeUnmount: function beforeUnmount() {\n this.bannerWrapper.remove();\n banners = [];\n },\n data: function data() {\n return {\n watermarkStyles: {\n position: 'absolute',\n width: '100%',\n height: '100%',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n opacity: 0.2,\n 'z-index': 101,\n 'pointer-events': 'none',\n 'background-image': 'url(\\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAABVxSURBVHgB7Z3tVRtJE4WL9zgANgLLGRCCnAGOADmCxRGgDFAGYiOADKQMIAGO9J8ji42g37mjqlUjBgOanpn+uM85sjC2sKzbVd1dVV0tQgghhBBCCCGEEEIIKRPn3Gn1GAlJmmN1pP558J6OX9540ejh4WGlX09OTk7+EZIclXYXlY43+vVflY7PH3wd9c+AY/Wvvcb9/b0bjUYOz/hBQpICmh1oOPrEa6l/4rTR337AhIMgTSqtzg+0m8gnof7p0mD8EzmGhkFwJiR6np6e7luLL9Q/RTDTBzF+7wfWg2CxWOCHjYVET6XTdLPZrFuLL9Q/NeCkoVUQ4/d+6Ijev1yof1rAUVMvQgjJHebrSRu+CEmWo/O8hISgCjStKpgiGoDWed4AUP/hwGf++Pi4hQYyFHgDzBP3T7A8b0uo/zD4+sMBy1CwWKR/YjF+fS/Uv2di0t/eEAdBT0QnvlD/PolR/xoOgu4JUd7bFdS/e6I1foODoFuqz3M2mUziFF+of5dEb/xGwyAYCwmCVuPNYv5MqX94Yl75NWKD4PLyEm92KqQoqH9Y8Bnis0zC+A14LbxxVqiVCfUPh678plxNFYQe5pjRgAgpDAv4IOAHJyCEkDJoiPaeCyG5UA1oRIYWHNivSSbV0wLq/zbQXz+bS8kV/AeZJ35NCcYPqH8zvv4VS8kVFou8phTjB9T/NcVt+zgI9rjQDRwTgPrvKcn5v4CDYIfT/vtFiS/UHxRr/AYHwQ4t9DiVwihZ/+KN36ATKJsS9U+utr9r/EGQdQSUNFKa/geZkImQ/2rHlznnQDG7oX9b9Xwl5AUl6G9oLcSSxl8Q/p4P13YJIaQMisvzEkJ2lJjnJyQY3lnoJGfNUvP8oUhZf7c70s2eCG1wL7uhRJ0iQnCveiDIhzf7t/f9IvP8IUhJfx/b9rErUkvgRVPIE1fv6xrvbzweu7OzM3d7e4v3OhfSilT092HMJzCxF4u43eWctfFvt1uHu9nxXvF1CWmtroldfx9W+HVErINAjX+M65ngAPxnOAJ1AiMhrUjBCdD4Oya2QYBlPwx8vV47WwFg+a+XZbrz83NzANz/ByBmJ0Dj74lYBgECfrbnt6U/DB/vC7388L2rqyu8vzshwYjRCdD4e8YfBLidVgYA0X7M9jB8PGazmbu5ualnfiz9dSAsufwPTwz6+5jjp/H3CD5ofPB9343u9v3u6+U+0jyY7eEA8Hx3d4c/QjvvMyGdMZT+TeA9wBHR+DPHUn3T6bRe7uMxn89tn18v/TH7O17gQEheYM9vEX7M9hbsg/FbHED3/IPPSISQgNhyE0au+7x7PPtOQFcB3PMTMjTYf4cyRN3zL2DgMHgs/7XU99acgDIWEgUh9W/4uWMh8QKBvCh8qxSR7fmxt0eEv8kJ6MzP8/2REFL/g59bp/o0xsMAb6xAnBB5Yr+6D3X9KOpBxP/ACWA0jFnoEw+h9D/4mYd5/pGQeAlRLFK95tJy+35578PDQ+0E9LAPi3wixAUsFmKRT6I0DIIPzdJuf6R3i+UeZnsz/nqjPx47/fMpZ/54OVb/g5/BZi4pY4Pgo8s2d3CkF0Z/cXFRL/+Xy2W9BdBUH4/5JsBn9W94PZu5pI77QzMOjepiNp/j71hO//fv31sr7qmtfT73i3xWjnvAZHhH/4nquXrLwB2bueSJ27Vmvodhq4df4BmzvQb3IPxWl/zgRl/DwZA4GrhdYFUHfbHE1y0enXsJ2FLfCnggvjqBejDoTI8o38ocgJAscNq8BY4fv/Uf+J46gjkdQcbA+19fXzs7zQfR8TWcgH+kFw/u+fMDKz/o3OQETk9PLcWLPSBbeeWELd91eb+CcTc5gXr6r9J8PNKbF/7S3z+6DYcvDasBOv6M0GUduNDfv+cEYPhjIVmA+I3Vc4gaOQzfHAECvb4joAPICCzlrIJP93h/dAIYDBQ/L8wBNC37rXUblv5CB5AfGvi5h6F7Ed9GJ2CZP0b780O1vreVnnhOAFsBOoCMscg/HMBbTsCO+grJFkvvHmYCSnYA/5MMcbsiH6TykNgfr9fry58/f0oltFxcXMj379+l+h42gBcnJyfr6iXfq1nhJ56FZIeuAq+fn59Xv379Oq0CgVJNBEIydAAavLv98ePHeSX4bfX1OQSv9noQ/a7y9A8HTuAcTqB63FSPZyE5Mq3GwOW3b99kNpu9+5e/fv2Kp3+FpAW8vB3cwbLOOvZYfl9LfGdW9KOn+mZCskZXhCuL9vtLfjvshd97hWArpn8TxGn5rhZzOL/gB19DYBzzxcEeTQEtGfArB7c7xbmyVu4YExoTuNcYEL6eCkkTxHYOmna4wzQfvq8z/+o949e940hIkjTp5/ZXjm/1+VQfr856UP/EcLtqr9s/OQENDl5+wPhH3nHQZK6mJjucNvNo2w+A+icC0jaY4a2LT5MT+Mye3+l58JSupiY7XIA2XtQ/IZw2f7D9v+X6D53AZ/f8LqGrqckOF7CNF/VPAF3Or6xvv53r951Amx5+DYOAXWEjxXXQxov6R4zTSzusht8OfABE+r3U39y1iPbbIODVX3ED4/Tagk8kENQ/QiyaC1Fg7PX6frm0Mk6/wUOQ8l799+j9I0cDwcF1ov4R4Xbde2vjxi92ogsPzPrY92szD7buJiQn3K6+v17q2yxvlV1u3+TRAn4jIYTkAfbymOWx1AcwfHMEXp5/JISQ9PEDd867ohvGbvt+cwRe6+5ee7ltNpuVf7yYdA8+68fHxy0+exkY6t8RGnSxJX19yAd7fWvhjEs7NOCHb2D9/+AGqO3HQGSeuD/8PD/GggwM9e8IBPCwr7ciHnzA6NrqtW5+4QRkIByLRXrDRXhXH/XvCKRccEuPX8mHD9jr7Vc7AV32D9rJh4Oge2I0foP6d8QHnADO9kdxYw8HQXfEbPwG9e+It5yAlvdG1beNgyA8KRi/Qf07oskJIEYQw8x/SMMgGAs5CmR0UjF+g/oHwh00YzAn0OZgT1/YINBU5VTIUeCzw2eYivEb1L8l7o1mDm7X220a48x/iNtVLE4dC5OOxu2794wlMaj/kbgAzRwIIQmS4p6PEBKIp6enexo/IYWCPdNms1nnbPxat7BwvH/+P7Dt08/kUjKH+hcOxGeeeI8f86lYSuZQ/8JhsciehoBv9rMi9VdcwZcucBCkVeEXmuL1dy0vbciBkgdBycZvFKs/8/x7ShwENP49xelP8V9T0iBgncdritGfxv82/iDIORJ+EAGfCKnJXn8a//to7fgy51y45sCX1P812erPZR8hBVMZ/Ax9+2j8hBSIHumcpXikkxBCBsXtz8QnUyXndvfz8Sx8AFLUnwTEveyKE32KyAK+7IYThqT0V88/o+cPBz7TVPLEJdb2d00y+pv4elHHTEgwUigWYaq3O6LXn56/e2IeBDT+7olWf4rfHzEOAurfH9HpT/H7J6ZBQP37Jxr9Kf5w+IMAt9PKQOB6NurfP4Prjyg/jX9Y8JnDAHE/vQwE/m0MQOrfP4PqX/3jp15Dj4kQQspCK5SK7OZDCCGEEBIfbneH4kgCoT9vLCQJguqPaD8CDdXzlZDogaEuFotgKSLL9uBnYmAJiZqg+vupPlzbJSR6YKSh8sSODVyTI5j+LO9NlxDFIqzzSJfW+jPPnz4Ng+DDGRvqnz5t9GeePxNsEHx2+U798+BY/e3FzPNnwLE6Uv88oI6EEEIIIYQQQgghhBBCCCGEEEIIIYQQQkiRoHyQxz/T51gdqX8evKfjlzdeNHp4eFjp15OTk5N/hCQHjoFWOt7o139VOj5/8HXUPwOO1f+/02ApXEhJmmnTzIP6p49r28wlRFMJMgwhmnlQ/3RB854g/RwaBgF7wkVOyGYe1D9N0L4vWDMXGwTaFHIsJGpgpF5TyIm0hPqnR6XTdLPZrF2oZi7aVIDePxFgqCH1ov6EEEIIITHRtl7jixBCkuToPH8ocGMQrihmiqh/8Jnjau6hrwen/sPQOs8fAgxA5on7xxcfBigDQf2HIUSdR6g3wmKRnolGfKH+QxCT/vaGOAh6Ijrxhfr3SYz613AQdE+04gv174Ng5b1dwUHQHTEbv0H9u6X6PGeTySTu69oaBsFYSCui9/we1L87tBpzFv1naoPg8vISA2AqpBX4DPFZxm78BvUn9awF8R07yrRGPf80pdmU+hNCyJHoYa4ZHSghhWEBXwT84ASEEFIGDdmec8mJ6j+EyNAiu/9YACC+fjaXkinU/21SSPW2BuIzT/waX/yKpWQK9W+mCOMHLBZ5TfbLPg/q/5pijN/gINhTnPhC/X1cwAauScFBUKbxG9R/h9P7F0rTv6bkQVCy8Rt0Aju00OtUSqTEQZBSbX/X0AmQF4Mg5wi4cRAJn0jhlKY/aUBrx5c558ANzYUvafx7StAfqxv0UKyer4QQUg5+zAfXdgkhpAxKqvMghHgUm+cPhdufhU/Oa+qRTp6Jb0HK+oOi8/whcC+74SSTIrJlH7vitCMl/RHcqx4I8uHN/u19v9w8f1swi6aWJ+aeLxyp6F+9r2u8v/F47M7Oztzt7S3e61xIe1IqFmGFX3hi19/tLuesjX+73brFYlG/V3xdQlq7F1JwAjT+7ohVfzX+Ma5ngwPwn+EI1AmMhLQnZidA4++e2PTHsh8Gvl6vna0AsPzXy1Ld+fm5OQDu/0MRoxOg8fdHLPoj4Gd7flv6w/DxvtDLD9+7urrC+7sTEhZ/EOB2WhkYE57G3w8x6I9oP2Z7GD4es9nM3dzc1DM/lv46FpZc/ncEBgEMD7XVMjB4DxiINP7+GEp/t7/voF7uI0WJ2R4OAM93d3f4I7TzPhNCSD5Yqm86ndbLfTzm87nt8+ulP2Z/x+vQCMkL7Pktwo/Z3oJ9MH6LA+ief/AVKSEkILbdgJHr3v4ez74T0FUA9/wxgP1XF0Lozx0LiZqQ+uuefwEDh8Fj+a+lvrfmBJSxkOGBEF4UNliKyFJ9usdjgCdSQupve37s7RHhb3ICOvPzfH8swDhD54kb8vwjIVESSn+/ug91/SjqQcT/wAlgNhiz0CcyQhaLsMgnPULoX73m0nL7fnnvw8ND7QT0sA+LfGKlYRB82ks7NnNIlmP1d/sjvVtsJTDbm/HXG/3x2OmfTznzR44NgmOX7Y7NHJLms/q7gyO9MPqLi4t6+b9cLustgKb6eMw3FdwfmjFggKg3X71l4I7NHJLmHf3PVPs5/o7l9H///r214p7a2udzv8hn5RgDShsN3Czg1SE4lom6xKO4heB2rdnvYdi6QljgGbO9BvfgOLa65Ac3+hpOBinjtHkDhMdv/Qe+p45gTkeQL7bUtwIeaK5OoJ4MdKZHlG9lDkBIPsDzQ/QmJ3B6emopHqwB2corQzDDX19fOzvNh7GAr+EE/CO9eHDPnxH+0t8/ugnBpWE1QOHzwpbvurxfwbibnEA9/VdpPh7pzQjs3yyfK2rkMHxzBAj0+I6ADiAvdFsHLvT37zkBGP5YSB6YA2ha9lvrJiz9hQ4gO7CVswo+jfH80QlgMqD2GaKC35unF88JYCtAB5AnGvi9h6F7GZ9GJ2CZP0b7M8XSO4eZADqAvLHIPxzAW07AjvpKYfxPCkBngevn5+fVr1+/TqtAoFQDQUieuF2RD1J5SOyP1+v15c+fP6Vy9HJxcSHfv3+X6nsIAF2cnJysq5d8r1YAP/EshVGEA6iYVkZ/+e3bN5nNZu/+5a9fv+LpXyHJocG72x8/fpxXDv+2+vocDr+K9cDp31UrvYcDJ3AOJ1A9bqrHs5D80BlhZdF+f8lvhz3we68QZMX0T3pglWcHd6Cjdeyx/L6W+M6s6EdP9c2ElIHbneJaWStnFIRoTOBe94D4eiokSZyW72oxl/MLfvA1jB6642CPpoCXDPhljO79RwffG6kj2OrzqT5e1Xo3vZ7EC2K7B0073GGaD9/XmX/1nvFT/4Rx2syjbT+AIW+gIZ/D7ao9b//kBDQ4ePkB46f+qeICtPFy2g8gpavJSwZpW8zw1sWnyQl8Zs9P/RPFBWzj5RK6mrxkTCfb/1uu/9AJfHbPT/0Tw3XQxqthELArcETocn5lffvtXL/vBNr08KP+CQFxvLbQEwmEDQJe/RQXTi/tsBp+O/AFEOn3Un9z1yLaT/0TQgNBwb20Zg/o/SPBsjkwShh7vb5fLq2M22/wEqS8V/+9sRBChsXtuvfWxo1f7EQnHpj1se/XZh5s3U1ITrhdfX+91LdZ3io73b7JqwX8RkIIyQPs5THLY6kPYPjmCLw8/0hI3iAd8/j4uN1sNisZGLwH/3gpCYcfuHPeFd0wdtv3myPwWnf32suR+veMn+fHBy8DA0fEPHF4NOhmS/r6kA/2+tbCHZd2aMAP38D6/8ENUNtP/XvERXhXn2OxSCcggId9vRXx4LNF12avdfsLJyADQf17IkbjNzgIwoOUK27p8Sv58Nl6vf1qJ6DL/kE7+VD/jonZ+A0OgvB8wAngbH8UN/ZQ/45IwfgNDoLwvOUEtLw3qr6N1D8wiOimYvxGwyAYC2lFkxNAjCCGmf8Q6h8QRHeR7knF+A0bBJqqmgr5NO6gGYc5gTYHe/qC+gfC7bv3jCUx3K5ibepYmPJp3BvNXNyut+M0xpn/EOpPyBG4AM1cCCEJkmLMhxASiKenp3saf4Fg2Vc9FsjpSuZo3hr/115r1lMAe+bNZrPO2fip/wH+nq9iKZkD8ZknLhfq79EQ8MneK7JYpGyov5JShV9oOAjKvnSjeP1LNn6j5EHgWl7akgPF6k/j31PiIGCef09x+jPP+5qSBgGd/2uKcgIHEdCJkBp/EOSaCaHxv00J+tdoDnRJ8V+jtePLHGshaPzvk7P+pGC47SOkYCqDn6FvH42fkAJxuyPdaN01FlIGbnc/37TkFE8o3L4nAmvHCyQ5/S3gw24oYXAvuyKxbLgwktK/xNr+rsFqKpU8sa78Zlz5hSMZ/Znq6Y4UikVMf72oYyYkGNHrT+PvnpgHAVd+3ROt/jT+/ohxEFD//ohOf4rfPzENAurfP1E5AVzPRPH7xx8EuJ1WBoDGPxyH+ruhjlTjbnR9AxMhvYLPHA4YGkjPIMpP4x+WIfUnhYMZx2voMRFCSFlohVqR3XwIIaQc3O5OtrGQJFC9RkKKRCsyRxICi/YuFgvs986ERA3Eh1ahUkT4GQg0Vc9XQqInqP6ODRyTA046VJ7Y1x/XdgmJnmD6M8+bLiGKRVjemy6t9WeeN30aBsGHI/bUP33a6M88bybYIPjs9o3658Gx+tuLmefNgGN1pP55QB0JIYQQQgghhBBCCJGy+T9ftRg+rVNPfAAAAABJRU5ErkJggg==\\')'\n },\n bannerStyles: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n position: 'fixed',\n top: '16px',\n right: '16px',\n padding: '12px',\n 'border-radius': '4px',\n 'box-shadow': '0px 4px 5px 0px rgba(0, 0, 0, 0.04), 0px 2px 4px 0px rgba(0, 0, 0, 0.03)',\n 'font-size': '14px',\n 'font-weight': 400,\n 'line-height': '20px',\n 'background-color': '#FFC000',\n color: '#1E1E1E',\n 'z-index': 999999\n },\n bannerButtonStyles: {\n display: 'inline-flex',\n position: 'relative',\n border: 'none',\n 'border-radius': '4px',\n padding: '5px',\n 'background-color': 'transparent',\n transition: 'color 0.2s ease-in-out',\n outline: 'none',\n cursor: 'pointer'\n },\n showBanner: true\n };\n },\n methods: {\n onCloseBannerClick: function onCloseBannerClick() {\n this.showBanner = false;\n banners = [];\n }\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var bannerElement = this.showBanner && h(\"div\", {\n style: this.bannerStyles,\n ref: 'banner'\n }, [h(\"span\", {\n style: {\n display: 'flex',\n alignSelf: 'center',\n marginRight: '8px'\n }\n }, [h(\"svg\", {\n width: \"16\",\n attrs: this.v3 ? undefined : {\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 16 16\",\n fill: \"none\"\n },\n height: \"16\",\n viewBox: \"0 0 16 16\",\n fill: \"none\"\n }, [h(\"path\", {\n \"fill-rule\": \"evenodd\",\n attrs: this.v3 ? undefined : {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M8 1L0 15H16L8 1ZM7 6V11H9V6H7ZM7 14V12H9V14H7Z\",\n fill: \"#1E1E1E\"\n },\n \"clip-rule\": \"evenodd\",\n d: \"M8 1L0 15H16L8 1ZM7 6V11H9V6H7ZM7 14V12H9V14H7Z\",\n fill: \"#1E1E1E\"\n })])]), h(\"span\", [\"No valid license found for Kendo UI for Vue. Learn how to activate your license.\"]), h(\"div\", {\n style: {\n display: 'flex',\n alignItems: 'center',\n marginLeft: '24px'\n }\n }, [h(\"a\", {\n href: licenseKeyUrl,\n attrs: this.v3 ? undefined : {\n href: licenseKeyUrl\n },\n style: {\n marginRight: '8px',\n display: 'flex'\n }\n }, [h(\"button\", {\n title: \"Learn More\",\n attrs: this.v3 ? undefined : {\n title: \"Learn More\"\n },\n style: this.bannerButtonStyles\n }, [h(\"svg\", {\n width: \"16\",\n attrs: this.v3 ? undefined : {\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 16 16\",\n fill: \"none\"\n },\n height: \"16\",\n viewBox: \"0 0 16 16\",\n fill: \"none\"\n }, [h(\"path\", {\n d: \"M15 8C15 11.8656 11.8656 15 8 15C4.13437 15 1 11.8656 1 8C1 4.13437 4.13437 1 8 1C11.8656 1 15 4.13437 15 8ZM14 8C14 4.6875 11.3125 2 8 2C4.6875 2 2 4.6875 2 8C2 11.3125 4.6875 14 8 14C11.3125 14 14 11.3125 14 8ZM11 6C11 7.4125 10.2687 8.05937 9.73125 8.53125C9.25937 8.94688 9 9.17813 9 10H7C7 8.275 7.84688 7.525 8.40938 7.03125C8.84062 6.65312 9 6.50938 9 6C9 5.45 8.55 5 8 5C7.45 5 7 5.45 7 6H5C5 4.34375 6.34375 3 8 3C9.65625 3 11 4.34375 11 6ZM9 13V11H7V13H9Z\",\n attrs: this.v3 ? undefined : {\n d: \"M15 8C15 11.8656 11.8656 15 8 15C4.13437 15 1 11.8656 1 8C1 4.13437 4.13437 1 8 1C11.8656 1 15 4.13437 15 8ZM14 8C14 4.6875 11.3125 2 8 2C4.6875 2 2 4.6875 2 8C2 11.3125 4.6875 14 8 14C11.3125 14 14 11.3125 14 8ZM11 6C11 7.4125 10.2687 8.05937 9.73125 8.53125C9.25937 8.94688 9 9.17813 9 10H7C7 8.275 7.84688 7.525 8.40938 7.03125C8.84062 6.65312 9 6.50938 9 6C9 5.45 8.55 5 8 5C7.45 5 7 5.45 7 6H5C5 4.34375 6.34375 3 8 3C9.65625 3 11 4.34375 11 6ZM9 13V11H7V13H9Z\",\n fill: \"#1E1E1E\"\n },\n fill: \"#1E1E1E\"\n })])])]), h(\"button\", {\n title: \"Close\",\n attrs: this.v3 ? undefined : {\n title: \"Close\"\n },\n style: this.bannerButtonStyles,\n onClick: this.onCloseBannerClick,\n on: this.v3 ? undefined : {\n \"click\": this.onCloseBannerClick\n }\n }, [h(\"svg\", {\n width: \"16\",\n attrs: this.v3 ? undefined : {\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 16 16\",\n fill: \"none\"\n },\n height: \"16\",\n viewBox: \"0 0 16 16\",\n fill: \"none\"\n }, [h(\"path\", {\n d: \"M13 4.41562L9.41563 8L13 11.5844L11.5844 13L8 9.41563L4.41562 13L3 11.5844L6.58437 8L3 4.41562L4.41562 3L8 6.58437L11.5844 3L13 4.41562Z\",\n attrs: this.v3 ? undefined : {\n d: \"M13 4.41562L9.41563 8L13 11.5844L11.5844 13L8 9.41563L4.41562 13L3 11.5844L6.58437 8L3 4.41562L4.41562 3L8 6.58437L11.5844 3L13 4.41562Z\",\n fill: \"#1E1E1E\"\n },\n fill: \"#1E1E1E\"\n })])])])]);\n return h(\"div\", {\n style: this.watermarkStyles\n }, [bannerElement]);\n }\n};\n/**\n * @hidden\n */\nvar WatermarkOverlay = WatermarkOverlayVue2;\nexport { WatermarkOverlay, WatermarkOverlayVue2 };","/**\n * @hidden\n */\nexport var FOCUSABLE_ELEMENTS = [\n 'input:not([disabled]):not([type=hidden])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'button:not([disabled])',\n 'a[href]',\n 'area[href]',\n 'summary',\n 'iframe',\n 'object',\n 'embed',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]'\n];\n/**\n * @hidden\n */\nvar Navigation = /** @class */ (function () {\n function Navigation(options) {\n var _this = this;\n this.rovingTabIndex = true;\n this.update = function () { };\n this.focusNextIndex = function (target, indexDiff) {\n var all = _this.elements;\n var index = all.indexOf(target) + indexDiff;\n index = index < 0 ? all.length - 1 : index;\n _this.focusElement(all[index % all.length], target);\n };\n this.tabIndex = options.tabIndex || 0;\n this.root = options.root;\n this.selectors = options.selectors;\n this.rovingTabIndex = options.rovingTabIndex !== undefined ? options.rovingTabIndex : true;\n this.mouseEvents = options.mouseEvents || {};\n this.keyboardEvents = options.keyboardEvents || {};\n }\n Object.defineProperty(Navigation.prototype, \"elements\", {\n get: function () {\n return this.root ? Array.from(this.root.querySelectorAll(this.selectors.join(','))) : [];\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Navigation.prototype, \"first\", {\n get: function () {\n return (this.root && this.root.querySelector(this.selectors.join(','))) || null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Navigation.prototype, \"last\", {\n get: function () {\n var all = this.elements;\n return all[all.length - 1] || null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Navigation.prototype, \"current\", {\n get: function () {\n return this.elements.find(function (el) { return el.matches(':focus'); }) || null;\n },\n enumerable: false,\n configurable: true\n });\n Navigation.prototype.focusNext = function (target) {\n this.focusNextIndex(target, 1);\n };\n Navigation.prototype.focusPrevious = function (target) {\n this.focusNextIndex(target, -1);\n };\n Navigation.prototype.triggerKeyboardEvent = function (ev) {\n var target = ev.target instanceof Element && ev.target.closest(this.selectors.join(','));\n var key = ev.key === ' ' ? 'Space' : ev.key;\n var eventType = ev.type;\n if (target && this.keyboardEvents[eventType][key]) {\n this.keyboardEvents[eventType][key].call(undefined, target, this, ev);\n }\n };\n Navigation.prototype.triggerMouseEvent = function (ev) {\n var target = ev.target instanceof Element && ev.target.closest(this.selectors.join(','));\n var eventType = ev.type;\n if (target) {\n this.mouseEvents[eventType].call(undefined, target, this, ev);\n }\n };\n Navigation.prototype.focusElement = function (element, previous) {\n if (element) {\n if (previous) {\n if (this.rovingTabIndex) {\n previous.removeAttribute('tabindex');\n }\n previous.classList.remove('k-focus');\n }\n if (this.rovingTabIndex) {\n element.setAttribute('tabindex', String(this.tabIndex));\n }\n element.focus({ preventScroll: true });\n }\n };\n return Navigation;\n}());\nexport { Navigation };\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-vue-indicators',\n productName: 'Kendo UI for Vue',\n productCodes: ['KENDOUIVUE', 'KENDOUICOMPLETE'],\n publishDate: 1700038649,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning'\n};\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { getDefaultSlots, getDir, kendoThemeMaps } from '@progress/kendo-vue-common';\nimport { validatePackage } from '@progress/kendo-vue-common';\nimport { packageMetadata } from '../package-metadata';\n/**\n * @hidden\n */\nvar BadgeVue2 = {\n name: 'KendoBadge',\n props: {\n dir: String,\n align: {\n type: Object,\n default: function _default() {\n return {\n vertical: 'top',\n horizontal: 'end'\n };\n }\n },\n size: {\n type: String,\n default: 'medium',\n validator: function validator(value) {\n return ['small', 'medium', 'large'].includes(value);\n }\n },\n fillMode: {\n type: String,\n default: 'solid',\n validator: function validator(value) {\n return ['solid', 'outline'].includes(value);\n }\n },\n themeColor: {\n type: String,\n default: 'primary',\n validator: function validator(value) {\n return ['primary', 'secondary', 'tertiary', 'info', 'success', 'warning', 'error', 'dark', 'light', 'inverse'].includes(value);\n }\n },\n rounded: {\n type: String,\n default: 'medium',\n validator: function validator(value) {\n return [null, 'small', 'medium', 'large', 'full'].includes(value);\n }\n },\n position: {\n type: String,\n default: 'edge',\n validator: function validator(value) {\n return ['edge', 'outside', 'inside'].includes(value);\n }\n },\n cutoutBorder: Boolean\n },\n created: function created() {\n validatePackage(packageMetadata);\n this.currentDir = undefined;\n },\n mounted: function mounted() {\n this.currentDir = getDir(this.$el, this.$props.dir);\n },\n computed: {\n badgeClasses: function badgeClasses() {\n var _a;\n var _b = this.$props,\n size = _b.size,\n fillMode = _b.fillMode,\n cutoutBorder = _b.cutoutBorder,\n position = _b.position,\n align = _b.align,\n themeColor = _b.themeColor,\n rounded = _b.rounded;\n return _a = {\n 'k-badge': true,\n 'k-badge-sm': size === 'small',\n 'k-badge-md': size === 'medium',\n 'k-badge-lg': size === 'large'\n }, _a[\"k-badge-\".concat(fillMode)] = fillMode, _a[\"k-badge-\".concat(fillMode, \"-\").concat(themeColor)] = Boolean(fillMode && themeColor), _a[\"k-rounded-\".concat(kendoThemeMaps.roundedMap[rounded] || rounded)] = rounded, _a['k-badge-border-cutout'] = cutoutBorder, _a[\"k-badge-\".concat(position)] = position, _a['k-top-start'] = align.vertical === 'top' && align.horizontal === 'start', _a['k-top-end'] = align.vertical === 'top' && align.horizontal === 'end', _a['k-bottom-start'] = align.vertical === 'bottom' && align.horizontal === 'start', _a['k-bottom-end'] = align.vertical === 'bottom' && align.horizontal === 'end', _a;\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n return h(\"span\", {\n \"class\": this.badgeClasses,\n dir: this.currentDir,\n attrs: this.v3 ? undefined : {\n dir: this.currentDir\n }\n }, [defaultSlot]);\n },\n methods: {\n focusElement: function focusElement() {\n if (this.$el) {\n this.$el.focus();\n }\n }\n }\n};\n/**\n * Represents the [Kendo UI for Vue Badge component]({% slug api_indicators_badgeprops %}).\n *\n * @example\n * ```jsx\n * 99+\n * ```\n */\nvar Badge = BadgeVue2;\nexport { Badge, BadgeVue2 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { getDefaultSlots, getDir, getListeners, getTemplate, kendoThemeMaps, templateRendering } from '@progress/kendo-vue-common';\nimport { validatePackage } from '@progress/kendo-vue-common';\nimport { packageMetadata } from '../package-metadata';\n/**\n * @hidden\n */\nvar BadgeContainerVue2 = {\n name: 'KendoBadgeContainer',\n props: {\n dir: String,\n align: {\n type: Object,\n default: function _default() {\n return {\n vertical: 'top',\n horizontal: 'end'\n };\n }\n },\n size: {\n type: String,\n default: 'medium',\n validator: function validator(value) {\n return ['small', 'medium', 'large'].includes(value);\n }\n },\n fillMode: {\n type: String,\n default: 'solid',\n validator: function validator(value) {\n return ['solid', 'outline'].includes(value);\n }\n },\n themeColor: {\n type: String,\n default: 'primary',\n validator: function validator(value) {\n return ['primary', 'secondary', 'tertiary', 'info', 'success', 'warning', 'error', 'dark', 'light', 'inverse'].includes(value);\n }\n },\n rounded: {\n type: String,\n default: 'medium',\n validator: function validator(value) {\n return [null, 'small', 'medium', 'large', 'full'].includes(value);\n }\n },\n position: {\n type: String,\n default: 'edge',\n validator: function validator(value) {\n return ['edge', 'outside', 'inside'].includes(value);\n }\n },\n cutoutBorder: Boolean,\n content: [String, Function, Object]\n },\n created: function created() {\n validatePackage(packageMetadata);\n this.currentDir = undefined;\n },\n mounted: function mounted() {\n this.currentDir = getDir(this.$el, this.$props.dir);\n },\n computed: {\n badgeContainerClasses: function badgeContainerClasses() {\n return {\n 'k-badge-container': true\n };\n },\n badgeClasses: function badgeClasses() {\n var _a;\n var _b = this.$props,\n size = _b.size,\n fillMode = _b.fillMode,\n cutoutBorder = _b.cutoutBorder,\n position = _b.position,\n align = _b.align,\n themeColor = _b.themeColor,\n rounded = _b.rounded;\n return _a = {\n 'k-badge': true,\n 'k-badge-sm': size === 'small',\n 'k-badge-md': size === 'medium',\n 'k-badge-lg': size === 'large'\n }, _a[\"k-badge-\".concat(fillMode)] = fillMode, _a[\"k-badge-\".concat(fillMode, \"-\").concat(themeColor)] = Boolean(fillMode && themeColor), _a[\"k-rounded-\".concat(kendoThemeMaps.roundedMap[rounded] || rounded)] = rounded, _a['k-badge-border-cutout'] = cutoutBorder, _a[\"k-badge-\".concat(position)] = position, _a['k-top-start'] = align.vertical === 'top' && align.horizontal === 'start', _a['k-top-end'] = align.vertical === 'top' && align.horizontal === 'end', _a['k-bottom-start'] = align.vertical === 'bottom' && align.horizontal === 'start', _a['k-bottom-end'] = align.vertical === 'bottom' && align.horizontal === 'end', _a;\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n var content = templateRendering.call(this, this.content, getListeners.call(this));\n var contentElement = getTemplate.call(this, {\n h: h,\n template: content,\n additionalProps: this.$props\n });\n return h(\"span\", {\n \"class\": this.badgeContainerClasses,\n style: {\n display: 'inline-block'\n },\n dir: this.currentDir,\n attrs: this.v3 ? undefined : {\n dir: this.currentDir\n }\n }, [defaultSlot, h(\"span\", {\n \"class\": this.badgeClasses,\n dir: this.currentDir,\n attrs: this.v3 ? undefined : {\n dir: this.currentDir\n }\n }, [contentElement])]);\n },\n methods: {\n focusElement: function focusElement() {\n if (this.$el) {\n this.$el.focus();\n }\n }\n }\n};\n/**\n * Represents the [Kendo UI for Vue BadgeContainer component]({% slug api_indicators_badgeprops %}).\n *\n * @example\n * ```jsx\n * 99+\n * ```\n */\nvar BadgeContainer = BadgeContainerVue2;\nexport { BadgeContainer, BadgeContainerVue2 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { validatePackage } from '@progress/kendo-vue-common';\nimport { packageMetadata } from '../package-metadata';\nvar SEGMENT_COUNT = {\n 'pulsing': 2,\n 'infinite-spinner': 3,\n 'converging-spinner': 4\n};\nvar TYPE_CLASSES = {\n 'pulsing': 'k-loader-pulsing-2',\n 'infinite-spinner': 'k-loader-spinner-3',\n 'converging-spinner': 'k-loader-spinner-4'\n};\n/**\n * @hidden\n */\nvar LoaderVue2 = {\n name: 'KendoLoader',\n props: {\n type: {\n type: String,\n default: 'pulsing',\n validator: function validator(value) {\n return ['pulsing', 'infinite-spinner', 'converging-spinner'].includes(value);\n }\n },\n size: {\n type: String,\n default: 'medium',\n validator: function validator(value) {\n return ['small', 'medium', 'large'].includes(value);\n }\n },\n themeColor: {\n type: String,\n default: 'primary',\n validator: function validator(value) {\n return ['primary', 'secondary', 'tertiary', 'info', 'success', 'warning', 'error', 'dark', 'light', 'inverse'].includes(value);\n }\n }\n },\n created: function created() {\n validatePackage(packageMetadata);\n },\n computed: {\n loaderClasses: function loaderClasses() {\n var _a = this.$props,\n type = _a.type,\n size = _a.size,\n themeColor = _a.themeColor;\n return {\n 'k-loader': true,\n 'k-loader-sm': size === 'small',\n 'k-loader-md': size === 'medium',\n 'k-loader-lg': size === 'large',\n 'k-loader-primary': themeColor === 'primary',\n 'k-loader-secondary': themeColor === 'secondary',\n 'k-loader-tertiary': themeColor === 'tertiary',\n 'k-loader-info': themeColor === 'info',\n 'k-loader-success': themeColor === 'success',\n 'k-loader-warning': themeColor === 'warning',\n 'k-loader-error': themeColor === 'error',\n 'k-loader-dark': themeColor === 'dark',\n 'k-loader-light': themeColor === 'light',\n 'k-loader-inverse': themeColor === 'inverse',\n 'k-loader-pulsing-2': type === 'pulsing',\n 'k-loader-spinner-3': type === 'infinite-spinner',\n 'k-loader-spinner-4': type === 'converging-spinner'\n };\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var type = this.$props.type;\n var spans = new Array(SEGMENT_COUNT[type]);\n spans.fill(0, 0, SEGMENT_COUNT[type]);\n return h(\"div\", {\n \"class\": this.loaderClasses\n }, [h(\"div\", {\n \"class\": \"k-loader-canvas\"\n }, [spans.map(function (_, i) {\n return h(\"span\", {\n key: i,\n \"class\": \"k-loader-segment\"\n });\n }, this)])]);\n },\n methods: {\n focus: function focus(e) {\n if (this.$el) {\n this.$el.focus(e);\n }\n }\n }\n};\n/**\n * @hidden\n */\nvar Loader = LoaderVue2;\nexport { Loader, LoaderVue2 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { validatePackage, isObject } from '@progress/kendo-vue-common';\nimport { packageMetadata } from '../package-metadata';\n/**\n * @hidden\n */\nvar SkeletonVue2 = {\n name: 'KendoSkeleton',\n props: {\n animation: {\n type: [Object, Boolean],\n default: function _default() {\n return {\n type: 'pulse'\n };\n },\n validator: function validator(value) {\n return value === false || ['wave', 'pulse'].includes(value.type);\n }\n },\n shape: {\n type: String,\n default: 'text',\n validator: function validator(value) {\n return ['circle', 'rectangle', 'text'].includes(value);\n }\n },\n ariaBusy: {\n type: Boolean,\n default: undefined\n },\n role: {\n type: String,\n default: undefined\n }\n },\n created: function created() {\n validatePackage(packageMetadata);\n },\n computed: {\n skeletonClasses: function skeletonClasses() {\n return {\n 'k-skeleton': true,\n 'k-skeleton-circle': this.shape === 'circle',\n 'k-skeleton-rect': this.shape === 'rectangle',\n 'k-skeleton-text': this.shape === 'text',\n 'k-skeleton-pulse': isObject(this.animation) && this.animation.type === 'pulse',\n 'k-skeleton-wave': isObject(this.animation) && this.animation.type === 'wave' || this.animation === true\n };\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n return h(\"span\", {\n role: this.$props.role,\n attrs: this.v3 ? undefined : {\n role: this.$props.role,\n ariaBusy: this.$props.ariaBusy\n },\n \"class\": this.skeletonClasses,\n ariaBusy: this.$props.ariaBusy\n });\n }\n};\n/**\n * @hidden\n */\nvar Skeleton = SkeletonVue2;\nexport { Skeleton, SkeletonVue2 };","/**\n * @hidden\n */\nexport var isPresent = function (value) { return value !== null && value !== undefined; };\n/**\n * @hidden\n *\n * Fits the contender number into the specified bounds.\n * If the number is NaN or null, the minimum is returned.\n *\n * @param contender Represents the number you want to fit into the specified bounds.\n * @param min The inclusive lower bound number.\n * @param max The inclusive upper bound number.\n */\nexport var fitIntoBounds = function (contender, min, max) {\n if (!isPresent(contender) || isNaN(contender)) {\n return min;\n }\n return contender <= min ? min : contender >= max ? max : contender;\n};\n","var Class = function Class () {};\n\nexport default Class;\n","function matchUserAgent(userAgent) {\n var browserRxs = {\n edge: /(edge)[ \\/]([\\w.]+)/i,\n webkit: /(chrome)[ \\/]([\\w.]+)/i,\n safari: /(webkit)[ \\/]([\\w.]+)/i,\n opera: /(opera)(?:.*version|)[ \\/]([\\w.]+)/i,\n msie: /(msie\\s|trident.*? rv:)([\\w.]+)/i,\n mozilla: /(mozilla)(?:.*? rv:([\\w.]+))/i\n };\n\n var browser = {};\n\n for (var agent in browserRxs) {\n if (browserRxs.hasOwnProperty(agent)) {\n var match = userAgent.match(browserRxs[agent]);\n if (match) {\n browser[agent] = true;\n browser[match[1].toLowerCase().split(\" \")[0].split(\"/\")[0]] = true;\n browser.version = parseInt(document.documentMode || match[2], 10);\n\n break;\n }\n }\n }\n\n return browser;\n}\n\nvar browser = null;\n\nvar support = {\n get browser() {\n if (typeof window === 'undefined' || browser) {\n return browser;\n }\n\n browser = matchUserAgent(window.navigator.userAgent);\n return browser;\n }\n};\n\nexport default support;\n","var namedColors = {\n aliceblue: \"f0f8ff\", antiquewhite: \"faebd7\", aqua: \"00ffff\",\n aquamarine: \"7fffd4\", azure: \"f0ffff\", beige: \"f5f5dc\",\n bisque: \"ffe4c4\", black: \"000000\", blanchedalmond: \"ffebcd\",\n blue: \"0000ff\", blueviolet: \"8a2be2\", brown: \"a52a2a\",\n burlywood: \"deb887\", cadetblue: \"5f9ea0\", chartreuse: \"7fff00\",\n chocolate: \"d2691e\", coral: \"ff7f50\", cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\", crimson: \"dc143c\", cyan: \"00ffff\",\n darkblue: \"00008b\", darkcyan: \"008b8b\", darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\", darkgrey: \"a9a9a9\", darkgreen: \"006400\",\n darkkhaki: \"bdb76b\", darkmagenta: \"8b008b\", darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\", darkorchid: \"9932cc\", darkred: \"8b0000\",\n darksalmon: \"e9967a\", darkseagreen: \"8fbc8f\", darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\", darkslategrey: \"2f4f4f\", darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\", deeppink: \"ff1493\", deepskyblue: \"00bfff\",\n dimgray: \"696969\", dimgrey: \"696969\", dodgerblue: \"1e90ff\",\n firebrick: \"b22222\", floralwhite: \"fffaf0\", forestgreen: \"228b22\",\n fuchsia: \"ff00ff\", gainsboro: \"dcdcdc\", ghostwhite: \"f8f8ff\",\n gold: \"ffd700\", goldenrod: \"daa520\", gray: \"808080\",\n grey: \"808080\", green: \"008000\", greenyellow: \"adff2f\",\n honeydew: \"f0fff0\", hotpink: \"ff69b4\", indianred: \"cd5c5c\",\n indigo: \"4b0082\", ivory: \"fffff0\", khaki: \"f0e68c\",\n lavender: \"e6e6fa\", lavenderblush: \"fff0f5\", lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\", lightblue: \"add8e6\", lightcoral: \"f08080\",\n lightcyan: \"e0ffff\", lightgoldenrodyellow: \"fafad2\", lightgray: \"d3d3d3\",\n lightgrey: \"d3d3d3\", lightgreen: \"90ee90\", lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\", lightseagreen: \"20b2aa\", lightskyblue: \"87cefa\",\n lightslategray: \"778899\", lightslategrey: \"778899\", lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\", lime: \"00ff00\", limegreen: \"32cd32\",\n linen: \"faf0e6\", magenta: \"ff00ff\", maroon: \"800000\",\n mediumaquamarine: \"66cdaa\", mediumblue: \"0000cd\", mediumorchid: \"ba55d3\",\n mediumpurple: \"9370d8\", mediumseagreen: \"3cb371\", mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\", mediumturquoise: \"48d1cc\", mediumvioletred: \"c71585\",\n midnightblue: \"191970\", mintcream: \"f5fffa\", mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\", navajowhite: \"ffdead\", navy: \"000080\",\n oldlace: \"fdf5e6\", olive: \"808000\", olivedrab: \"6b8e23\",\n orange: \"ffa500\", orangered: \"ff4500\", orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\", palegreen: \"98fb98\", paleturquoise: \"afeeee\",\n palevioletred: \"d87093\", papayawhip: \"ffefd5\", peachpuff: \"ffdab9\",\n peru: \"cd853f\", pink: \"ffc0cb\", plum: \"dda0dd\",\n powderblue: \"b0e0e6\", purple: \"800080\", red: \"ff0000\",\n rosybrown: \"bc8f8f\", royalblue: \"4169e1\", saddlebrown: \"8b4513\",\n salmon: \"fa8072\", sandybrown: \"f4a460\", seagreen: \"2e8b57\",\n seashell: \"fff5ee\", sienna: \"a0522d\", silver: \"c0c0c0\",\n skyblue: \"87ceeb\", slateblue: \"6a5acd\", slategray: \"708090\",\n slategrey: \"708090\", snow: \"fffafa\", springgreen: \"00ff7f\",\n steelblue: \"4682b4\", tan: \"d2b48c\", teal: \"008080\",\n thistle: \"d8bfd8\", tomato: \"ff6347\", turquoise: \"40e0d0\",\n violet: \"ee82ee\", wheat: \"f5deb3\", white: \"ffffff\",\n whitesmoke: \"f5f5f5\", yellow: \"ffff00\", yellowgreen: \"9acd32\"\n};\n\nexport default namedColors;","import Class from '../class';\nimport support from '../support';\nimport namedColors from './named-colors';\n\nvar browser = support.browser;\n\nvar matchNamedColor = function (color) {\n var colorNames = Object.keys(namedColors);\n colorNames.push(\"transparent\");\n\n var regexp = new RegExp(\"^(\" + colorNames.join(\"|\") + \")(\\\\W|$)\", \"i\");\n matchNamedColor = function (color) { return regexp.exec(color); };\n\n return regexp.exec(color);\n};\n\nvar BaseColor = (function (Class) {\n function BaseColor() { Class.call(this); }\n\n if ( Class ) BaseColor.__proto__ = Class;\n BaseColor.prototype = Object.create( Class && Class.prototype );\n BaseColor.prototype.constructor = BaseColor;\n BaseColor.prototype.toHSV = function toHSV () { return this; };\n\n BaseColor.prototype.toRGB = function toRGB () { return this; };\n\n BaseColor.prototype.toHex = function toHex (options) { return this.toBytes().toHex(options); };\n\n BaseColor.prototype.toBytes = function toBytes () { return this; };\n\n BaseColor.prototype.toCss = function toCss (options) { return \"#\" + this.toHex(options); };\n\n BaseColor.prototype.toCssRgba = function toCssRgba () {\n var rgb = this.toBytes();\n return (\"rgba(\" + (rgb.r) + \", \" + (rgb.g) + \", \" + (rgb.b) + \", \" + (parseFloat((Number(this.a)).toFixed(3))) + \")\");\n };\n\n BaseColor.prototype.toDisplay = function toDisplay () {\n if (browser.msie && browser.version < 9) {\n return this.toCss(); // no RGBA support; does it support any opacity in colors?\n }\n return this.toCssRgba();\n };\n\n BaseColor.prototype.equals = function equals (c) {\n return c === this || ((c !== null && c !== undefined) && this.toCssRgba() === parseColor(c).toCssRgba());\n };\n\n BaseColor.prototype.diff = function diff (other) {\n if (other === null) {\n return NaN;\n }\n\n var c1 = this.toBytes();\n var c2 = other.toBytes();\n\n return Math.sqrt(Math.pow((c1.r - c2.r) * 0.30, 2) +\n Math.pow((c1.g - c2.g) * 0.59, 2) +\n Math.pow((c1.b - c2.b) * 0.11, 2));\n };\n\n BaseColor.prototype.clone = function clone () {\n var c = this.toBytes();\n if (c === this) {\n c = new Bytes(c.r, c.g, c.b, c.a);\n }\n\n return c;\n };\n\n return BaseColor;\n}(Class));\n\nvar RGB = (function (BaseColor) {\n function RGB(r, g, b, a) {\n BaseColor.call(this);\n\n this.r = r;\n this.g = g;\n this.b = b;\n this.a = a;\n }\n\n if ( BaseColor ) RGB.__proto__ = BaseColor;\n RGB.prototype = Object.create( BaseColor && BaseColor.prototype );\n RGB.prototype.constructor = RGB;\n\n RGB.prototype.toHSV = function toHSV () {\n var ref = this;\n var r = ref.r;\n var g = ref.g;\n var b = ref.b;\n var min = Math.min(r, g, b);\n var max = Math.max(r, g, b);\n var delta = max - min;\n var v = max;\n var h, s;\n\n if (delta === 0) {\n return new HSV(0, 0, v, this.a);\n }\n\n if (max !== 0) {\n s = delta / max;\n if (r === max) {\n h = (g - b) / delta;\n } else if (g === max) {\n h = 2 + (b - r) / delta;\n } else {\n h = 4 + (r - g) / delta;\n }\n\n h *= 60;\n if (h < 0) {\n h += 360;\n }\n } else {\n s = 0;\n h = -1;\n }\n\n return new HSV(h, s, v, this.a);\n };\n\n RGB.prototype.toHSL = function toHSL () {\n var ref = this;\n var r = ref.r;\n var g = ref.g;\n var b = ref.b;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if (max === min) {\n h = s = 0;\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n default: break;\n }\n }\n\n return new HSL(h * 60, s * 100, l * 100, this.a);\n };\n\n RGB.prototype.toBytes = function toBytes () {\n return new Bytes(this.r * 255, this.g * 255, this.b * 255, this.a);\n };\n\n return RGB;\n}(BaseColor));\n\nvar Bytes = (function (RGB) {\n function Bytes(r, g, b, a) {\n RGB.call(this, Math.round(r), Math.round(g), Math.round(b), a);\n }\n\n if ( RGB ) Bytes.__proto__ = RGB;\n Bytes.prototype = Object.create( RGB && RGB.prototype );\n Bytes.prototype.constructor = Bytes;\n\n Bytes.prototype.toRGB = function toRGB () {\n return new RGB(this.r / 255, this.g / 255, this.b / 255, this.a);\n };\n\n Bytes.prototype.toHSV = function toHSV () {\n return this.toRGB().toHSV();\n };\n\n Bytes.prototype.toHSL = function toHSL () {\n return this.toRGB().toHSL();\n };\n\n Bytes.prototype.toHex = function toHex (options) {\n var value = hex(this.r, 2) + hex(this.g, 2) + hex(this.b, 2);\n\n if (options && options.alpha) {\n value += hex(Math.round(this.a * 255), 2);\n }\n\n return value;\n };\n\n Bytes.prototype.toBytes = function toBytes () {\n return this;\n };\n\n return Bytes;\n}(RGB));\n\nfunction hex(n, width, pad) {\n if ( pad === void 0 ) pad = \"0\";\n\n var result = n.toString(16);\n while (width > result.length) {\n result = pad + result;\n }\n\n return result;\n}\n\nvar HSV = (function (BaseColor) {\n function HSV(h, s, v, a) {\n BaseColor.call(this);\n\n this.h = h;\n this.s = s;\n this.v = v;\n this.a = a;\n }\n\n if ( BaseColor ) HSV.__proto__ = BaseColor;\n HSV.prototype = Object.create( BaseColor && BaseColor.prototype );\n HSV.prototype.constructor = HSV;\n\n HSV.prototype.toRGB = function toRGB () {\n var ref = this;\n var h = ref.h;\n var s = ref.s;\n var v = ref.v;\n var r, g, b;\n\n if (s === 0) {\n r = g = b = v;\n } else {\n h /= 60;\n\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - s * f);\n var t = v * (1 - s * (1 - f));\n\n switch (i) {\n case 0: r = v; g = t; b = p; break;\n case 1: r = q; g = v; b = p; break;\n case 2: r = p; g = v; b = t; break;\n case 3: r = p; g = q; b = v; break;\n case 4: r = t; g = p; b = v; break;\n default: r = v; g = p; b = q; break;\n }\n }\n\n return new RGB(r, g, b, this.a);\n };\n\n HSV.prototype.toHSL = function toHSL () {\n return this.toRGB().toHSL();\n };\n\n HSV.prototype.toBytes = function toBytes () {\n return this.toRGB().toBytes();\n };\n\n return HSV;\n}(BaseColor));\n\nvar HSL = (function (BaseColor) {\n function HSL(h, s, l, a) {\n BaseColor.call(this);\n\n this.h = h;\n this.s = s;\n this.l = l;\n this.a = a;\n }\n\n if ( BaseColor ) HSL.__proto__ = BaseColor;\n HSL.prototype = Object.create( BaseColor && BaseColor.prototype );\n HSL.prototype.constructor = HSL;\n\n HSL.prototype.toRGB = function toRGB () {\n var h = this.h / 360;\n var s = this.s / 100;\n var l = this.l / 100;\n var r, g, b;\n\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return new RGB(r, g, b, this.a);\n };\n\n HSL.prototype.toHSV = function toHSV () {\n return this.toRGB().toHSV();\n };\n\n HSL.prototype.toBytes = function toBytes () {\n return this.toRGB().toBytes();\n };\n\n return HSL;\n}(BaseColor));\n\nfunction hue2rgb(p, q, s) {\n var t = s;\n\n if (t < 0) {\n t += 1;\n }\n\n if (t > 1) {\n t -= 1;\n }\n\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n\n if (t < 1 / 2) {\n return q;\n }\n\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n\n return p;\n}\n\nfunction alphaFromHex(a) {\n return parseFloat(parseFloat(parseInt(a, 16) / 255 ).toFixed(3));\n}\n\nexport { RGB, Bytes, HSV, HSL };\n\nexport default function parseColor(value, safe) {\n var m, ret;\n\n if (value == null || value === \"none\") {\n return null;\n }\n\n if (value instanceof BaseColor) {\n return value;\n }\n\n var color = value.toLowerCase();\n if ((m = matchNamedColor(color))) {\n if (m[1] === \"transparent\") {\n color = new RGB(1, 1, 1, 0);\n } else {\n color = parseColor(namedColors[m[1]], safe);\n }\n color.match = [ m[1] ];\n return color;\n }\n if ((m = /^#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})\\b/i.exec(color))) {\n ret = new Bytes(parseInt(m[1], 16),\n parseInt(m[2], 16),\n parseInt(m[3], 16), 1);\n } else if ((m = /^#?([0-9a-f])([0-9a-f])([0-9a-f])\\b/i.exec(color))) {\n ret = new Bytes(parseInt(m[1] + m[1], 16),\n parseInt(m[2] + m[2], 16),\n parseInt(m[3] + m[3], 16), 1);\n } else if ((m = /^#?([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])\\b/i.exec(color))) { // Parse 4 digit hex color\n ret = new Bytes(parseInt(m[1] + m[1], 16),\n parseInt(m[2] + m[2], 16),\n parseInt(m[3] + m[3], 16),\n alphaFromHex(m[4] + m[4]));\n } else if ((m = /^#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})\\b/i.exec(color))) { // Parse 8 digit hex color\n ret = new Bytes(parseInt(m[1], 16),\n parseInt(m[2], 16),\n parseInt(m[3], 16),\n alphaFromHex(m[4]));\n } else if ((m = /^rgb\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*\\)/.exec(color))) {\n ret = new Bytes(parseInt(m[1], 10),\n parseInt(m[2], 10),\n parseInt(m[3], 10), 1);\n } else if ((m = /^rgba\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9.]+)\\s*\\)/.exec(color))) {\n ret = new Bytes(parseInt(m[1], 10),\n parseInt(m[2], 10),\n parseInt(m[3], 10), parseFloat(m[4]));\n } else if ((m = /^rgb\\(\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9]*\\.?[0-9]+)%\\s*\\)/.exec(color))) {\n ret = new RGB(parseFloat(m[1]) / 100,\n parseFloat(m[2]) / 100,\n parseFloat(m[3]) / 100, 1);\n } else if ((m = /^rgba\\(\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9.]+)\\s*\\)/.exec(color))) {\n ret = new RGB(parseFloat(m[1]) / 100,\n parseFloat(m[2]) / 100,\n parseFloat(m[3]) / 100, parseFloat(m[4]));\n }\n\n if (ret) {\n ret.match = m;\n } else if (!safe) {\n throw new Error(\"Cannot parse color: \" + color);\n }\n\n return ret;\n}\n","import { isPresent } from './misc';\nimport { parseColor } from '@progress/kendo-drawing';\n/**\n * @hidden\n */\nvar ColorPaletteService = /** @class */ (function () {\n function ColorPaletteService() {\n this.colorRows = [];\n }\n ColorPaletteService.prototype.setColorMatrix = function (palette, columns) {\n this.colorRows = [];\n if (!(isPresent(palette) && palette.length)) {\n return;\n }\n columns = columns || palette.length;\n for (var start = 0; start < palette.length; start += columns) {\n var row = palette.slice(start, columns + start);\n this.colorRows.push(row);\n }\n };\n ColorPaletteService.prototype.getCellCoordsFor = function (color) {\n var _this = this;\n if (!isPresent(color)) {\n return;\n }\n var parsedColor = color ? parseColor(color, true) : color;\n var colors = [color];\n if (isPresent(parsedColor)) {\n colors.push(parsedColor.toCss(), parsedColor.toCssRgba());\n }\n var _loop_1 = function (row) {\n var _loop_2 = function (col) {\n if (colors.some(function (c) { return c === _this.colorRows[row][col]; })) {\n return { value: { row: row, col: col } };\n }\n };\n for (var col = 0; col < this_1.colorRows[row].length; col++) {\n var state_2 = _loop_2(col);\n if (typeof state_2 === \"object\")\n return state_2;\n }\n };\n var this_1 = this;\n for (var row = 0; row < this.colorRows.length; row++) {\n var state_1 = _loop_1(row);\n if (typeof state_1 === \"object\")\n return state_1.value;\n }\n };\n ColorPaletteService.prototype.getColorAt = function (cellCoords) {\n if (!(isPresent(cellCoords) && isPresent(this.colorRows[cellCoords.row]))) {\n return;\n }\n return this.colorRows[cellCoords.row][cellCoords.col];\n };\n ColorPaletteService.prototype.getNextCell = function (current, horizontalStep, verticalStep) {\n if (!(isPresent(current) && isPresent(current.row) && isPresent(current.col))) {\n return { row: 0, col: 0 };\n }\n var row = this.clampIndex(current.row + verticalStep, this.colorRows.length - 1);\n var col = this.clampIndex(current.col + horizontalStep, this.colorRows[row].length - 1);\n return { row: row, col: col };\n };\n ColorPaletteService.prototype.clampIndex = function (index, max) {\n var minArrayIndex = 0;\n if (index < minArrayIndex) {\n return minArrayIndex;\n }\n if (index > max) {\n return max;\n }\n return index;\n };\n return ColorPaletteService;\n}());\nexport { ColorPaletteService };\n","var _Draggable;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport KendoDraggable from '@telerik/kendo-draggable';\nimport { getDefaultSlots } from './defaultSlots';\n/**\n * Represents the default `Draggable` component.\n */\n\nvar Draggable = (_Draggable = {\n // @ts-ignore\n emits: {\n press: null,\n drag: null,\n release: null\n },\n inheritAttrs: false,\n created: function created() {\n this.element = null;\n this.draggable = new KendoDraggable({\n press: this.press,\n drag: this.drag,\n release: this.release\n });\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n mounted: function mounted() {\n if (this.$el) {\n this.element = this.$el.nodeType === 3 ? this.$el.nextElementSibling : this.$el;\n this.draggable.bindTo(this.element);\n }\n },\n destroyed: !!gh ? undefined : function () {\n this.draggable.destroy();\n },\n // @ts-ignore\n unmounted: function unmounted() {\n this.draggable.destroy();\n },\n methods: {\n press: function press(event) {\n if (this.element) {\n this.$emit('press', event, this.element);\n }\n },\n drag: function drag(event) {\n if (this.element) {\n this.$emit('drag', event, this.element);\n }\n },\n release: function release(event) {\n if (this.element) {\n this.$emit('release', event, this.element);\n }\n }\n }\n}, _defineProperty(_Draggable, \"setup\", !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n}), _defineProperty(_Draggable, \"render\", function render(createElement) {\n // @ts-ignore\n var h = gh || createElement;\n return getDefaultSlots(this);\n}), _Draggable);\nexport { Draggable };","/**\n * @hidden\n */\nexport var classNames = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return args\n .filter(function (arg) { return arg !== true && !!arg; })\n .map(function (arg) {\n return Array.isArray(arg)\n ? classNames.apply(void 0, arg) : typeof arg === 'object'\n ? Object\n .keys(arg)\n .map(function (key, idx) { return arg[idx] || (arg[key] && key) || null; })\n .filter(function (el) { return el !== null; })\n .join(' ')\n : arg;\n })\n .filter(function (arg) { return !!arg; })\n .join(' ');\n};\n","/* tslint:disable:no-bitwise */\n/**\n * @hidden\n */\nvar guid = function () {\n var id = '';\n var i;\n var random;\n for (i = 0; i < 32; i++) {\n random = Math.random() * 16 | 0;\n if (i === 8 || i === 12 || i === 16 || i === 20) {\n id += '-';\n }\n id += (i === 12 ? 4 : (i === 16 ? (random & 3 | 8) : random)).toString(16);\n }\n return id;\n};\nexport { guid };\n","/**\n * @hidden\n */\nvar Keys = {\n backspace: 8,\n tab: 9,\n enter: 13,\n shift: 16,\n esc: 27,\n space: 32,\n pageUp: 33,\n pageDown: 34,\n end: 35,\n home: 36,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n delete: 46\n};\nexport { Keys };\n","/**\n * @hidden\n */\nvar canUseDOM = Boolean(\n// from fbjs\ntypeof window !== 'undefined' &&\n window.document &&\n window.document.createElement);\nexport { canUseDOM };\n","/**\n * @hidden\n */\nexport var focusFirstFocusableChild = function (element) {\n if (element) {\n // should focus wrapper if it's focusable in future versions\n var elements = element.querySelectorAll('input, [tabindex]:not([tabindex=\"-1\"])');\n if (elements.length && elements[0].focus) {\n elements[0].focus();\n }\n }\n};\n","/**\n * @hidden\n */\nexport function getDefaultSlots(component) {\n var defaultSlots = component.$slots.default;\n return (component.v3 && defaultSlots && typeof defaultSlots === 'function') ? defaultSlots() : defaultSlots;\n}\n","/**\n * @hidden\n */\nvar noop = function () { };\nexport { noop };\n","import { FIELD_REGEX } from './constants';\nvar getterCache = {};\ngetterCache.undefined = function () { return undefined; };\n/**\n * @hidden\n */\nexport function getter(field) {\n if (getterCache[field]) {\n return getterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n getterCache[field] = function (obj) {\n var result = obj;\n for (var idx = 0; idx < fields.length && result; idx++) {\n result = result[fields[idx]];\n }\n return result;\n };\n return getterCache[field];\n}\n","import { FIELD_REGEX } from './constants';\nvar setterCache = {};\nsetterCache.undefined = function (obj) { return obj; };\n/**\n * @hidden\n */\nexport function setter(field) {\n if (setterCache[field]) {\n return setterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n setterCache[field] = function (obj, value) {\n var root = obj;\n var depth = fields.length - 1;\n for (var idx = 0; idx < depth && root; idx++) {\n root = root[fields[idx]] = root[fields[idx]] || {};\n }\n root[fields[depth]] = value;\n };\n return setterCache[field];\n}\n","/**\n * @hidden\n */\nexport function hasListener(eventName) {\n if (this.v3) {\n return Object.keys(this.$attrs).map(function (name) { return name.toLowerCase(); })\n .some(function (event) { return event.endsWith(eventName.toLowerCase()); });\n }\n else {\n return this.$listeners[eventName];\n }\n}\n/**\n * @hidden\n */\nexport function getListeners() {\n if (this.v3) {\n var listeners = {};\n for (var key in (this.$attrs)) {\n if (key.startsWith('on')) {\n listeners[key] = this.$attrs[key];\n }\n }\n return listeners;\n }\n else {\n return this.$listeners;\n }\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\n/**\n * @hidden\n */\nexport function templateRendering(template, listeners) {\n if (!template) {\n return undefined;\n }\n var scopedSlot = gh ?\n this.$slots[template] ||\n (template.toLowerCase ? this.$slots[template.toLowerCase()]\n : null) :\n this.$scopedSlots[template] ||\n (template.toLowerCase ? this.$scopedSlots[template.toLowerCase()]\n : null);\n // @ts-ignore\n if (typeof template === 'string' && scopedSlot) {\n // @ts-ignore\n return { type: 'slot', render: scopedSlot, listeners: listeners };\n }\n if (typeof template === 'string' || typeof template === 'object' ||\n (typeof template === 'function' && template.component)) {\n return { type: 'component', render: template, listeners: listeners };\n }\n return { type: 'renderFunction', render: template, listeners: listeners };\n}\n/**\n * @hidden\n */\nexport function getTemplate(_a) {\n var h = _a.h, template = _a.template, defaultRendering = _a.defaultRendering, defaultSlots = _a.defaultSlots, additionalProps = _a.additionalProps, additionalListeners = _a.additionalListeners, swapDefaultSlots = _a.swapDefaultSlots;\n if (!template) {\n return defaultRendering;\n }\n var events;\n var props;\n var componentOptions;\n if (gh) {\n var passedProps = defaultRendering ? defaultRendering.props : {};\n events = __assign(__assign({}, transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, passedProps), additionalProps), events);\n componentOptions = __assign(__assign({}, props), events);\n }\n else {\n var hasComponentOptions = defaultRendering && defaultRendering.componentOptions;\n var defaultListeners = hasComponentOptions ?\n defaultRendering.componentOptions.listeners : {};\n var defaultProps = hasComponentOptions ?\n defaultRendering.componentOptions.propsData : {};\n events = __assign(__assign(__assign(__assign({}, defaultListeners), additionalListeners), transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, defaultProps), additionalProps), events);\n componentOptions = { props: props, on: events };\n }\n if (template.type === 'slot') {\n var slotTemplate = template.render({ props: props, listeners: events, methods: events,\n defaultSlots: defaultSlots });\n return slotTemplate ? slotTemplate[0] : undefined;\n }\n else if (template.type === 'renderFunction') {\n if (swapDefaultSlots) {\n return template.render(h, defaultRendering, defaultSlots, props, events);\n }\n return template.render(h, defaultRendering, props, events, defaultSlots);\n }\n else {\n return h(template.render, componentOptions, gh ? function () { return [defaultSlots]; } : [defaultSlots]);\n }\n}\n/**\n * @hidden\n */\nexport function transformListeners(listeners) {\n if (!listeners) {\n return listeners;\n }\n var newListeners = {};\n var listenersKeys = Object.keys(listeners);\n for (var i = 0; i < listenersKeys.length; i++) {\n var currentKey = listenersKeys[i];\n newListeners['on' + currentKey.charAt(0).toUpperCase() + currentKey.slice(1)] =\n listeners[currentKey];\n }\n return newListeners;\n}\n","/**\n * @hidden\n */\nvar DISABLED_TABINDEX = -1;\n/**\n * @hidden\n */\nvar DEFAULT_TABINDEX = 0;\n/**\n * @hidden\n */\nexport var getTabIndex = function (tabIndex, disabled, useDefaultTabIndexWhenDisabled) {\n var parsedTabIndex = typeof tabIndex === 'string' ? parseInt(tabIndex, undefined) : tabIndex;\n if (parsedTabIndex === NaN) {\n return undefined;\n }\n return parsedTabIndex !== undefined\n ? parsedTabIndex\n : disabled ?\n (useDefaultTabIndexWhenDisabled ? undefined : DISABLED_TABINDEX)\n : DEFAULT_TABINDEX;\n};\n","import { canUseDOM } from './canUseDOM';\n/**\n * @hidden\n */\nexport function isRtl(element) {\n return Boolean(canUseDOM && element && getComputedStyle(element).direction === 'rtl');\n}\n/**\n * @hidden\n */\nexport function getDir(element, initialDir) {\n if (!initialDir && canUseDOM && element) {\n // Note: getComputedStyle forces reflow\n var rtlCandidate = window.getComputedStyle(element).direction;\n if (rtlCandidate) {\n // rerender is needed as DOM is read after first render\n return rtlCandidate;\n }\n }\n return initialDir;\n}\n","import * as licensing from '@progress/kendo-licensing';\n/**\n * @hidden\n */\nexport function validatePackage(packageMetadata) {\n if (typeof licensing !== 'undefined') {\n licensing.validatePackage(packageMetadata);\n }\n else {\n var message = \"License activation failed for \" + packageMetadata.name + \"\\n\";\n message += 'The @progress/kendo-licensing script is not loaded.\\n';\n message += \"See \" + packageMetadata.licensingDocsUrl + \" for more information.\\n\";\n console.warn(message);\n }\n}\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-vue-inputs',\n productName: 'Kendo UI for Vue',\n productCodes: ['KENDOUIVUE', 'KENDOUICOMPLETE'],\n publishDate: 1641561208,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning'\n};\n","var _a;\n/**\n * @hidden\n */\nexport var numericIncreaseValue = 'numerictextbox.increment';\n/**\n * @hidden\n */\nexport var numericDecreaseValue = 'numerictextbox.decrement';\n/**\n * @hidden\n */\nexport var sliderIncreaseValue = 'slider.increment';\n/**\n * @hidden\n */\nexport var sliderDecreaseValue = 'slider.decrement';\n/**\n * @hidden\n */\nexport var sliderDragTitle = 'slider.dragTitle';\n/**\n * @hidden\n */\nexport var colorGradientR = 'colorGradient.r';\n/**\n * @hidden\n */\nexport var colorGradientG = 'colorGradient.g';\n/**\n * @hidden\n */\nexport var colorGradientB = 'colorGradient.b';\n/**\n * @hidden\n */\nexport var colorGradientA = 'colorGradient.a';\n/**\n * @hidden\n */\nexport var colorGradientHex = 'colorGradient.hex';\n/**\n * @hidden\n */\nexport var colorGradientContrastRatio = 'colorGradient.contrastRatio';\n/**\n * @hidden\n */\nexport var colorGradientAALevel = 'colorGradient.colorGradientAALevel';\n/**\n * @hidden\n */\nexport var colorGradientAAALevel = 'colorGradient.colorGradientAAALevel';\n/**\n * @hidden\n */\nexport var colorGradientPass = 'colorGradient.colorGradientPass';\n/**\n * @hidden\n */\nexport var colorGradientFail = 'colorGradient.colorGradientFail';\n/**\n * @hidden\n */\nexport var checkboxValidation = 'checkbox.validation';\n/**\n * @hidden\n */\nexport var checkboxOptionalText = 'checkbox.optionalText';\n/**\n * @hidden\n */\nexport var radioButtonValidation = 'radioButton.validation';\n/**\n * @hidden\n */\nexport var switchValidation = 'switch.validation';\n/**\n * @hidden\n */\nexport var messages = (_a = {},\n _a[numericIncreaseValue] = 'Increase value',\n _a[numericDecreaseValue] = 'Decrease value',\n _a[sliderIncreaseValue] = 'Increase',\n _a[sliderDecreaseValue] = 'Decrease',\n _a[sliderDragTitle] = 'Drag',\n _a[colorGradientR] = 'r',\n _a[colorGradientG] = 'g',\n _a[colorGradientB] = 'b',\n _a[colorGradientA] = 'a',\n _a[colorGradientHex] = 'hex',\n _a[colorGradientContrastRatio] = 'Contrast ratio',\n _a[colorGradientAALevel] = 'AA',\n _a[colorGradientAAALevel] = 'AAA',\n _a[colorGradientPass] = 'Pass',\n _a[colorGradientFail] = 'Fail',\n _a[checkboxValidation] = 'Please check this box if you want to proceed!',\n _a[checkboxOptionalText] = '(Optional)',\n _a[radioButtonValidation] = 'Please select option if you want to proceed!',\n _a[switchValidation] = 'Please turn on if you want to proceed!',\n _a);\n","/**\n * @hidden\n */\nexport var ResultType;\n(function (ResultType) {\n ResultType[ResultType[\"Literal\"] = 0] = \"Literal\";\n ResultType[ResultType[\"Mask\"] = 1] = \"Mask\";\n ResultType[ResultType[\"Undefined\"] = 2] = \"Undefined\";\n})(ResultType || (ResultType = {}));\n/**\n * @hidden\n */\nvar Result = /** @class */ (function () {\n function Result(value, rest, type) {\n if (type === void 0) { type = ResultType.Undefined; }\n this.value = value;\n this.rest = rest;\n this.type = type;\n }\n // map :: Functor f => f a ~> (a -> b) -> f b\n Result.prototype.map = function (fn) {\n return new Result(fn(this.value), this.rest);\n };\n // chain :: Chain m => m a ~> (a -> m b) -> m b\n Result.prototype.chain = function (fn) {\n return fn(this.value, this.rest);\n };\n Result.prototype.fold = function (s, _ /*we don't need it*/) {\n return s(this.value, this.rest);\n };\n Result.prototype.concat = function (r) {\n return this.map(function (vs, _) { return r.chain(function (v, __) { return vs.concat([v]); }); });\n };\n Result.prototype.toString = function () {\n return \"Result({ value: '\" + this.value + \"', rest: \" + this.rest + \" })\";\n };\n return Result;\n}());\nexport { Result };\n","/* eslint-disable max-len */\n/**\n * @hidden\n */\nexport var PALETTEPRESETS = {\n basic: {\n colors: ['#000000', '#7f7f7f', '#880015', '#ed1c24', '#ff7f27', '#fff200', '#22b14c', '#00a2e8', '#3f48cc', '#a349a4', ' ffffff', '#c3c3c3', '#b97a57', '#ffaec9', '#ffc90e', '#efe4b0', '#b5e61d', '#99d9ea', '#7092be', '#c8bfe7'],\n columns: 10\n },\n office: {\n colors: ['#ffffff', '#000000', '#e6e6e6', '#435569', '#4371c4', '#ed7e32', '#a5a4a5', '#febf04', '#5a9bd5', '#71ae48', '#f2f2f3', '#7f7f7f', '#d1cece', '#d5dde3', '#dae1f4', '#fce5d4', '#deeded', '#fff2cc', '#deeaf6', '#e1efd9', '#d7d8d8', '#585959', '#aeabab', '#adbaca', '#b4c5e7', '#f6caac', '#dbdbdb', '#ffe498', '#bcd6ee', '#c5e0b2', '#bfbfc0', '#3f3f3f', '#767070', '#8595b1', '#8fabdb', '#f5b183', '#c9c8c9', '#fed965', '#9bc4e5', '#a8d08d', '#a5a5a6', '#262625', '#393939', '#334050', '#2e5496', '#c45a11', '#7b7b7a', '#bf9000', '#2f75b5', '#548235', '#7f7f7f', '#0b0c0c', '#161616', '#222a34', '#203764', '#843d0b', '#525252', '#7f6000', '#1d4d79', '#375623'],\n columns: 10\n },\n apex: {\n colors: ['#ffffff', '#000000', '#c9c2d1', '#69676d', '#ceb966', '#9cb084', '#6bb1c9', '#6585cf', '#7e6bc9', '#a379bb', '#f2f2f2', '#7f7f7f', '#f4f2f5', '#e0e0e2', '#f5f1e0', '#ebefe6', '#e1eff4', '#e0e6f5', '#e5e1f4', '#ece4f1', '#d8d8d8', '#595959', '#e9e6ec', '#c2c1c5', '#ebe3c1', '#d7dfcd', '#c3dfe9', '#c1ceeb', '#cbc3e9', '#dac9e3', '#bfbfbf', '#3f3f3f', '#dedae3', '#a4a3a8', '#e1d5a3', '#c3cfb5', '#a6d0de', '#a2b5e2', '#b1a6de', '#c7aed6', '#a5a5a5', '#262626', '#9688a5', '#4e4d51', '#ae9638', '#758c5a', '#3d8da9', '#365bb0', '#533da9', '#7d4d99', '#7f7f7f', '#0c0c0c', '#635672', '#343336', '#746425', '#4e5d3c', '#295e70', '#243c75', '#372970', '#533366'],\n columns: 10\n },\n austin: {\n colors: ['#ffffff', '#000000', '#caf278', '#3e3d2d', '#94c600', '#71685a', '#ff6700', '#909465', '#956b43', '#fea022', '#f2f2f2', '#7f7f7f', '#f4fce4', '#dddcd0', '#efffc0', '#e3e1dc', '#ffe0cb', '#e8e9df', '#ece1d6', '#feecd2', '#d8d8d8', '#595959', '#e9f9c9', '#bbb9a1', '#dfff82', '#c8c3ba', '#ffc299', '#d2d4c0', '#dac3ad', '#fed9a6', '#bfbfbf', '#3f3f3f', '#dff7ae', '#ada598', '#cfff43', '#ada598', '#ffa365', '#bcbfa1', '#c8a585', '#fec67a', '#a5a5a5', '#262626', '#a9ea25', '#2e2d21', '#6f9400', '#544e43', '#bf4d00', '#6c6f4b', '#6f5032', '#d77b00', '#7f7f7f', '#0c0c0c', '#74a50f', '#1f1e16', '#4a6300', '#38342d', '#7f3300', '#484a32', '#4a3521', '#8f5200'],\n columns: 10\n },\n clarity: {\n colors: ['#ffffff', '#292934', '#f3f2dc', '#d2533c', '#93a299', '#ad8f67', '#726056', '#4c5a6a', '#808da0', '#79463d', '#f2f2f2', '#e7e7ec', '#e7e5b9', '#f6dcd8', '#e9ecea', '#eee8e0', '#e4dedb', '#d8dde3', '#e5e8ec', '#e9d6d3', '#d8d8d8', '#c4c4d1', '#d5d185', '#edbab1', '#d3d9d6', '#ded2c2', '#c9beb8', '#b2bcc8', '#ccd1d9', '#d3aea7', '#bfbfbf', '#8a8aa3', '#aca73b', '#e4978a', '#bec7c1', '#cdbba3', '#af9e94', '#8c9bac', '#b2bac6', '#bd857c', '#a5a5a5', '#56566e', '#56531d', '#a43925', '#6b7c72', '#866b48', '#554840', '#39434f', '#5c697b', '#5a342d', '#7f7f7f', '#3b3b4b', '#22210b', '#6d2619', '#47534c', '#594730', '#39302b', '#262d35', '#3d4652', '#3c231e'],\n columns: 10\n },\n slipstream: {\n colors: ['#ffffff', '#000000', '#b4dcfa', '#212745', '#4e67c8', '#5eccf3', '#a7ea52', '#5dceaf', '#ff8021', '#f14124', '#f2f2f2', '#7f7f7f', '#8bc9f7', '#c7cce4', '#dbe0f4', '#def4fc', '#edfadc', '#def5ef', '#ffe5d2', '#fcd9d3', '#d8d8d8', '#595959', '#4facf3', '#909aca', '#b8c2e9', '#beeafa', '#dbf6b9', '#beebdf', '#ffcca6', '#f9b3a7', '#bfbfbf', '#3f3f3f', '#0d78c9', '#5967af', '#94a3de', '#9ee0f7', '#caf297', '#9de1cf', '#ffb279', '#f68d7b', '#a5a5a5', '#262626', '#063c64', '#181d33', '#31479f', '#11b2eb', '#81d319', '#34ac8b', '#d85c00', '#c3260c', '#7f7f7f', '#0c0c0c', '#021828', '#101322', '#202f6a', '#0b769c', '#568c11', '#22725c', '#903d00', '#821908'],\n columns: 10\n },\n metro: {\n colors: ['#ffffff', '#000000', '#d6ecff', '#4e5b6f', '#7fd13b', '#ea157a', '#feb80a', '#00addc', '#738ac8', '#1ab39f', '#f2f2f2', '#7f7f7f', '#a7d6ff', '#d9dde4', '#e5f5d7', '#fad0e4', '#fef0cd', '#c5f2ff', '#e2e7f4', '#c9f7f1', '#d8d8d8', '#595959', '#60b5ff', '#b3bcca', '#cbecb0', '#f6a1c9', '#fee29c', '#8be6ff', '#c7d0e9', '#94efe3', '#bfbfbf', '#3f3f3f', '#007dea', '#8d9baf', '#b2e389', '#f272af', '#fed46b', '#51d9ff', '#aab8de', '#5fe7d5', '#a5a5a5', '#262626', '#003e75', '#3a4453', '#5ea226', '#af0f5b', '#c58c00', '#0081a5', '#425ea9', '#138677', '#7f7f7f', '#0c0c0c', '#00192e', '#272d37', '#3f6c19', '#750a3d', '#835d00', '#00566e', '#2c3f71', '#0c594f'],\n columns: 10\n },\n flow: {\n colors: ['#ffffff', '#000000', '#dbf5f9', '#04617b', '#0f6fc6', '#009dd9', '#0bd0d9', '#10cf9b', '#7cca62', '#a5c249', '#f2f2f2', '#7f7f7f', '#b2e9f2', '#b4ecfc', '#c7e2fa', '#c4eeff', '#c9fafc', '#c9faed', '#e4f4df', '#edf2da', '#d8d8d8', '#595959', '#76d9e8', '#6adafa', '#90c6f6', '#89deff', '#93f5f9', '#94f6db', '#cae9c0', '#dbe6b6', '#bfbfbf', '#3f3f3f', '#21b2c8', '#20c8f7', '#59a9f2', '#4fceff', '#5df0f6', '#5ff2ca', '#b0dfa0', '#c9da91', '#a5a5a5', '#262626', '#105964', '#02485c', '#0b5394', '#0075a2', '#089ca2', '#0b9b74', '#54a838', '#7e9532', '#7f7f7f', '#0c0c0c', '#062328', '#01303d', '#073763', '#004e6c', '#05686c', '#07674d', '#387025', '#546321'],\n columns: 10\n },\n hardcover: {\n colors: ['#ffffff', '#000000', '#ece9c6', '#895d1d', '#873624', '#d6862d', '#d0be40', '#877f6c', '#972109', '#aeb795', '#f2f2f2', '#7f7f7f', '#e1dca5', '#f2e0c6', '#f0d0c9', '#f6e6d5', '#f5f2d8', '#e7e5e1', '#fbc7bc', '#eef0e9', '#d8d8d8', '#595959', '#d0c974', '#e6c28d', '#e2a293', '#eeceaa', '#ece5b2', '#cfccc3', '#f78f7a', '#dee2d4', '#bfbfbf', '#3f3f3f', '#a29a36', '#daa454', '#d4735e', '#e6b681', '#e2d88c', '#b7b2a5', '#f35838', '#ced3bf', '#a5a5a5', '#262626', '#514d1b', '#664515', '#65281a', '#a2641f', '#a39428', '#655f50', '#711806', '#879464', '#7f7f7f', '#0c0c0c', '#201e0a', '#442e0e', '#431b11', '#6c4315', '#6d621a', '#433f35', '#4b1004', '#5a6243'],\n columns: 10\n },\n trek: {\n colors: ['#ffffff', '#000000', '#fbeec9', '#4e3b30', '#f0a22e', '#a5644e', '#b58b80', '#c3986d', '#a19574', '#c17529', '#f2f2f2', '#7f7f7f', '#f7e09e', '#e1d6cf', '#fcecd5', '#eddfda', '#f0e7e5', '#f3eae1', '#ece9e3', '#f5e3d1', '#d8d8d8', '#595959', '#f3cc5f', '#c4ad9f', '#f9d9ab', '#dcc0b6', '#e1d0cc', '#e7d5c4', '#d9d4c7', '#ebc7a3', '#bfbfbf', '#3f3f3f', '#d29f0f', '#a78470', '#f6c781', '#cba092', '#d2b9b2', '#dbc1a7', '#c6bfab', '#e1ac76', '#a5a5a5', '#262626', '#694f07', '#3a2c24', '#c87d0e', '#7b4b3a', '#926255', '#a17242', '#7b7153', '#90571e', '#7f7f7f', '#0c0c0c', '#2a1f03', '#271d18', '#855309', '#523226', '#614138', '#6b4c2c', '#524b37', '#603a14'],\n columns: 10\n },\n verve: {\n colors: ['#ffffff', '#000000', '#d2d2d2', '#666666', '#ff388c', '#e40059', '#9c007f', '#68007f', '#005bd3', '#00349e', '#f2f2f2', '#7f7f7f', '#bdbdbd', '#e0e0e0', '#ffd7e8', '#ffc6dc', '#ffb8f1', '#f1b2ff', '#c3dcff', '#b8cfff', '#d8d8d8', '#595959', '#9d9d9d', '#c1c1c1', '#ffafd1', '#ff8eba', '#ff71e4', '#e365ff', '#87baff', '#72a0ff', '#bfbfbf', '#3f3f3f', '#696969', '#a3a3a3', '#ff87ba', '#ff5597', '#ff2ad7', '#d519ff', '#4b98ff', '#2b71ff', '#a5a5a5', '#262626', '#343434', '#4c4c4c', '#e90062', '#ab0042', '#75005f', '#4e005f', '#00449e', '#002676', '#7f7f7f', '#0c0c0c', '#151515', '#333333', '#9b0041', '#72002c', '#4e003f', '#34003f', '#002d69', '#00194f'],\n columns: 10\n },\n monochrome: {\n colors: ['#000000', '#1a1a1a', '#333333', '#4d4d4d', '#666666', '#808080', '#999999', '#b3b3b3', '#cccccc', '#e6e6e6', '#f2f2f2', '#ffffff'],\n columns: 12\n }\n};\n","import { parseColor as parse, Color } from '@progress/kendo-drawing';\nimport { isPresent, fitIntoBounds } from './misc';\n/**\n * @hidden\n *\n * Returns the hex or RGBA string representation of the color.\n */\nexport var parseColor = function (value, format, safe) {\n if (safe === void 0) { safe = true; }\n var allowedFormats = ['hex', 'rgba']; // TODO: constant?\n // Angular supports third type: name : const allowedFormats: Array = ['hex', 'rgba', 'name'];\n if (allowedFormats.indexOf(format) === -1) {\n throw new Error(\"Unsupported color output format '\" + format + \"'. The available options are 'hex' or 'rgba'.\");\n }\n if (!isPresent(value)) {\n return;\n }\n var parsedColor = parse(value.trim(), safe);\n if (!isPresent(parsedColor)) {\n return;\n }\n return format === 'hex' ? parsedColor.toCss() : parsedColor.toCssRgba();\n};\n/**\n * @hidden\n *\n * Returns an HSV object representation of the color string.\n */\nexport var getHSV = function (value, safe) {\n if (safe === void 0) { safe = true; }\n var parsed = parse(value, safe);\n if (!isPresent(parsed)) {\n return {};\n }\n return parsed.toHSV();\n};\n/**\n * @hidden\n *\n * Returns an RGBA object representation of the color string.\n */\nexport var getRGBA = function (value, safe) {\n if (safe === void 0) { safe = true; }\n var parsed = parse(value, safe);\n if (!isPresent(parsed)) {\n return {};\n }\n return parsed.toBytes();\n};\n/**\n * @hidden\n *\n * Returns the RGBA string representation of the color.\n */\nexport var getColorFromHSV = function (hsva) {\n var hue = fitIntoBounds(hsva.h, 0, 359.9);\n var saturation = fitIntoBounds(hsva.s, 0, 1);\n var value = fitIntoBounds(hsva.v, 0, 1);\n var alpha = fitIntoBounds(hsva.a, 0, 1);\n return Color.fromHSV(hue, saturation, value, alpha).toCssRgba();\n};\n/**\n * @hidden\n *\n * Returns the RGBA string representation of the color based on the `hue` and\n * assuming the `value`, `saturation`, and `alpha` have a value of `1`.\n */\nexport var getColorFromHue = function (hue) {\n return getColorFromHSV({ h: hue, s: 1, v: 1, a: 1 });\n};\n/**\n * @hidden\n *\n * Returns the RGBA string representation of the color.\n */\nexport var getColorFromRGBA = function (rgba) {\n var red = fitIntoBounds(rgba.r, 0, 255);\n var green = fitIntoBounds(rgba.g, 0, 255);\n var blue = fitIntoBounds(rgba.b, 0, 255);\n var alpha = fitIntoBounds(rgba.a, 0, 1);\n return Color.fromBytes(red, green, blue, alpha).toCssRgba();\n};\n/**\n * @hidden\n *\n * Returns the RGB object representation of the color based on the background color.\n */\nexport var getRGBFromRGBA = function (foregroundColor, backgroundColor) {\n var r1 = fitIntoBounds(foregroundColor.r, 0, 255);\n var g1 = fitIntoBounds(foregroundColor.g, 0, 255);\n var b1 = fitIntoBounds(foregroundColor.b, 0, 255);\n var a1 = fitIntoBounds(foregroundColor.a, 0, 1);\n var r2 = fitIntoBounds(backgroundColor.r, 0, 255);\n var g2 = fitIntoBounds(backgroundColor.g, 0, 255);\n var b2 = fitIntoBounds(backgroundColor.b, 0, 255);\n return {\n r: Math.round(((1 - a1) * r2) + (a1 * r1)),\n g: Math.round(((1 - a1) * g2) + (a1 * g1)),\n b: Math.round(((1 - a1) * b2) + (a1 * b1))\n };\n};\n/**\n * @hidden\n *\n * Returns the relative luminance.\n */\nexport var getLuminance = function (rgb) {\n // @ts-ignore\n var a = [rgb.r, rgb.g, rgb.b].map(function (v) {\n v /= 255;\n return v <= 0.03928\n ? v / 12.92\n : Math.pow((v + 0.055) / 1.055, 2.4);\n });\n // @ts-ignore\n return a[0] * 0.2126 + a[1] * 0.7152 + a[2] * 0.0722;\n};\n/**\n * @hidden\n *\n * Returns the color contrast.\n */\nexport var getContrast = function (luminance1, luminance2) {\n var brightest = Math.max(luminance1, luminance2);\n var darkest = Math.min(luminance1, luminance2);\n return (brightest + 0.05)\n / (darkest + 0.05);\n};\n/**\n * @hidden\n *\n * Returns the color contrast from two RGBA colors.\n */\nexport var getContrastFromTwoRGBAs = function (a, b) {\n return getContrast(getLuminance(getRGBFromRGBA(a, b)), getLuminance(getRGBFromRGBA(b, { r: 0, g: 0, b: 0, a: 1 })));\n};\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { ColorPaletteService } from './utils/color-palette.service';\nimport { classNames, Keys, getTabIndex, validatePackage } from '@progress/kendo-vue-common';\nimport { packageMetadata } from '../package-metadata';\nimport { PALETTEPRESETS } from './models/palette-presets';\nimport { isPresent } from './utils/misc';\nimport { parseColor } from './utils/color-parser';\n/**\n * @hidden\n */\n\nexport var DEFAULT_TILE_SIZE = 24;\n/**\n * @hidden\n */\n\nexport var DEFAULT_COLUMNS_COUNT = 10;\n/**\n * @hidden\n */\n\nexport var DEFAULT_PRESET = 'office'; // tslint:enable:max-line-length\n\nvar ColorPalette = {\n name: 'KendoColorPalette',\n props: {\n palette: {\n type: [String, Array],\n default: DEFAULT_PRESET\n },\n columns: Number,\n tileSize: {\n type: [Number, Object],\n default: DEFAULT_TILE_SIZE\n },\n defaultValue: String,\n value: String,\n disabled: Boolean,\n tabIndex: Number,\n id: String,\n ariaLabelledBy: String,\n ariaDescribedBy: String\n },\n created: function created() {\n validatePackage(packageMetadata);\n },\n mounted: function mounted() {\n this.wrapper = this.v3 ? this.wrapperRef : this.$refs.wrapper;\n },\n updated: function updated() {\n this.wrapper = this.v3 ? this.wrapperRef : this.$refs.wrapper;\n },\n computed: {\n focusedColorCooridanates: function focusedColorCooridanates() {\n return this.focusedColor ? this.paletteService.getCellCoordsFor(this.focusedColor) : undefined;\n },\n isUncontrolled: function isUncontrolled() {\n return this.$props.value === undefined;\n },\n selectedColor: function selectedColor() {\n return this.$props.value !== undefined ? this.$props.value : this.currentValue !== undefined ? this.currentValue : this.$props.defaultValue;\n }\n },\n data: function data() {\n return {\n focusedColor: undefined,\n currentValue: undefined,\n isFirstRender: true\n };\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var paletteInfo = this.getPaletteInfo();\n var svc = this.paletteService = new ColorPaletteService();\n svc.setColorMatrix(paletteInfo.colors, paletteInfo.columns);\n var selectedCellCoords = svc.getCellCoordsFor(this.selectedColor);\n var focusedCellCoords = svc.getCellCoordsFor(this.focusedColor);\n var className = classNames('k-colorpalette', {\n 'k-state-disabled': this.$props.disabled\n });\n\n var renderColumns = function renderColumns(columns, rowIndex, cSelectedCellCoords, cFocusedCellCoords) {\n var rowIsSelected = cSelectedCellCoords !== undefined && cSelectedCellCoords.row === rowIndex;\n var selectedColumn = cSelectedCellCoords && cSelectedCellCoords.col;\n var rowIsFocused = cFocusedCellCoords !== undefined && cFocusedCellCoords.row === rowIndex;\n var focusedColumn = cFocusedCellCoords && cFocusedCellCoords.col;\n var tileSize = typeof this.$props.tileSize !== 'number' ? this.$props.tileSize : {\n width: this.$props.tileSize,\n height: this.$props.tileSize\n };\n var width = tileSize.width + 'px';\n var height = tileSize.height + 'px';\n return columns.map(function (color, i) {\n var _this = this;\n\n var isSelected = rowIsSelected && selectedColumn === i;\n var tdClassName = classNames('k-colorpalette-tile', {\n 'k-state-selected': isSelected,\n 'k-state-focus': rowIsFocused && focusedColumn === i\n });\n return h(\"td\", {\n \"class\": tdClassName,\n \"aria-label\": color,\n attrs: this.v3 ? undefined : {\n \"aria-label\": color,\n \"aria-selected\": isSelected ? true : this.$props.disabled ? undefined : false,\n id: this.createCellId({\n row: rowIndex,\n col: i\n })\n },\n \"aria-selected\": isSelected ? true : this.$props.disabled ? undefined : false,\n style: {\n backgroundColor: color,\n width: width,\n height: height,\n minWidth: width\n },\n onClick: function onClick(event) {\n return _this.onColorClick(color, event);\n },\n on: this.v3 ? undefined : {\n \"click\": function onClick(event) {\n return _this.onColorClick(color, event);\n }\n },\n id: this.createCellId({\n row: rowIndex,\n col: i\n }),\n key: i\n });\n }, this);\n };\n\n var renderRows = function renderRows(rows, rSelectedCellCoords, rFocusedCellCoords) {\n return rows.map(function (row, i) {\n return h(\"tr\", {\n role: \"row\",\n attrs: this.v3 ? undefined : {\n role: \"row\"\n },\n key: i\n }, [renderColumns.call(this, row, i, rSelectedCellCoords, rFocusedCellCoords)]);\n }, this);\n };\n\n if (paletteInfo.colors.length) {\n return h(\"div\", {\n id: this.$props.id,\n attrs: this.v3 ? undefined : {\n id: this.$props.id,\n \"aria-disabled\": this.$props.disabled ? 'true' : undefined,\n \"aria-activedescendant\": selectedCellCoords && this.createCellId(selectedCellCoords),\n \"aria-labelledby\": this.$props.ariaLabelledBy,\n \"aria-describedby\": this.$props.ariaDescribedBy,\n tabIndex: getTabIndex(this.$props.tabIndex, this.$props.disabled)\n },\n \"class\": className,\n onFocusin: this.onFocus,\n on: this.v3 ? undefined : {\n \"focusin\": this.onFocus,\n \"focusout\": this.onBlur,\n \"keydown\": this.onKeyDown\n },\n onFocusout: this.onBlur,\n onKeydown: this.onKeyDown,\n \"aria-disabled\": this.$props.disabled ? 'true' : undefined,\n \"aria-activedescendant\": selectedCellCoords && this.createCellId(selectedCellCoords),\n \"aria-labelledby\": this.$props.ariaLabelledBy,\n \"aria-describedby\": this.$props.ariaDescribedBy,\n tabIndex: getTabIndex(this.$props.tabIndex, this.$props.disabled),\n ref: this.v3 ? function (el) {\n _this.wrapperRef = el;\n } : 'wrapper'\n }, [h(\"div\", {\n \"class\": \"k-colorpalette-table-wrap\",\n role: \"grid\",\n attrs: this.v3 ? undefined : {\n role: \"grid\"\n }\n }, [h(\"table\", {\n \"class\": \"k-colorpalette-table k-palette\",\n role: \"presentation\",\n attrs: this.v3 ? undefined : {\n role: \"presentation\"\n }\n }, [h(\"tbody\", [renderRows.call(this, svc.colorRows, selectedCellCoords, focusedCellCoords)])])])]);\n } else {\n // In this way, the code prevents an eventual focus of the component when no cells are available.\n // This is needed because upon focus the first cell gets focused.\n return '';\n }\n },\n methods: {\n focus: function focus() {\n if (this.wrapper) {\n this.wrapper.focus();\n }\n },\n getDerivedStateFromProps: function getDerivedStateFromProps(props, state) {\n if (!state.isFirstRender && props.value !== undefined) {\n // The component is in controlled mode.\n if (props.value === '' && state.selectedColor !== undefined) {\n // The selection has to be removed.\n return {\n selectedColor: undefined\n };\n } else if (props.value !== '' && props.value !== state.selectedColor) {\n return {\n selectedColor: props.value\n };\n }\n } else if (state.isFirstRender) {\n return {\n isFirstRender: false\n };\n }\n\n return null;\n },\n onKeyDown: function onKeyDown(event) {\n switch (event.keyCode) {\n case Keys.down:\n this.handleCellNavigation(0, 1);\n break;\n\n case Keys.up:\n this.handleCellNavigation(0, -1);\n break;\n\n case Keys.right:\n this.handleCellNavigation(1, 0);\n break;\n\n case Keys.left:\n this.handleCellNavigation(-1, 0);\n break;\n\n case Keys.enter:\n this.handleEnter(event);\n break;\n\n default:\n this.$emit('keydown', event);\n return;\n }\n\n event.preventDefault();\n this.$emit('keydown', event);\n },\n onColorClick: function onColorClick(color, event) {\n if (this.isUncontrolled) {\n this.currentValue = color;\n this.focusedColor = color;\n } else {\n this.focusedColor = color;\n }\n\n this.dispatchChangeEvent(color, event);\n },\n onFocus: function onFocus(event) {\n this.focusedColor = this.selectedColor || this.paletteService.colorRows[0][0];\n this.$emit('focus', {\n event: event,\n target: this\n });\n },\n onBlur: function onBlur(event) {\n this.focusedColor = undefined;\n this.$emit('blur', {\n event: event,\n target: this\n });\n },\n handleCellNavigation: function handleCellNavigation(horizontalStep, verticalStep) {\n if (this.focusedColorCooridanates) {\n var newCoords = this.paletteService.getNextCell(this.focusedColorCooridanates, horizontalStep, verticalStep);\n this.focusedColor = this.paletteService.getColorAt(newCoords);\n } else {\n this.focusedColor = this.paletteService.colorRows[0][0];\n }\n },\n handleEnter: function handleEnter(event) {\n if (this.isUncontrolled) {\n this.currentValue = this.focusedColor;\n }\n\n this.dispatchChangeEvent(this.focusedColor, event);\n },\n dispatchChangeEvent: function dispatchChangeEvent(value, event) {\n this.$emit('change', {\n event: event,\n component: this,\n value: value,\n rgbaValue: parseColor(value, 'rgba')\n });\n },\n getPaletteInfo: function getPaletteInfo() {\n if (typeof this.$props.palette === 'string') {\n var preset = PALETTEPRESETS[this.$props.palette];\n\n if (isPresent(preset)) {\n return {\n colors: preset.colors,\n columns: this.$props.columns || preset.columns || DEFAULT_COLUMNS_COUNT\n };\n } else {\n return {\n colors: [],\n columns: 0\n };\n }\n } else {\n return {\n colors: this.$props.palette || [],\n columns: this.$props.columns || DEFAULT_COLUMNS_COUNT\n };\n }\n },\n createCellId: function createCellId(cellCoords) {\n return this.guid + \"_\" + cellCoords.row + \"_\" + cellCoords.col;\n }\n }\n};\nvar ColorPaletteVue3 = ColorPalette;\nexport { ColorPalette, ColorPaletteVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { Popup } from '@progress/kendo-vue-popup';\nimport { classNames, getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * @hidden\n */\n\nvar ANCHOR_VERTICAL_ALIGN = 'bottom';\n/**\n * @hidden\n */\n\nvar POPUP_VERTICAL_ALIGN = 'top'; // tslint:enable:max-line-length\n\nvar Picker = {\n name: 'KendoPicker',\n props: {\n popupSettings: Object,\n dir: String,\n open: Boolean,\n popupAnchor: String\n },\n computed: {\n horizontalAlign: function horizontalAlign() {\n return this.$props.dir === 'rtl' ? 'right' : 'left';\n },\n anchorAlign: function anchorAlign() {\n return {\n horizontal: this.horizontalAlign,\n vertical: ANCHOR_VERTICAL_ALIGN\n };\n },\n popupAlign: function popupAlign() {\n return {\n horizontal: this.horizontalAlign,\n vertical: POPUP_VERTICAL_ALIGN\n };\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n var popupSettings = this.$props.popupSettings || {};\n return (// @ts-ignore function children\n h(Popup // style={{\n // ...(popupSettings || {}).style,\n // direction: this.$props.dir as any\n // }}\n // {...popupSettings}\n , {\n anchor: this.$props.popupAnchor,\n attrs: this.v3 ? undefined : {\n anchor: this.$props.popupAnchor,\n anchorAlign: this.anchorAlign,\n popupAlign: this.popupAlign,\n show: this.$props.open\n },\n anchorAlign: this.anchorAlign,\n popupAlign: this.popupAlign,\n show: this.$props.open,\n onOpen: this.onOpen,\n on: this.v3 ? undefined : {\n \"open\": this.onOpen,\n \"close\": this.onClose\n },\n onClose: this.onClose,\n \"class\": classNames('k-reset', popupSettings.className)\n }, this.v3 ? function () {\n return [defaultSlot];\n } : [defaultSlot])\n );\n },\n methods: {\n onOpen: function onOpen() {\n this.$emit('open');\n },\n onClose: function onClose() {\n this.$emit('close');\n }\n }\n};\nvar PickerVue3 = Picker;\nexport { Picker, PickerVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { classNames, Keys, // useDir, \ngetTabIndex, guid } from '@progress/kendo-vue-common';\nimport { validatePackage } from '@progress/kendo-vue-common';\nimport { packageMetadata } from '../package-metadata';\nimport { Picker } from './Picker';\nimport { ColorPalette, DEFAULT_PRESET, DEFAULT_TILE_SIZE } from './ColorPalette';\n/**\n * @hidden\n */\n\nvar DEFAULT_GRADIENT_SETTINGS = {\n opacity: true\n};\n/**\n * @hidden\n */\n\nvar DEFAULT_PALETTE_SETTINGS = {\n palette: DEFAULT_PRESET,\n tileSize: DEFAULT_TILE_SIZE\n};\n/**\n * @hidden\n */\n\nvar isControlled = function isControlled(prop) {\n return prop !== undefined;\n}; // tslint:enable:max-line-length\n\n\nvar ColorPicker = {\n name: 'KendoColorPicker',\n props: {\n value: {\n type: String,\n default: undefined\n },\n defaultValue: String,\n disabled: Boolean,\n dir: String,\n id: String,\n ariaLabelledBy: String,\n ariaDescribedBy: String,\n paletteSettings: {\n type: Object,\n default: function _default() {\n return DEFAULT_PALETTE_SETTINGS;\n }\n },\n valid: {\n type: Boolean,\n default: true\n },\n tabIndex: {\n type: Number,\n default: 0\n },\n title: String,\n icon: String,\n iconClassName: String,\n popupSettings: Object,\n open: {\n type: Boolean,\n default: undefined\n },\n size: {\n type: String,\n default: 'medium',\n validator: function validator(value) {\n return [null, 'small', 'medium', 'large'].includes(value);\n }\n },\n rounded: {\n type: String,\n default: 'medium',\n validator: function validator(value) {\n return [null, 'small', 'medium', 'large', 'pill'].includes(value);\n }\n },\n fillMode: {\n type: String,\n default: 'solid',\n validator: function validator(value) {\n return [null, 'solid', 'flat', 'outline'].includes(value);\n }\n }\n },\n data: function data() {\n return {\n focused: false,\n stateValue: '',\n stateOpen: false\n };\n },\n computed: {\n isValueControlled: function isValueControlled() {\n return isControlled(this.$props.value);\n },\n isOpenControlled: function isOpenControlled() {\n return isControlled(this.$props.open);\n },\n computedValue: function computedValue() {\n return this.isValueControlled ? this.$props.value : this.stateValue;\n },\n computedOpen: function computedOpen() {\n return this.isOpenControlled ? this.$props.open : this.stateOpen;\n },\n computedIconClassName: function computedIconClassName() {\n var icon = this.$props.icon;\n return this.$props.iconClassName || icon && \"k-icon k-i-\" + icon;\n },\n wrapperClassName: function wrapperClassName() {\n return {\n 'k-widget': true,\n 'k-colorpicker': true,\n 'k-state-invalid': this.valid === false\n };\n },\n spanClassName: function spanClassName() {\n var disabled = this.$props.disabled;\n return {\n 'k-picker-wrap': true,\n 'k-state-disabled': disabled,\n 'k-state-focused': this.focused\n };\n }\n },\n created: function created() {\n validatePackage(packageMetadata);\n this.focusableElementGuid = guid();\n },\n mounted: function mounted() {\n this.focusableElement = this.$refs[this.focusableElementGuid];\n this.button = this.v3 ? this.buttonRef : this.$refs.button;\n this.palette = this.v3 ? this.paletteRef : this.$refs.palette;\n },\n updated: function updated() {\n this.button = this.v3 ? this.buttonRef : this.$refs.button;\n this.palette = this.v3 ? this.paletteRef : this.$refs.palette;\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this2 = this;\n\n var _this = this;\n\n var h = gh || createElement;\n var _a = this.$props,\n disabled = _a.disabled,\n tabIndex = _a.tabIndex; // const dir = useDir(focusableElementGuid, props.dir);\n\n return h(\"span\", {\n \"class\": this.wrapperClassName\n }, [h(\"span\", {\n id: this.$props.id,\n attrs: this.v3 ? undefined : {\n id: this.$props.id,\n \"aria-labelledby\": this.$props.ariaLabelledBy,\n \"aria-describedby\": this.$props.ariaDescribedBy,\n tabIndex: getTabIndex(tabIndex, disabled),\n title: this.$props.title\n },\n \"aria-labelledby\": this.$props.ariaLabelledBy,\n \"aria-describedby\": this.$props.ariaDescribedBy,\n \"class\": this.spanClassName,\n ref: this.focusableElementGuid,\n tabIndex: getTabIndex(tabIndex, disabled),\n title: this.$props.title,\n onKeydown: this.onKeyDownHandler,\n on: this.v3 ? undefined : {\n \"keydown\": this.onKeyDownHandler,\n \"focusin\": this.onFocusHandler,\n \"focusout\": this.onBlurHandler\n },\n onFocusin: this.onFocusHandler,\n onFocusout: this.onBlurHandler\n }, [!this.computedIconClassName ? h(\"span\", {\n onClick: this.onActiveColorClickHandler,\n on: this.v3 ? undefined : {\n \"click\": this.onActiveColorClickHandler\n },\n \"class\": 'k-selected-color',\n style: {\n backgroundColor: this.computedValue\n }\n }, [!this.computedValue && h(\"span\", {\n \"class\": 'k-icon k-i-line'\n })]) : h(\"span\", {\n onClick: this.onActiveColorClickHandler,\n on: this.v3 ? undefined : {\n \"click\": this.onActiveColorClickHandler\n },\n \"class\": classNames('k-tool-icon', this.computedIconClassName)\n }, [h(\"span\", {\n \"class\": 'k-selected-color',\n style: {\n backgroundColor: this.computedValue\n }\n })]), h(\"span\", {\n onClick: this.onClickHandler,\n on: this.v3 ? undefined : {\n \"click\": this.onClickHandler\n },\n \"class\": 'k-select',\n ref: this.v3 ? function (el) {\n _this.buttonRef = el;\n } : 'button'\n }, [h(\"span\", {\n \"class\": 'k-icon k-i-arrow-s'\n })]), // @ts-ignore function children\n h(Picker // dir={dir}\n , {\n open: this.computedOpen,\n attrs: this.v3 ? undefined : {\n open: this.computedOpen,\n popupAnchor: this.focusableElementGuid\n },\n onOpen: this.onOpenHandler,\n on: this.v3 ? undefined : {\n \"open\": this.onOpenHandler\n },\n popupAnchor: this.focusableElementGuid\n }, this.v3 ? function () {\n return [// @ts-ignore function children\n h(ColorPalette, {\n onKeydown: _this2.onKeyDownHandler // {...paletteSettings}\n ,\n on: _this2.v3 ? undefined : {\n \"keydown\": _this2.onKeyDownHandler,\n \"change\": _this2.onPaletteChangeHandler\n },\n ref: _this2.v3 ? function (el) {\n _this.paletteRef = el;\n } : 'palette',\n value: _this2.computedValue || undefined,\n attrs: _this2.v3 ? undefined : {\n value: _this2.computedValue || undefined\n },\n onChange: _this2.onPaletteChangeHandler\n })];\n } : [h(ColorPalette, {\n onKeydown: _this2.onKeyDownHandler,\n on: _this2.v3 ? undefined : {\n \"keydown\": _this2.onKeyDownHandler,\n \"change\": _this2.onPaletteChangeHandler\n },\n ref: _this2.v3 ? function (el) {\n _this.paletteRef = el;\n } : 'palette',\n value: _this2.computedValue || undefined,\n attrs: _this2.v3 ? undefined : {\n value: _this2.computedValue || undefined\n },\n onChange: _this2.onPaletteChangeHandler\n })])])]);\n },\n methods: {\n focusElement: function focusElement() {\n if (this.focusableElement) {\n this.focusableElement.focus();\n }\n },\n setOpen: function setOpen(nextOpen, isBlur) {\n if (!this.isOpenControlled) {\n if (!nextOpen && !isBlur && this.focusableElement) {\n this.focusableElement.focus();\n }\n\n this.stateOpen = nextOpen;\n }\n },\n onKeyDownHandler: function onKeyDownHandler(event) {\n var altKey = event.altKey,\n keyCode = event.keyCode;\n\n if (keyCode === Keys.esc) {\n this.setOpen(false);\n return;\n }\n\n if (keyCode === Keys.enter && !this.isOpenControlled) {\n event.preventDefault();\n event.stopPropagation();\n this.setOpen(!this.computedOpen);\n return;\n }\n\n if (altKey && (keyCode === Keys.up || keyCode === Keys.down)) {\n event.preventDefault();\n event.stopPropagation();\n\n if (keyCode === Keys.up && this.focusableElement) {\n this.focusableElement.focus();\n this.setOpen(false);\n }\n\n if (keyCode === Keys.down) {\n this.setOpen(true);\n }\n }\n },\n onOpenHandler: function onOpenHandler() {\n // Skip content autofocus when in controlled mode\n if (!this.isOpenControlled) {\n if (this.palette) {\n this.palette.focus();\n }\n }\n },\n onClickHandler: function onClickHandler() {\n this.setOpen(!this.computedOpen, true);\n },\n onActiveColorClickHandler: function onActiveColorClickHandler(event) {\n this.$emit('activecolorclick', {\n event: event,\n value: this.computedValue\n });\n },\n onFocusHandler: function onFocusHandler(event) {\n if (this.blurTimeoutRef) {\n clearTimeout(this.blurTimeoutRef);\n this.blurTimeoutRef = undefined; // case where moving back to input from popup\n // if (event.target === this.focusableElement) {\n // this.setOpen(false); // in this case we should focus input on keydown\n // }\n } else {\n this.focused = true;\n }\n\n this.$emit('focus', {\n event: event\n });\n },\n onBlurTimeout: function onBlurTimeout() {\n if (this.palette && document.activeElement !== this.palette.$el) {\n this.setOpen(false, true);\n this.focused = false;\n }\n\n this.blurTimeoutRef = undefined;\n },\n onBlurHandler: function onBlurHandler(event) {\n clearTimeout(this.blurTimeoutRef);\n this.blurTimeoutRef = window.setTimeout(this.onBlurTimeout, 200);\n this.$emit('blur', {\n event: event\n });\n },\n onChangeHandler: function onChangeHandler(event, isPalette) {\n var currentValue = isPalette ? event.rgbaValue : event.value;\n\n if (!this.isValueControlled) {\n this.stateValue = currentValue;\n }\n\n if (isPalette) {\n this.setOpen(false);\n }\n\n this.$emit('change', {\n value: currentValue,\n event: event\n });\n },\n onPaletteChangeHandler: function onPaletteChangeHandler(event) {\n this.onChangeHandler(event, true);\n }\n }\n};\nvar ColorPickerVue3 = ColorPicker;\nexport { ColorPicker, ColorPickerVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { guid, noop, Keys, getTabIndex, validatePackage, isRtl } from '@progress/kendo-vue-common';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { messages, switchValidation } from './../messages';\nimport { packageMetadata } from '../package-metadata';\nvar SWITCH_CONTAINER = 'k-switch-container';\nvar SWITCH_HANDLE = 'k-switch-handle';\nvar SWITCH_LABEL_ON = 'k-switch-label-on';\nvar SWITCH_LABEL_OFF = 'k-switch-label-off'; // tslint:enable:max-line-length\n\nvar Switch = {\n name: 'KendoSwitch',\n model: {\n event: 'changemodel'\n },\n // @ts-ignore\n emits: {\n 'change': null,\n 'changemodel': null,\n 'update:modelValue': null,\n 'focus': null,\n 'blur': null\n },\n props: {\n accessKey: String,\n checked: {\n type: Boolean,\n default: undefined\n },\n className: String,\n disabled: {\n type: Boolean,\n default: false\n },\n defaultChecked: {\n type: Boolean,\n default: false\n },\n dir: String,\n id: String,\n ariaLabelledBy: String,\n ariaDescribedBy: String,\n offLabel: {\n type: String,\n default: 'OFF'\n },\n onLabel: {\n type: String,\n default: 'ON'\n },\n required: {\n type: Boolean,\n default: false\n },\n tabIndex: Number,\n valid: Boolean,\n // validate: {\n // type: Boolean,\n // default: false\n // },\n validityStyles: {\n type: Boolean,\n default: false\n },\n validationMessage: String,\n value: {\n type: [String, Number, Boolean],\n default: undefined\n },\n modelValue: {\n type: Boolean,\n default: undefined\n }\n },\n created: function created() {\n validatePackage(packageMetadata);\n this._id = guid();\n this.defaultValidationMessage = provideLocalizationService(this);\n },\n data: function data() {\n return {\n currentChecked: this.$props.defaultChecked,\n valueDuringOnChange: undefined,\n focused: false,\n currentDir: undefined\n };\n },\n computed: {\n computedValue: function computedValue() {\n return this.valueDuringOnChange !== undefined ? this.valueDuringOnChange : this.$props.checked !== undefined ? this.$props.checked : this.$props.value !== undefined ? this.$props.value : this.$props.modelValue !== undefined ? this.$props.modelValue : this.currentChecked;\n },\n switchClassName: function switchClassName() {\n var isValid = !this.validityStyles || this.validity().valid;\n return {\n 'k-widget': true,\n 'k-switch': true,\n 'k-switch-on': this.computedValue,\n 'k-switch-off': !this.computedValue,\n 'k-state-focused': this.focused,\n 'k-state-disabled': this.$props.disabled,\n 'k-state-invalid': !isValid\n };\n }\n },\n mounted: function mounted() {\n this._element = this.v3 ? this.elementRef : this.$refs.element;\n this.input = this.v3 ? this.inputRef : this.$refs.input;\n this.currentDir = this.$props.dir !== undefined ? this.$props.dir : isRtl(this.$el) ? 'rtl' : 'ltr';\n this.setValidity();\n },\n updated: function updated() {\n this.setValidity();\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var _a = this.$props,\n disabled = _a.disabled,\n id = _a.id,\n offLabel = _a.offLabel,\n onLabel = _a.onLabel,\n tabIndex = _a.tabIndex;\n return h(\"span\", {\n \"class\": this.switchClassName,\n dir: this.currentDir,\n attrs: this.v3 ? undefined : {\n dir: this.currentDir\n },\n onKeydown: this.handleKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.handleKeyDown,\n \"click\": this.handleClick,\n \"focusout\": this.handleWrapperBlur,\n \"focusin\": this.handleWrapperFocus\n },\n onClick: this.handleClick,\n onFocusout: this.handleWrapperBlur,\n onFocusin: this.handleWrapperFocus\n }, [h(\"span\", {\n \"class\": SWITCH_CONTAINER,\n id: id || this._id,\n attrs: this.v3 ? undefined : {\n id: id || this._id,\n role: 'switch',\n \"aria-checked\": this.computedValue,\n \"aria-disabled\": disabled || undefined,\n \"aria-labelledby\": this.$props.ariaLabelledBy,\n \"aria-describedby\": this.$props.ariaDescribedBy,\n tabIndex: getTabIndex(tabIndex, disabled, undefined),\n accessKey: this.$props.accessKey\n },\n role: 'switch',\n \"aria-checked\": this.computedValue,\n \"aria-disabled\": disabled || undefined,\n \"aria-labelledby\": this.$props.ariaLabelledBy,\n \"aria-describedby\": this.$props.ariaDescribedBy,\n ref: this.v3 ? function (el) {\n _this.elementRef = el;\n } : 'element',\n tabIndex: getTabIndex(tabIndex, disabled, undefined),\n accessKey: this.$props.accessKey\n }, [h(\"input\", {\n type: \"checkbox\",\n attrs: this.v3 ? undefined : {\n type: \"checkbox\",\n tabIndex: -1,\n \"aria-hidden\": true\n },\n checked: this.v3 ? this.$props.checked : null,\n domProps: this.v3 ? undefined : {\n \"checked\": this.$props.checked,\n \"value\": this.computedValue\n },\n ref: this.v3 ? function (el) {\n _this.inputRef = el;\n } : 'input',\n tabIndex: -1,\n \"aria-hidden\": true,\n value: this.v3 ? this.computedValue : null,\n style: {\n opacity: 0,\n width: 1,\n border: 0,\n zIndex: -1,\n position: 'absolute',\n left: '50%'\n },\n onChange: noop,\n on: this.v3 ? undefined : {\n \"change\": noop\n }\n }), h(\"span\", {\n \"class\": SWITCH_LABEL_ON\n }, [onLabel]), h(\"span\", {\n \"class\": SWITCH_LABEL_OFF\n }, [offLabel]), h(\"span\", {\n \"class\": SWITCH_HANDLE\n })])]);\n },\n methods: {\n focus: function focus() {\n if (this._element) {\n this._element.focus();\n }\n },\n element: function element() {\n return this._element;\n },\n name: function name() {\n return this.$props.name;\n },\n validity: function validity() {\n var customError = this.$props.validationMessage !== undefined;\n var isValid = this.$props.valid !== undefined ? this.$props.valid : !this.$props.required ? true : this.computedValue ? true : false;\n var valid = this.$props.valid !== undefined ? this.$props.valid : isValid;\n return {\n customError: customError,\n valid: valid,\n valueMissing: this.computedValue === null\n };\n },\n setValidity: function setValidity() {\n if (this.input && this.input.setCustomValidity) {\n this.input.setCustomValidity(this.validity().valid ? '' : this.$props.validationMessage || this.defaultValidationMessage.toLanguageString(switchValidation, messages[switchValidation]));\n }\n },\n limit: function limit(offset, drag, wrapper) {\n var wrapperWidth = wrapper.offsetWidth;\n var margin = drag.offsetWidth;\n\n if (offset < 0) {\n return 0;\n } else if (offset > wrapperWidth - margin) {\n return wrapperWidth - margin;\n }\n\n return offset;\n },\n toggle: function toggle(value, event) {\n this.currentChecked = value;\n this.valueDuringOnChange = value;\n this.$emit('change', {\n event: event,\n component: this,\n target: {\n value: value\n },\n name: this.$props.name,\n value: value,\n validity: this.validity()\n });\n this.$emit('changemodel', value);\n this.$emit('update:modelValue', value);\n this.valueDuringOnChange = undefined;\n },\n handleClick: function handleClick(event) {\n if (this.eventTimeStamp === event.timeStamp) {\n // This is guard against the case when wrapped in label, click event is emmited twice\n return;\n }\n\n this.eventTimeStamp = event.timeStamp;\n this.toggle(!this.computedValue, event);\n },\n handleKeyDown: function handleKeyDown(event) {\n if (this.$props.disabled) {\n return;\n }\n\n var keyCode = event.keyCode;\n\n if (keyCode === Keys.space || keyCode === Keys.enter) {\n this.toggle(!this.computedValue, event);\n }\n },\n handleWrapperFocus: function handleWrapperFocus(event) {\n if (this.$props.disabled) {\n return;\n }\n\n this.focused = true;\n this.$emit('focus', event);\n },\n handleWrapperBlur: function handleWrapperBlur(event) {\n if (this.$props.disabled) {\n return;\n }\n\n this.focused = false;\n this.$emit('blur', event);\n }\n }\n};\nvar SwitchVue3 = Switch;\nexport { Switch, SwitchVue3 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nimport { guid, noop, validatePackage } from '@progress/kendo-vue-common';\nimport { packageMetadata } from '../package-metadata';\nimport { FloatingLabel } from '@progress/kendo-vue-labels';\nvar Input = {\n model: {\n event: 'changemodel'\n },\n inheritAttrs: false,\n // @ts-ignore\n emits: {\n 'input': null,\n 'change': null,\n 'changemodel': null,\n 'update:modelValue': null,\n 'focus': null,\n 'blur': null\n },\n props: {\n modelValue: {\n type: [String, Number],\n default: undefined\n },\n defaultValue: {\n type: [String, Number],\n default: ''\n },\n value: {\n type: [String, Number]\n },\n label: {\n type: String\n },\n placeholder: {\n type: String\n },\n required: {\n type: Boolean,\n default: false\n },\n dir: {\n type: String\n },\n id: String,\n valid: {\n type: Boolean,\n default: undefined\n },\n validate: {\n type: Boolean\n },\n validationMessage: {\n type: String\n },\n validityStyles: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n return {\n hasMounted: false,\n autofill: false,\n currentValue: '',\n valueDuringOnChange: '',\n input: null,\n inputId: guid(),\n focused: false\n };\n },\n created: function created() {\n validatePackage(packageMetadata);\n this.$data.valueDuringOnChange = undefined;\n this.$data.currentValue = this.$props.defaultValue;\n },\n mounted: function mounted() {\n this.$data.input = this.v3 ? this.inputRef : this.$refs.input;\n this.$data.hasMounted = true;\n this.setValidity();\n },\n updated: function updated() {\n this.setValidity();\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var inputRef = ref(null);\n return {\n v3: v3,\n inputRef: inputRef\n };\n },\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var listeners = this.v3 ? this.$attrs : this.$listeners;\n var isValid = !this.$props.validityStyles || this.validity().valid;\n var hasInput = Object.keys(this.$attrs).some(function (attr) {\n return attr === 'onInput';\n });\n var hasModel = Object.keys(this.$attrs).some(function (attr) {\n return attr === 'onUpdate:modelValue';\n });\n var _a = this.$props,\n label = _a.label,\n id = _a.id,\n required = _a.required;\n var inputId = id || this.$data.inputId;\n var textbox = h('input', __assign(__assign({\n domProps: this.v3 ? null : __assign(__assign({}, this.$attrs), {\n placeholder: this.$props.placeholder,\n id: inputId,\n required: required,\n value: this.computedValue\n })\n }, this.$attrs), {\n placeholder: this.$props.placeholder,\n id: inputId,\n required: required,\n value: this.computedValue,\n class: __assign({}, this.inputClassNames()),\n ref: this.v3 ? function (el) {\n _this.inputRef = el;\n } : 'input',\n on: this.v3 ? null : {\n change: this.handleChange,\n focus: this.emitFocus,\n blur: this.emitBlur,\n input: listeners.input || listeners.changemodel ? this.handleInput : noop,\n animationstart: this.handleAutoFill,\n animationend: this.handleAutoFillEnd\n },\n onChange: this.handleChange,\n onFocus: this.emitFocus,\n onBlur: this.emitBlur,\n onInput: this.handleInput,\n onAnimationstart: this.handleAutoFill,\n onAnimationend: this.handleAutoFillEnd\n }));\n return label ? // @ts-ignore function children\n h(FloatingLabel, {\n label: label,\n attrs: this.v3 ? undefined : {\n label: label,\n editorId: inputId,\n editorValue: this.computedValue,\n editorValid: isValid,\n editorDisabled: this.$props.disabled,\n editorPlaceholder: this.$data.focused ? this.$props.placeholder : '',\n dir: this.$props.dir\n },\n editorId: inputId,\n editorValue: this.computedValue,\n editorValid: isValid,\n editorDisabled: this.$props.disabled,\n editorPlaceholder: this.$data.focused ? this.$props.placeholder : '',\n dir: this.$props.dir\n }, this.v3 ? function () {\n return [textbox];\n } : [textbox]) : textbox;\n },\n methods: {\n emitFocus: function emitFocus(e) {\n this.$emit('focus', e);\n this.$data.focused = true;\n },\n emitBlur: function emitBlur(e) {\n this.$emit('blur', e);\n this.$data.focused = false;\n },\n focus: function focus() {\n if (this.$data.input) {\n this.$data.input.focus();\n }\n },\n inputClassNames: function inputClassNames() {\n var isValid = !this.$data.hasMounted || !this.$props.validityStyles || this.validity().valid;\n return {\n 'k-textbox': true,\n 'k-state-invalid': !isValid && isValid !== undefined\n };\n },\n validity: function validity() {\n var result = {\n badInput: this.$data.input ? this.$data.input.validity.badInput : false,\n patternMismatch: this.$data.input ? this.$data.input.validity.patternMismatch : false,\n rangeOverflow: this.$data.input ? this.$data.input.validity.rangeOverflow : false,\n rangeUnderflow: this.$data.input ? this.$data.input.validity.rangeUnderflow : false,\n stepMismatch: this.$data.input ? this.$data.input.validity.stepMismatch : false,\n tooLong: this.$data.input ? this.$data.input.validity.tooLong : false,\n typeMismatch: this.$data.input ? this.$data.input.validity.typeMismatch : false,\n valueMissing: this.$data.input ? this.$data.input.validity.valueMissing : false\n };\n return __assign(__assign({}, result), {\n customError: this.$props.validationMessage !== undefined,\n valid: this.$props.valid !== undefined ? this.$props.valid : this.$data.input ? !this.isInvalid(result) : true\n });\n },\n isInvalid: function isInvalid(state) {\n var result = false;\n\n for (var prop in state) {\n if (state.hasOwnProperty(prop)) {\n result = result || state[prop];\n }\n }\n\n return result;\n },\n setValidity: function setValidity() {\n if (this.$data.input && this.$data.input.setCustomValidity) {\n this.$data.input.setCustomValidity(this.validity().valid ? '' : this.$props.validationMessage || '');\n }\n },\n handleInput: function handleInput(event) {\n var that = this;\n this.$data.currentValue = event.target.value;\n this.$data.valueDuringOnChange = event.target.value;\n this.$nextTick(function () {\n that.$emit('input', {\n event: event,\n value: event.target.value,\n component: that,\n target: event.target,\n validity: that.validity()\n });\n that.$emit('changemodel', event.target.value);\n that.$emit('update:modelValue', event.target.value);\n that.$data.valueDuringOnChange = undefined;\n });\n },\n handleChange: function handleChange(event) {\n var that = this;\n this.$data.currentValue = event.target.value;\n this.$data.valueDuringOnChange = event.target.value;\n this.$nextTick(function () {\n that.$emit('change', {\n event: event,\n value: event.target.value,\n component: that,\n target: event.target,\n validity: that.validity()\n });\n that.$emit('changemodel', event.target.value);\n that.$emit('update:modelValue', event.target.value);\n that.$data.valueDuringOnChange = undefined;\n });\n },\n handleAutoFill: function handleAutoFill(e) {\n if (e.animationName === 'autoFillStart') {\n var parent_1 = e.target.parentNode;\n\n if (parent_1 && parent_1.classList.contains('k-state-empty')) {\n this.$data.autofill = true;\n parent_1.classList.remove('k-state-empty');\n }\n }\n },\n handleAutoFillEnd: function handleAutoFillEnd(e) {\n if (e.animationName === 'autoFillEnd') {\n var parent_2 = e.target.parentNode;\n\n if (parent_2) {\n this.$data.autofill = false;\n }\n }\n },\n name: function name() {\n return this.$props.name;\n }\n },\n computed: {\n spanClassNames: {\n get: function get() {\n var isValid = !this.$data.hasMounted || !this.$props.validityStyles || this.validity().valid;\n return {\n 'k-floating-label-container': true,\n 'k-state-focused': this.$data.focused,\n 'k-state-empty': !((this.computedValue === 0 ? true : this.computedValue) || this.$props.placeholder || this.$data.autofill),\n 'k-autofill': this.$data.autofill,\n 'k-state-invalid': !isValid && isValid !== undefined,\n 'k-rtl': this.$props.dir === 'rtl'\n };\n }\n },\n computedValue: {\n get: function get() {\n return this.$data.valueDuringOnChange !== undefined ? this.$data.valueDuringOnChange : this.$props.value !== undefined ? this.$props.value : this.$props.modelValue !== undefined ? this.$props.modelValue : this.$data.currentValue;\n }\n }\n }\n};\nvar InputVue3 = Input;\nexport { Input, InputVue3 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar DEFAULT_NUMBER = 1111111.1111111;\nvar MAX_DECIMAL = 0.31111111111111117;\nvar MIN_DECIMAL = 1;\nvar ONE_NUMBER = 1;\nvar ZERO_NUMBER = 0;\nvar DIGITS_REGEX = /\\d/;\n/**\n * @hidden\n */\n\nexport var getInitialState = function getInitialState() {\n return {\n eventValue: null,\n prevLooseValue: '',\n currentLooseValue: '',\n focused: false,\n selectionStart: undefined,\n selectionEnd: undefined,\n decimalSelect: false,\n valueIsCorrected: false,\n valueIsOutOfRange: false\n };\n};\n/**\n * @hidden\n */\n\nexport var getStateOrPropsValue = function getStateOrPropsValue(value, stateValue) {\n return value !== undefined ? value : stateValue;\n};\n/**\n * @hidden\n */\n\nexport var formatValue = function formatValue(value, format, intlService) {\n if (value === null && value === undefined) {\n return '';\n }\n\n if (typeof value === 'string') {\n return value;\n }\n\n return intlService.formatNumber(value, format);\n};\n/**\n * @hidden\n */\n\nexport var increaseValue = function increaseValue(value, newState, step, min, max, format, intlService) {\n var increasedValue = rangeValue((value || 0) + (step || 0), min, max);\n newState.eventValue = increasedValue;\n newState.currentLooseValue = formatValue(increasedValue, format, intlService);\n newState.selectionStart = newState.selectionEnd = getLastNumberIndex(newState.currentLooseValue, DIGITS_REGEX);\n};\n/**\n * @hidden\n */\n\nexport var decreaseValue = function decreaseValue(value, newState, step, min, max, format, intlService) {\n var decreasedValue = rangeValue((value || 0) - (step || 0), min, max);\n newState.eventValue = decreasedValue;\n newState.currentLooseValue = formatValue(decreasedValue, format, intlService);\n newState.selectionStart = newState.selectionEnd = getLastNumberIndex(newState.currentLooseValue, DIGITS_REGEX);\n};\n/**\n * @hidden\n */\n\nexport var rangeValue = function rangeValue(value, min, max) {\n if (value == null) {\n return value;\n }\n\n if (!(value > 1 || value < 1 || value === 1)) {\n // null, undefined or NaN\n return null;\n }\n\n if (max !== undefined && min !== undefined && max < min) {\n return null;\n }\n\n if (max !== undefined && value > max) {\n value = max;\n }\n\n if (min !== undefined && value < min) {\n value = min;\n }\n\n return value;\n};\n/**\n * @hidden\n */\n\nexport var getMaxCursorPosition = function getMaxCursorPosition(nextValue, formatInfo) {\n var formatSuffixIndex = formatInfo.findIndex(function (_a) {\n var _ = _a[0],\n currSuffix = _a[1];\n return Boolean(currSuffix) && nextValue.indexOf(currSuffix) === nextValue.length - currSuffix.length;\n });\n\n if (formatSuffixIndex === -1) {\n return -1;\n }\n\n var suffix = formatInfo[formatSuffixIndex][1];\n return nextValue.length - suffix.length;\n};\n/**\n * @hidden\n */\n\nexport var getMinCursorPosition = function getMinCursorPosition(nextValue, formatInfo) {\n var formatPrefixIndex = formatInfo.findIndex(function (_a) {\n var currPrefix = _a[0],\n _ = _a[1];\n return Boolean(currPrefix) && nextValue.indexOf(currPrefix) === 0;\n });\n\n if (formatPrefixIndex === -1) {\n return -1;\n }\n\n var prefix = formatInfo[formatPrefixIndex][0];\n return prefix.length;\n};\n/**\n * @hidden\n */\n\nexport var rangeSelection = function rangeSelection(nextLooseValue, formatInfo, newState) {\n var maxPosition = getMaxCursorPosition(nextLooseValue, formatInfo);\n\n if (maxPosition !== -1 && newState.selectionStart > maxPosition) {\n newState.selectionStart = newState.selectionEnd = maxPosition;\n return;\n }\n\n if (newState.selectionStart > nextLooseValue.length) {\n newState.selectionStart = newState.selectionEnd = nextLooseValue.length;\n }\n\n var minPosition = getMinCursorPosition(nextLooseValue, formatInfo);\n\n if (minPosition !== -1 && newState.selectionStart < minPosition) {\n newState.selectionStart = newState.selectionEnd = minPosition;\n }\n\n if (newState.selectionStart === -1) {\n newState.selectionStart = newState.selectionEnd = 0;\n }\n};\n/**\n * @hidden\n */\n\nexport var setSelection = function setSelection(newState, newIndex, nextLooseValue, formatInfo) {\n newState.selectionStart = newState.selectionEnd = newIndex;\n rangeSelection(nextLooseValue, formatInfo, newState);\n};\n/**\n * @hidden\n */\n\nexport var setInvalid = function setInvalid(newState, format, formatInfo, intlService) {\n newState.eventValue = intlService.parseNumber(newState.prevLooseValue, format);\n newState.currentLooseValue = newState.prevLooseValue;\n newState.valueIsCorrected = true;\n setSelection(newState, newState.selectionStart, newState.currentLooseValue, formatInfo);\n};\n/**\n * @hidden\n */\n\nexport var isMinusSymbolAdded = function isMinusSymbolAdded(newState, symbols) {\n var newText = String(newState.currentLooseValue);\n var oldText = String(newState.prevLooseValue);\n return newText.split(symbols.minusSign).length !== oldText.split(symbols.minusSign).length && newText.length === oldText.length + symbols.minusSign.length;\n};\n/**\n * @hidden\n */\n\nexport var isDecimalDuplicated = function isDecimalDuplicated(newState, symbols) {\n var newText = String(newState.currentLooseValue);\n return newText.split(symbols.decimal).length > 2;\n};\n/**\n * @hidden\n */\n\nexport var getFormatPrefixSufix = function getFormatPrefixSufix(format, intlService) {\n var positiveResult = intlService.formatNumber(DEFAULT_NUMBER, format);\n var negativeResult = intlService.formatNumber(-DEFAULT_NUMBER, format);\n var zeroResult = intlService.formatNumber(ZERO_NUMBER, format);\n var oneResult = intlService.formatNumber(ONE_NUMBER, format);\n var positivePrefix = getPrefix(positiveResult);\n var negativePrefix = getPrefix(negativeResult);\n var zeroPrefix = getPrefix(zeroResult);\n var onePrefix = getPrefix(oneResult);\n var positiveSuffix = getSuffix(positiveResult);\n var negativeSuffix = getSuffix(negativeResult);\n var zeroSuffix = getSuffix(zeroResult);\n var oneSuffix = getSuffix(oneResult);\n return {\n positiveInfo: [positivePrefix, positiveSuffix],\n negativeInfo: [negativePrefix, negativeSuffix],\n zeroInfo: [zeroPrefix, zeroSuffix],\n oneInfo: [onePrefix, oneSuffix]\n };\n};\n/**\n * @hidden\n */\n\nexport var getFormatSymbols = function getFormatSymbols(format, intlService) {\n var positiveResult = intlService.formatNumber(DEFAULT_NUMBER, format);\n var negativeResult = intlService.formatNumber(-DEFAULT_NUMBER, format);\n var zeroResult = intlService.formatNumber(ZERO_NUMBER, format);\n var oneResult = intlService.formatNumber(ONE_NUMBER, format);\n var symbols = intlService.numberSymbols();\n var sanitizeRegex = new RegExp(\"[\\\\d\\\\\" + symbols.decimal + symbols.group + \"]\", 'g');\n var resultWithDuplicates = [positiveResult, negativeResult, zeroResult, oneResult].map(function (result) {\n return result.replace(sanitizeRegex, '');\n }).join('');\n return resultWithDuplicates.split('').filter(function (x, n, s) {\n return s.indexOf(x) === n;\n }).join('');\n};\n/**\n * @hidden\n */\n\nexport var getInitialPosition = function getInitialPosition(nextLooseValue, symbols) {\n var decimalIdex = nextLooseValue.indexOf(symbols.decimal);\n\n if (decimalIdex > -1) {\n return decimalIdex;\n }\n\n return getLastNumberIndex(nextLooseValue, DIGITS_REGEX);\n};\n/**\n * @hidden\n */\n\nexport var reverseString = function reverseString(str) {\n return str.split('').reverse().join('');\n};\n/**\n * @hidden\n */\n\nexport var getLastNumberIndex = function getLastNumberIndex(currentLooseValue, inputRegex) {\n return currentLooseValue.length - reverseString(currentLooseValue).search(inputRegex);\n};\n/**\n * @hidden\n */\n\nexport var getPrefix = function getPrefix(str) {\n return str.split(str[str.search(DIGITS_REGEX)])[0];\n};\n/**\n * @hidden\n */\n\nexport var getSuffix = function getSuffix(str) {\n var reversedString = reverseString(str);\n return reverseString(reversedString.split(reversedString[reversedString.search(DIGITS_REGEX)])[0]);\n};\n/**\n * @hidden\n */\n\nexport var getFirstNumberIndex = function getFirstNumberIndex(prevLooseValue, inputRegex) {\n return prevLooseValue.search(inputRegex);\n};\n/**\n * @hidden\n */\n\nexport var getDecimalCount = function getDecimalCount(value, decimal) {\n var currentDecimalPlace = value.indexOf(decimal);\n return currentDecimalPlace > -1 ? value.length - currentDecimalPlace - 1 : 0;\n};\n/**\n * @hidden\n */\n\nexport var changeBasedSelection = function changeBasedSelection(currentValue, nextValue, selectionPosition, isDelete, sanitizeRegex) {\n var isCurrentLeadingZero = currentValue.replace(sanitizeRegex, '')[0] === '0';\n var isNextLeadingZero = nextValue.replace(sanitizeRegex, '')[0] === '0';\n\n if (isCurrentLeadingZero && !isNextLeadingZero) {\n return selectionPosition - 1;\n }\n\n if (isNextLeadingZero && isDelete) {\n return selectionPosition + 1;\n }\n\n var numberCounter = 0;\n\n for (var idx = 0; idx < selectionPosition; idx++) {\n if (DIGITS_REGEX.test(currentValue.charAt(idx))) {\n numberCounter++;\n }\n }\n\n var newSelection = 0;\n\n while (numberCounter > 0 && nextValue.length > newSelection) {\n if (DIGITS_REGEX.test(nextValue.charAt(newSelection))) {\n numberCounter--;\n }\n\n newSelection++;\n }\n\n return newSelection;\n};\n/**\n * @hidden\n */\n\nexport var sanitizeNumber = function sanitizeNumber(state, // NumericTextBoxData,\nformat, intlService) {\n var newState = __assign({}, state);\n\n var prevLooseValue = newState.prevLooseValue;\n var symbols = intlService.numberSymbols();\n var restrictedSymbols = getFormatSymbols(format, intlService);\n var currentLooseValueAsString = String(newState.currentLooseValue);\n var prevLooseValueAsString = String(prevLooseValue);\n var sanitizeRegex = new RegExp(\"[^\\\\d\\\\\" + symbols.decimal + \"]\", 'g');\n var sanitizeGroupRegex = new RegExp(\"[^\\\\d\\\\\" + symbols.decimal + \"\\\\\" + symbols.group + \"]\", 'g');\n var allSymbolsRegex = new RegExp(\"[\\\\d\\\\\" + symbols.decimal + \"\\\\\" + symbols.group + \"]\");\n var sanitizedString = currentLooseValueAsString.replace(sanitizeRegex, '');\n var numberStart = getFirstNumberIndex(currentLooseValueAsString, DIGITS_REGEX);\n var numberEnd = numberStart === -1 ? -1 : getLastNumberIndex(currentLooseValueAsString, DIGITS_REGEX);\n var decimalIndex = currentLooseValueAsString.indexOf(symbols.decimal);\n var sanitizedFormattedString = (currentLooseValueAsString.substring(0, numberStart) + currentLooseValueAsString.substring(numberStart, numberEnd).replace(sanitizeGroupRegex, '') + currentLooseValueAsString.substring(numberEnd, currentLooseValueAsString.length)).split('').filter(function (s) {\n return restrictedSymbols.indexOf(s) !== -1 || s.search(allSymbolsRegex) !== -1;\n }).join('');\n var formattedMax = intlService.formatNumber(MAX_DECIMAL, format).replace(sanitizeRegex, '');\n var maxDecimalIndex = formattedMax.indexOf(symbols.decimal);\n var maxDecimalCount = maxDecimalIndex > -1 ? formattedMax.length - maxDecimalIndex - 1 : 0;\n var formattedMin = intlService.formatNumber(MIN_DECIMAL, format).replace(sanitizeRegex, '');\n var minDecimalIndex = formattedMin.indexOf(symbols.decimal);\n var minDecimalCount = minDecimalIndex > -1 ? formattedMin.length - minDecimalIndex - 1 : 0;\n\n var _a = getFormatPrefixSufix(format, intlService),\n positiveInfo = _a.positiveInfo,\n negativeInfo = _a.negativeInfo,\n zeroInfo = _a.zeroInfo,\n oneInfo = _a.oneInfo;\n\n var formatInfo = [positiveInfo, negativeInfo, zeroInfo, oneInfo];\n var isFormatContainPrefixSuffix = formatInfo.findIndex(function (info) {\n return info.findIndex(function (nestedInfo) {\n return Boolean(nestedInfo);\n }) !== -1;\n }) !== 1;\n var isDelete = currentLooseValueAsString.length > 0 && currentLooseValueAsString.length < prevLooseValueAsString.length;\n\n if (!newState.isPaste) {\n // 1. Empty input\n if (currentLooseValueAsString === '') {\n newState.eventValue = null;\n newState.currentLooseValue = '';\n return newState;\n } // 2. Check is minus sign\n\n\n if (newState.currentLooseValue === symbols.minusSign && intlService.formatNumber(-0, format) !== prevLooseValueAsString) {\n newState.eventValue = -0;\n newState.currentLooseValue = formatValue(newState.eventValue, format, intlService);\n setSelection(newState, getInitialPosition(newState.currentLooseValue, symbols), newState.currentLooseValue, formatInfo);\n return newState;\n } // 3. Minus sign toggle\n\n\n if (isMinusSymbolAdded(newState, symbols)) {\n var nextValue = intlService.parseNumber(prevLooseValue, format);\n newState.eventValue = -(nextValue !== null ? nextValue : 0);\n newState.currentLooseValue = formatValue(newState.eventValue, format, intlService);\n var currentNumberStart = getFirstNumberIndex(newState.currentLooseValue, DIGITS_REGEX);\n var oldNumberStart = getFirstNumberIndex(prevLooseValueAsString, DIGITS_REGEX);\n setSelection(newState, newState.selectionEnd - 1 + (currentNumberStart - oldNumberStart), newState.currentLooseValue, formatInfo);\n return newState;\n } // 4. Check is decimal symbol\n\n\n if (newState.currentLooseValue === symbols.decimal) {\n newState.eventValue = 0;\n var valueCandidate = formatValue(newState.eventValue, format, intlService);\n\n if (minDecimalCount === 0 && maxDecimalCount > 0) {\n var currentLastNumberIndex = getLastNumberIndex(valueCandidate, DIGITS_REGEX);\n newState.currentLooseValue = valueCandidate.substring(0, currentLastNumberIndex) + symbols.decimal + valueCandidate.substring(currentLastNumberIndex);\n } else {\n newState.currentLooseValue = valueCandidate;\n }\n\n setSelection(newState, getInitialPosition(newState.currentLooseValue, symbols) + 1, newState.currentLooseValue, formatInfo);\n return newState;\n } // 5. Duplicate decimal - it's possible only as trailing\n\n\n if (isDecimalDuplicated(newState, symbols)) {\n setInvalid(newState, format, formatInfo, intlService);\n return newState;\n } // 6. Percent format\n\n\n if (format === 'p' && currentLooseValueAsString && currentLooseValueAsString.indexOf(symbols.percentSign) === -1) {\n newState.eventValue = intlService.parseNumber(currentLooseValueAsString, format) / 100;\n newState.currentLooseValue = formatValue(newState.eventValue, format, intlService);\n return newState;\n } // 7. More than 15 numeric symbols\n\n\n var numericSymbols = String(newState.currentLooseValue).replace(/[^\\d]/g, '');\n\n if (numericSymbols.length > 15) {\n setInvalid(newState, format, formatInfo, intlService);\n return newState;\n } // 8. Check prefix / suffix for modifications\n\n\n if (sanitizedString !== currentLooseValueAsString && currentLooseValueAsString && isFormatContainPrefixSuffix) {\n var formatInfoIndex = formatInfo.findIndex(function (_a) {\n var prefix = _a[0],\n suffix = _a[1];\n var prefixIndex = currentLooseValueAsString.indexOf(prefix);\n var suffixIndex = currentLooseValueAsString.indexOf(suffix);\n var prefixFound = prefixIndex === 0;\n var suffixFound = suffixIndex === currentLooseValueAsString.length - suffix.length;\n var prefixGap = prefixIndex + prefix.length !== numberStart && numberStart !== -1 && currentLooseValueAsString[prefixIndex + prefix.length] !== symbols.decimal;\n var suffixGap = suffixIndex !== numberEnd && numberEnd !== -1 && currentLooseValueAsString[suffixIndex - 1] !== symbols.decimal;\n\n if (prefix && suffix) {\n if (prefixGap || suffixGap) {\n return false;\n }\n\n return prefixFound && suffixFound;\n }\n\n if (prefix) {\n if (prefixGap) {\n return false;\n }\n\n return prefixFound;\n }\n\n if (suffix) {\n if (suffixGap) {\n return false;\n }\n\n return suffixFound;\n }\n\n return false;\n });\n\n if (formatInfoIndex === -1) {\n setInvalid(newState, format, formatInfo, intlService);\n return newState;\n }\n } // 9. Value ending on decimal separator (here as decimal might be typed inside format)\n\n\n if (sanitizedString[sanitizedString.length - 1] === symbols.decimal && maxDecimalCount > 0) {\n newState.eventValue = intlService.parseNumber(currentLooseValueAsString, format);\n newState.currentLooseValue = sanitizedFormattedString;\n return newState;\n } // 10. prevent deleting decimal and group symbols\n\n\n if (newState.currentLooseValue && prevLooseValue) {\n var isSpecialSymbolDeleted = (restrictedSymbols + symbols.decimal + symbols.group).split('').findIndex(function (s) {\n if (currentLooseValueAsString.split('').filter(function (x) {\n return x === s;\n }).length < prevLooseValueAsString.split('').filter(function (x) {\n return x === s;\n }).length && currentLooseValueAsString.length + 1 === prevLooseValueAsString.length) {\n if (s === symbols.decimal && getDecimalCount(prevLooseValueAsString.replace(sanitizeRegex, ''), symbols.decimal) === 0) {\n return false;\n }\n\n return true;\n }\n\n return false;\n }) > -1;\n\n if (isSpecialSymbolDeleted) {\n newState.eventValue = intlService.parseNumber(state.prevLooseValue, format);\n newState.currentLooseValue = state.prevLooseValue;\n return newState;\n }\n }\n\n var currentDecimalCount = getDecimalCount(sanitizedString, symbols.decimal);\n var endsOnDecimal = sanitizedString[sanitizedString.length - 1] === '0'; // 11. Deleting more decimals than allowed\n\n if (isDelete && endsOnDecimal && currentDecimalCount < minDecimalCount) {\n newState.eventValue = intlService.parseNumber(newState.currentLooseValue, format);\n newState.currentLooseValue = formatValue(newState.eventValue, format, intlService);\n return newState;\n } // 12. Ending on zero OR more decimals than allowed\n\n\n if (currentDecimalCount > 0) {\n var valueUntillDecimal = currentLooseValueAsString.substring(0, decimalIndex);\n\n if (endsOnDecimal && (!valueUntillDecimal || prevLooseValueAsString.indexOf(valueUntillDecimal) !== 0)) {\n // ending on zero but typing before decimal separator\n newState.eventValue = intlService.parseNumber(newState.currentLooseValue, format);\n var nextLooseValue = formatValue(newState.eventValue, format, intlService);\n setSelection(newState, changeBasedSelection(currentLooseValueAsString, nextLooseValue, newState.selectionEnd, isDelete, sanitizeRegex), nextLooseValue, formatInfo);\n newState.currentLooseValue = nextLooseValue;\n return newState;\n }\n\n if (currentDecimalCount > maxDecimalCount) {\n // typing more symbols than format allows\n var looseDecimalPlace = currentLooseValueAsString.indexOf(symbols.decimal);\n var result = currentLooseValueAsString.substring(0, looseDecimalPlace) + currentLooseValueAsString.substring(looseDecimalPlace, looseDecimalPlace + 1 + maxDecimalCount) + currentLooseValueAsString.substring(numberEnd, String(newState.currentLooseValue).length);\n newState.eventValue = intlService.parseNumber(result, format);\n newState.currentLooseValue = result;\n setSelection(newState, newState.selectionStart, result, formatInfo);\n return newState;\n }\n\n if (minDecimalCount !== maxDecimalCount && currentDecimalCount <= maxDecimalCount && endsOnDecimal) {\n // adding trailing zeroes\n newState.eventValue = intlService.parseNumber(newState.currentLooseValue, format);\n newState.currentLooseValue = sanitizedFormattedString;\n return newState;\n }\n\n if (currentDecimalCount < minDecimalCount) {\n // deleting more decimals than allowed\n newState.eventValue = intlService.parseNumber(newState.currentLooseValue, format);\n newState.currentLooseValue = formatValue(newState.eventValue, format, intlService);\n return newState;\n }\n }\n } // X. All other values should be parsed\n\n\n newState.eventValue = intlService.parseNumber(newState.currentLooseValue, format);\n\n if (typeof newState.eventValue === 'number') {\n var nextLooseValue = formatValue(newState.eventValue, format, intlService); // First digit add\n\n if (currentLooseValueAsString.length === 1) {\n setSelection(newState, getInitialPosition(nextLooseValue, symbols), nextLooseValue, formatInfo);\n } else {\n setSelection(newState, changeBasedSelection(currentLooseValueAsString, nextLooseValue, newState.selectionEnd, isDelete, sanitizeRegex), nextLooseValue, formatInfo);\n }\n\n newState.currentLooseValue = nextLooseValue;\n } else {\n // Case when deleting last number\n newState.currentLooseValue = formatValue(intlService.parseNumber(sanitizedString), format, intlService);\n }\n\n return newState;\n};","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nvar inject = allVue.inject;\nimport { canUseDOM, getDefaultSlots } from '@progress/kendo-vue-common';\nimport { provideIntlService, provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { guid, validatePackage } from '@progress/kendo-vue-common';\nimport { messages, numericIncreaseValue, numericDecreaseValue } from './../messages';\nimport { formatValue, sanitizeNumber, rangeValue, increaseValue, decreaseValue, getStateOrPropsValue } from './utils';\nimport { packageMetadata } from '../package-metadata';\nvar VALIDATION_MESSAGE = 'Please enter a valid value!';\nvar NumericTextBox = {\n model: {\n event: 'changemodel'\n },\n inheritAttrs: false,\n // @ts-ignore\n emits: {\n 'change': null,\n 'changemodel': null,\n 'update:modelValue': null,\n 'focus': null,\n 'blur': null\n },\n props: {\n modelValue: Number,\n value: Number,\n defaultValue: Number,\n step: {\n type: Number,\n default: 1\n },\n format: [String, Object],\n tabIndex: Number,\n accessKey: String,\n title: String,\n placeholder: String,\n min: Number,\n max: Number,\n spinners: {\n type: Boolean,\n default: true\n },\n disabled: {\n type: Boolean,\n default: false\n },\n dir: String,\n name: String,\n label: String,\n validationMessage: String,\n validityStyles: {\n type: Boolean,\n default: true\n },\n valid: {\n type: Boolean,\n default: undefined\n },\n required: {\n type: Boolean,\n default: false\n },\n id: String\n },\n inject: {\n kendoIntlService: {\n default: null\n },\n kendoLocalizationService: {\n default: null\n }\n },\n data: function data() {\n return {\n hasMounted: false,\n isInvalid: false,\n isEmpty: false,\n currentValue: 0,\n valueDuringOnChange: 0,\n currentLooseValue: '',\n selectionStart: 0,\n selectionEnd: 0,\n decimalSelect: false,\n focused: false,\n forceUpdate: false\n };\n },\n created: function created() {\n validatePackage(packageMetadata);\n this._textBeforeInput = '';\n this._inputId = guid();\n this.$data.currentLooseValue = null;\n this.$data.valueDuringOnChange = undefined;\n this._intl = provideIntlService(this);\n this._symbols = this._intl.numberSymbols();\n\n if (this.$props.value !== undefined) {\n this.$data.currentValue = this.$props.value;\n } else if (this.$props.modelValue !== undefined) {\n this.$data.currentValue = this.$props.modelValue;\n } else if (this.$props.defaultValue !== undefined) {\n this.$data.currentValue = this.$props.defaultValue;\n } else {\n this.$data.currentValue = null;\n }\n },\n mounted: function mounted() {\n this._input = this.v3 ? this.inputRef : this.$refs.input;\n this._elementWrapper = this.v3 ? this.elementWrapperRef : this.$refs.elementWrapper;\n this.$data.hasMounted = true;\n\n if (this._input) {\n this._textBeforeInput = this._input.value;\n }\n\n this.setValidity();\n },\n updated: function updated() {\n if (!(canUseDOM && document.activeElement !== this._input || !this._input) && this.$data.currentLooseValue !== null) {\n if (this.$data.forceUpdate) {\n this._input.selectionStart = this.$data.selectionStart;\n this._input.selectionEnd = this.$data.selectionEnd;\n this.$data.forceUpdate = false;\n }\n }\n\n if (this._input) {\n this._textBeforeInput = this._input.value;\n }\n\n this.setValidity();\n },\n computed: {\n computedValue: {\n get: function get() {\n if (this.$data.valueDuringOnChange !== undefined) {\n return this.$data.valueDuringOnChange;\n } else {\n return this.$data.currentValue;\n }\n }\n },\n looseValue: {\n get: function get() {\n return formatValue(this.$data.focused ? this.$data.currentLooseValue : getStateOrPropsValue(this.$props.value, this.$data.currentValue), this.$props.format, this._intl);\n }\n },\n spanClassNames: {\n get: function get() {\n var isValid = !this.$data.hasMounted || !this.$props.validityStyles || this.validity().valid;\n var compValue = this.computedValue;\n return {\n 'k-floating-label-container': true,\n 'k-state-focused': this.$data.focused,\n 'k-state-empty': !(compValue === 0 ? true : compValue || this.$props.placeholder),\n 'k-state-invalid': !isValid && isValid !== undefined,\n 'k-rtl': this.$props.dir === 'rtl'\n };\n }\n },\n wrapperClassNames: {\n get: function get() {\n var isValid = !this.$props.validityStyles || this.validity().valid;\n return {\n 'k-numeric-wrap': true,\n 'k-state-focused': this.$data.focused,\n 'k-state-disabled': this.$props.disabled,\n 'k-state-invalid': !isValid || this.$data.isInvalid\n };\n }\n }\n },\n methods: {\n validity: function validity() {\n // The NumericTextBox currently autocorrect its' value,\n // so the only invalid state is if it's required and\n // the value is null!\n var customError = this.$props.validationMessage !== undefined;\n var isValid = !this.$data.valueIsOutOfRange && (!this.$props.required || this.computedValue !== null);\n var valid = this.$props.valid !== undefined ? this.$props.valid : isValid;\n return {\n customError: customError,\n valid: valid,\n valueMissing: this.computedValue === null\n };\n },\n focus: function focus() {\n if (this._input) {\n this._input.focus();\n }\n },\n emitFocus: function emitFocus(e) {\n this.$data.currentLooseValue = this._prevLooseValue;\n this.$data.focused = true;\n this.$emit('focus', e);\n this.$data.forceUpdate = true;\n },\n emitBlur: function emitBlur(e) {\n this.$data.eventValue = null;\n this.$data.prevLooseValue = '';\n this.$data.currentLooseValue = '';\n this.$data.focused = false;\n this.$data.selectionStart = undefined;\n this.$data.selectionEnd = undefined;\n this.$data.decimalSelect = false;\n this.$data.valueIsCorrected = false;\n this.$data.valueIsOutOfRange = false;\n this.$emit('blur', e);\n this.$data.forceUpdate = true;\n },\n handleFocus: function handleFocus(_) {\n this.$data.focused = true;\n },\n handleBlur: function handleBlur(_) {\n this.$data.focused = false;\n },\n setValidity: function setValidity() {\n if (this._input && this._input.setCustomValidity) {\n this._input.setCustomValidity(this.validity().valid ? '' : this.$props.validationMessage || VALIDATION_MESSAGE);\n }\n },\n getCurrentState: function getCurrentState() {\n return {\n eventValue: getStateOrPropsValue(this.$props.value, this.$data.currentValue),\n prevLooseValue: this._prevLooseValue,\n currentLooseValue: this._input.value,\n selectionStart: this._input.selectionStart,\n selectionEnd: this._input.selectionEnd,\n decimalSelect: false,\n valueIsCorrected: false,\n valueIsOutOfRange: false,\n isPaste: this._isPaste,\n focused: this.$data.focused\n };\n },\n parseNumber: function parseNumber(text) {\n return this._intl.parseNumber(text, this.$props.format);\n },\n elementChange: function elementChange(event) {\n var newState = this.getCurrentState();\n this._isPaste = false;\n this.triggerChange(event, sanitizeNumber(newState, this.$props.format, this._intl));\n },\n triggerChange: function triggerChange(event, newState) {\n var _this = this;\n\n if (this.$props.disabled) {\n return;\n }\n\n this.$data.valueDuringOnChange = newState.eventValue;\n this.$data.currentValue = newState.eventValue;\n var formattedValue = formatValue(rangeValue(newState.eventValue, this.$props.min, this.$props.max), this.$props.format, this._intl);\n var rangedValue = rangeValue(this.parseNumber(formattedValue), this.$props.min, this.$props.max);\n\n if (rangedValue !== newState.eventValue) {\n newState.valueIsOutOfRange = true;\n newState.eventValue = rangedValue;\n this.$data.valueDuringOnChange = rangedValue;\n this.$data.currentValue = rangedValue;\n }\n\n if (newState.valueIsCorrected) {\n var wrapper = this._elementWrapper;\n\n if (wrapper && wrapper.className.indexOf(\"k-state-invalid\") === -1) {\n this.$data.isInvalid = true;\n setTimeout(function () {\n _this.$data.isInvalid = false;\n }, 50);\n }\n }\n\n var shouldFireEvent = this.$props.value !== newState.eventValue;\n\n if (this.$props.value !== undefined) {\n // controlled\n this.$data.currentValue = this.$props.value;\n } else if (this.$props.modelValue !== undefined) {\n this.$data.currentValue = this.$props.modelValue;\n } else {\n // uncontrolled\n this.$data.currentValue = this.$data.valueDuringOnChange;\n }\n\n this.$data.prevLooseValue = newState.prevLooseValue;\n this.$data.currentLooseValue = newState.currentLooseValue;\n this.$data.selectionStart = newState.selectionStart;\n this.$data.selectionEnd = newState.selectionEnd;\n this.$data.decimalSelect = newState.decimalSelect;\n this.$data.valueIsCorrected = newState.valueIsCorrected;\n this.$data.valueIsOutOfRange = newState.valueIsOutOfRange;\n this.$data.focused = newState.focused;\n this.$data.isPaste = newState.isPaste;\n this.$data.forceUpdate = !this.$data.forceUpdate;\n\n if (shouldFireEvent) {\n this.$emit('change', {\n event: event,\n value: this.$data.valueDuringOnChange,\n component: this,\n target: {\n name: this.$props.name,\n value: this.$data.valueDuringOnChange\n },\n validity: this.validity()\n });\n this.$emit('changemodel', this.$data.valueDuringOnChange);\n this.$emit('update:modelValue', this.$data.valueDuringOnChange);\n }\n\n this.$data.valueDuringOnChange = undefined;\n },\n onPasteHandler: function onPasteHandler(_event) {\n this._isPaste = true;\n },\n increase: function increase(event) {\n var newState = this.getCurrentState();\n increaseValue(this.parseNumber(String(newState.currentLooseValue)), newState, this.$props.step, this.$props.min, this.$props.max, this.$props.format, this._intl);\n this.triggerChange(event, newState);\n },\n decrease: function decrease(event) {\n var newState = this.getCurrentState();\n decreaseValue(this.parseNumber(String(newState.currentLooseValue)), newState, this.$props.step, this.$props.min, this.$props.max, this.$props.format, this._intl);\n this.triggerChange(event, newState);\n },\n wheel: function wheel(event) {\n if (!canUseDOM || document.activeElement !== this._input || !this._input) {\n return;\n }\n\n if (event.deltaY < 0) {\n event.preventDefault();\n this.increase(event);\n }\n\n if (event.deltaY > 0) {\n event.preventDefault();\n this.decrease(event);\n }\n },\n keyDown: function keyDown(event) {\n var newState = this.getCurrentState();\n var currentValue = this.parseNumber(String(newState.currentLooseValue)); // Select All\n\n if (newState.selectionEnd > newState.selectionStart && newState.selectionEnd - newState.selectionStart === String(newState.currentLooseValue).length) {\n return;\n }\n\n switch (event.keyCode) {\n case 38:\n // Arrow up\n increaseValue(currentValue, newState, this.$props.step, this.$props.min, this.$props.max, this.$props.format, this._intl);\n break;\n\n case 40:\n // Arrow down\n decreaseValue(currentValue, newState, this.$props.step, this.$props.min, this.$props.max, this.$props.format, this._intl);\n break;\n\n case 13:\n // Enter - range values\n var formattedValue = formatValue(rangeValue(currentValue, this.$props.min, this.$props.max), this.$props.format, this._intl);\n var rangedValue = rangeValue(this.parseNumber(formattedValue), this.$props.min, this.$props.max);\n newState.eventValue = rangedValue;\n newState.currentLooseValue = formatValue(rangedValue, this.$props.format, this._intl);\n newState.selectionStart = newState.selectionEnd = newState.currentLooseValue.length;\n break;\n\n case 110:\n // Numpad decimal key\n var element = this._input;\n\n var symbols = this._intl.numberSymbols();\n\n if (element) {\n newState.currentLooseValue = newState.currentLooseValue.slice(0, newState.selectionStart) + symbols.decimal + newState.currentLooseValue.slice(newState.selectionEnd);\n newState.selectionStart = newState.selectionEnd = newState.selectionStart + 1;\n newState = sanitizeNumber(newState, this.$props.format, this._intl);\n }\n\n break;\n\n default:\n return;\n }\n\n event.preventDefault();\n this.triggerChange(event, newState);\n },\n spinnersWrapperMouseDown: function spinnersWrapperMouseDown(e) {\n if (canUseDOM && this._input) {\n e.preventDefault();\n\n if (document.activeElement !== this._input) {\n this._input.focus();\n }\n }\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var inputRef = ref(null);\n var elementWrapperRef = ref(null);\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n var kendoIntlService = inject('kendoIntlService', {});\n return {\n v3: v3,\n inputRef: inputRef,\n elementWrapperRef: elementWrapperRef,\n kendoLocalizationService: kendoLocalizationService,\n kendoIntlService: kendoIntlService\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var inputId = this.$props.id || this._inputId;\n var defaultSlot = getDefaultSlots(this);\n var localizationService = provideLocalizationService(this);\n\n if (this.$props.value !== undefined && this.$props.value !== this.$data.currentValue) {\n this.$data.currentValue = this.$props.value;\n } else if (this.$props.modelValue !== undefined && this.$props.modelValue !== this.$data.currentValue) {\n this.$data.currentValue = this.$props.modelValue;\n }\n\n this._prevLooseValue = this.looseValue;\n var numerictextbox = h(\"span\", {\n dir: this.$props.dir,\n attrs: this.v3 ? undefined : {\n dir: this.$props.dir,\n \"aria-disabled\": this.$props.disabled ? 'true' : undefined\n },\n \"class\": 'k-widget k-numerictextbox',\n \"aria-disabled\": this.$props.disabled ? 'true' : undefined\n }, [h(\"span\", {\n \"class\": this.wrapperClassNames,\n ref: this.v3 ? function (el) {\n _this.elementWrapperRef = el;\n } : 'elementWrapper'\n }, [h(\"input\", {\n tabIndex: this.$props.tabIndex,\n attrs: this.v3 ? undefined : {\n tabIndex: this.$props.tabIndex,\n accessKey: this.$props.accessKey,\n disabled: this.$props.disabled,\n title: this.$props.title,\n \"aria-valuemin\": this.$props.min,\n \"aria-valuemax\": this.$props.max,\n placeholder: this.$props.placeholder,\n type: this.$props.inputType || 'tel',\n spellCheck: false,\n autoComplete: \"off\",\n autoCorrect: \"off\",\n id: inputId,\n \"aria-valuenow\": this.$data.currentValue !== null ? this.$data.currentValue : undefined,\n name: this.$props.name\n },\n accessKey: this.$props.accessKey,\n disabled: this.$props.disabled,\n title: this.$props.title,\n \"aria-valuemin\": this.$props.min,\n \"aria-valuemax\": this.$props.max,\n placeholder: this.$props.placeholder,\n type: this.$props.inputType || 'tel',\n spellCheck: false,\n autoComplete: \"off\",\n autoCorrect: \"off\",\n \"class\": \"k-input k-formatted-value\",\n id: inputId,\n value: this.v3 ? this.looseValue : null,\n domProps: this.v3 ? undefined : {\n \"value\": this.looseValue\n },\n \"aria-valuenow\": this.$data.currentValue !== null ? this.$data.currentValue : undefined,\n name: this.$props.name,\n onWheel: this.wheel,\n on: this.v3 ? undefined : {\n \"wheel\": this.wheel,\n \"keydown\": this.keyDown,\n \"input\": this.elementChange,\n \"focus\": this.emitFocus,\n \"blur\": this.emitBlur,\n \"paste\": this.onPasteHandler\n },\n onKeydown: this.keyDown,\n onInput: this.elementChange,\n onFocus: this.emitFocus,\n onBlur: this.emitBlur,\n onPaste: this.onPasteHandler,\n ref: this.v3 ? function (el) {\n _this.inputRef = el;\n } : 'input'\n }), defaultSlot, this.$props.spinners && h(\"span\", {\n \"class\": \"k-select\",\n onMousedown: this.spinnersWrapperMouseDown,\n on: this.v3 ? undefined : {\n \"mousedown\": this.spinnersWrapperMouseDown\n }\n }, [h(\"span\", {\n \"class\": \"k-link k-link-increase\",\n \"aria-label\": localizationService.toLanguageString(numericIncreaseValue, messages[numericIncreaseValue]),\n attrs: this.v3 ? undefined : {\n \"aria-label\": localizationService.toLanguageString(numericIncreaseValue, messages[numericIncreaseValue]),\n title: localizationService.toLanguageString(numericIncreaseValue, messages[numericIncreaseValue])\n },\n title: localizationService.toLanguageString(numericIncreaseValue, messages[numericIncreaseValue]),\n onClick: this.increase,\n on: this.v3 ? undefined : {\n \"click\": this.increase\n }\n }, [h(\"span\", {\n \"class\": \"k-icon k-i-arrow-n\"\n })]), h(\"span\", {\n \"class\": \"k-link k-link-decrease\",\n \"aria-label\": localizationService.toLanguageString(numericDecreaseValue, messages[numericDecreaseValue]),\n attrs: this.v3 ? undefined : {\n \"aria-label\": localizationService.toLanguageString(numericDecreaseValue, messages[numericDecreaseValue]),\n title: localizationService.toLanguageString(numericDecreaseValue, messages[numericDecreaseValue])\n },\n title: localizationService.toLanguageString(numericDecreaseValue, messages[numericDecreaseValue]),\n onClick: this.decrease,\n on: this.v3 ? undefined : {\n \"click\": this.decrease\n }\n }, [h(\"span\", {\n \"class\": \"k-icon k-i-arrow-s\"\n })])])])]);\n return this.$props.label ? h(\"span\", {\n \"class\": this.spanClassNames,\n onFocusin: this.handleFocus,\n on: this.v3 ? undefined : {\n \"focusin\": this.handleFocus,\n \"focusout\": this.handleBlur\n },\n onFocusout: this.handleBlur,\n dir: this.$props.dir,\n attrs: this.v3 ? undefined : {\n dir: this.$props.dir\n }\n }, [numerictextbox, this.$props.label ? inputId ? h(\"label\", {\n \"for\": inputId,\n attrs: this.v3 ? undefined : {\n \"for\": inputId\n },\n \"class\": \"k-label\"\n }, [this.$props.label]) : h(\"span\", {\n \"class\": \"k-label\"\n }, [this.$props.label]) : null]) : numerictextbox;\n }\n};\nvar NumericTextBoxVue3 = NumericTextBox;\nexport { NumericTextBox, NumericTextBoxVue3 };","/**\n * @hidden\n */\nvar Stream = /** @class */ (function () {\n function Stream(input, control) {\n if (input === void 0) { input = []; }\n if (control === void 0) { control = []; }\n this.input = input;\n this.control = control;\n this.inputCursor = 0;\n this.controlCursor = 0;\n }\n Stream.prototype.eof = function () {\n return this.inputCursor >= this.input.length;\n };\n // Get the first value from the input.\n Stream.prototype.next = function () {\n return {\n char: this.input[this.inputCursor++],\n control: this.control[this.controlCursor++]\n };\n };\n Stream.prototype.peek = function () {\n return {\n char: this.input[this.inputCursor],\n control: this.control[this.controlCursor]\n };\n };\n Stream.prototype.eat_input = function () {\n this.inputCursor++;\n };\n Stream.prototype.eat_control = function () {\n this.controlCursor++;\n };\n Stream.prototype.eat = function () {\n this.inputCursor++;\n this.controlCursor++;\n };\n return Stream;\n}());\nexport { Stream };\n","import { Result, ResultType } from './result';\nimport { Stream } from './stream';\nvar toArray = function (value) { return (value || '').split(''); };\nvar ESCAPE_CHARACTER = '\\\\';\n/**\n * @hidden\n */\nvar Parser = /** @class */ (function () {\n function Parser(parse) {\n this.parse = parse;\n }\n Parser.prototype.run = function (input, control) {\n if (control === void 0) { control = ''; }\n if (input instanceof Stream) {\n return this.parse(input);\n }\n else {\n return this.parse(new Stream(toArray(input), toArray(control)));\n }\n };\n // map :: Functor f => f a ~> (a -> b) -> f b\n Parser.prototype.map = function (f) {\n var _this = this;\n return new Parser(function (stream) { return _this.parse(stream).map(f); });\n };\n // chain :: Chain m => m a ~> (a -> m b) -> m b\n Parser.prototype.chain = function (f) {\n var _this = this;\n return new Parser(function (stream) { return _this.parse(stream).chain(function (v, s) { return f(v).run(s); }); });\n };\n Parser.prototype.isLiteral = function (c) {\n return this.run(c).type === ResultType.Literal;\n };\n return Parser;\n}());\nexport { Parser };\n/**\n * @hidden\n */\nexport var mask = function (_a) {\n var prompt = _a.prompt, promptPlaceholder = _a.promptPlaceholder;\n return function (rule) { return new Parser(function (stream) {\n while (!stream.eof()) {\n var _a = stream.peek(), char = _a.char, control = _a.control;\n if (char === control && control === prompt) {\n stream.eat();\n return new Result(prompt, stream, ResultType.Mask);\n }\n if (rule.test(char)) {\n stream.eat();\n return new Result(char, stream, ResultType.Mask);\n }\n if (char === promptPlaceholder) {\n stream.eat();\n return new Result(prompt, stream, ResultType.Mask);\n }\n stream.eat_input();\n }\n stream.eat();\n return new Result(prompt, stream, ResultType.Mask);\n }); };\n};\n/**\n * @hidden\n */\nexport var literal = function (_token) { return new Parser(function (stream) {\n // let {char, control} = stream.peek();\n var char = stream.peek().char;\n if (char === _token) {\n stream.eat();\n return new Result(_token, stream, ResultType.Literal);\n }\n // if (control === _token) {\n // while (!stream.eof() && char !== _token) {\n // stream.eat_input();\n // char = stream.peek().char;\n // }\n // }\n //\n // if (control !== undefined) {\n // stream.eat();\n // }\n return new Result(_token, stream, ResultType.Literal);\n}); };\n/**\n * @hidden\n */\nexport var unmask = function (prompt) { return function (rule) { return new Parser(function (stream) {\n while (!stream.eof()) {\n var _a = stream.peek(), char = _a.char, control = _a.control;\n if (char === prompt && control === prompt) {\n stream.eat();\n return new Result(char, stream);\n }\n if (rule.test(char)) {\n stream.eat();\n return new Result(char, stream);\n }\n stream.eat_input();\n }\n stream.eat();\n return new Result('', stream);\n}); }; };\n/**\n * @hidden\n */\nexport var unliteral = function (_token) { return new Parser(function (stream) {\n if (stream.eof()) {\n return new Result('', stream);\n }\n var char = stream.peek().char;\n if (char === _token) {\n stream.eat();\n }\n return new Result(_token, stream);\n}); };\n/**\n * @hidden\n */\nexport var token = function (rules, creator) { return new Parser(function (stream) {\n var char = stream.next().char;\n var rule = rules[char];\n if (char === ESCAPE_CHARACTER) {\n char = stream.next().char;\n return new Result(creator.literal(char), stream);\n }\n if (!rule) {\n return new Result(creator.literal(char), stream);\n }\n return new Result(creator.mask(rule), stream);\n}); };\n/**\n * @hidden\n */\nexport var rawMask = function (_a) {\n var prompt = _a.prompt, promptPlaceholder = _a.promptPlaceholder;\n return new Parser(function (stream) {\n var char = stream.next().char;\n if (char === prompt) {\n return new Result(promptPlaceholder, stream);\n }\n return new Result(char, stream);\n });\n};\n/**\n * @hidden\n */\nexport var rawLiteral = function (includeLiterals) { return new Parser(function (stream) {\n var char = stream.next().char;\n if (includeLiterals) {\n return new Result(char, stream);\n }\n return new Result('', stream);\n}); };\n","import { Parser } from './parsers';\nimport { Result } from './result';\n/**\n * @hidden\n */\nvar always = function (value) { return new Parser(function (stream) { return new Result(value, stream); }); };\n/**\n * @hidden\n */\nvar append = function (p1, p2) { return p1.chain(function (vs) { return p2.map(function (v) { return vs.concat([v]); }); }); };\n/**\n * @hidden\n */\nexport var sequence = function (list) { return list.reduce(function (acc, parser) { return append(acc, parser); }, always([])); };\n/**\n * @hidden\n */\nexport var greedy = function (parser) { return new Parser(function (stream) {\n var result = new Result([], stream);\n while (!stream.eof()) {\n result = result.concat(parser.run(stream));\n }\n return result;\n}); };\n","import { greedy, sequence } from './parsing/combinators';\nimport { literal, mask as maskParser, rawLiteral, rawMask, token, unliteral, unmask } from './parsing/parsers';\n/**\n * @hidden\n */\nvar MaskingService = /** @class */ (function () {\n function MaskingService() {\n this.rules = {};\n this.prompt = '_';\n this.mask = '';\n this.promptPlaceholder = ' ';\n this.includeLiterals = false;\n this.maskTokens = [];\n this.unmaskTokens = [];\n this.rawTokens = [];\n this.validationTokens = [];\n }\n MaskingService.prototype.update = function (_a) {\n var _b = _a.mask, mask = _b === void 0 ? '' : _b, _c = _a.prompt, prompt = _c === void 0 ? '' : _c, _d = _a.promptPlaceholder, promptPlaceholder = _d === void 0 ? ' ' : _d, _e = _a.rules, rules = _e === void 0 ? {} : _e, _f = _a.includeLiterals, includeLiterals = _f === void 0 ? false : _f;\n this.mask = mask;\n this.prompt = prompt;\n this.promptPlaceholder = promptPlaceholder;\n this.rules = rules;\n this.includeLiterals = includeLiterals;\n this.tokenize();\n };\n MaskingService.prototype.validationValue = function (maskedValue) {\n if (maskedValue === void 0) { maskedValue = ''; }\n var value = maskedValue;\n sequence(this.validationTokens)\n .run(maskedValue)\n .fold(function (unmasked) {\n value = unmasked.join('');\n });\n return value;\n };\n MaskingService.prototype.rawValue = function (maskedValue) {\n if (maskedValue === void 0) { maskedValue = ''; }\n var value = maskedValue;\n if (!this.rawTokens.length) {\n return value;\n }\n sequence(this.rawTokens)\n .run(maskedValue)\n .fold(function (unmasked) {\n value = unmasked.join('');\n });\n return value;\n };\n /**\n * @hidden\n */\n MaskingService.prototype.maskRaw = function (rawValue) {\n if (rawValue === void 0) { rawValue = ''; }\n var value = rawValue;\n if (!this.maskTokens.length) {\n return value;\n }\n sequence(this.maskTokens)\n .run(rawValue)\n .fold(function (masked) {\n value = masked.join('');\n });\n return value;\n };\n MaskingService.prototype.maskInput = function (input, control, splitPoint) {\n if (input.length < control.length) {\n return this.maskRemoved(input, control, splitPoint);\n }\n return this.maskInserted(input, control, splitPoint);\n };\n MaskingService.prototype.maskInRange = function (pasted, oldValue, start, end) {\n var value = '';\n var selection = end;\n var beforeChange = oldValue.split('').slice(0, start);\n var afterChange = oldValue.split('').slice(end);\n sequence(this.maskTokens.slice(start, end))\n .run(pasted)\n .fold(function (masked) {\n value = beforeChange\n .concat(masked)\n .concat(afterChange)\n .join('');\n });\n return {\n selection: selection,\n value: value\n };\n };\n MaskingService.prototype.maskRemoved = function (input, control, splitPoint) {\n var _this = this;\n var value = '';\n var selection = splitPoint;\n var unchanged = input.split('').slice(splitPoint);\n var changed = input.split('').slice(0, splitPoint).join('');\n var take = this.maskTokens.length - (input.length - splitPoint);\n sequence(this.maskTokens.slice(0, take))\n .run(changed, control)\n .fold(function (masked) {\n selection = _this.adjustPosition(masked, selection);\n value = masked.concat(unchanged).join('');\n });\n return {\n selection: selection,\n value: value\n };\n };\n MaskingService.prototype.adjustPosition = function (input, selection) {\n var caretChar = input[selection];\n var isLiteral = this.maskTokens[selection].isLiteral(caretChar);\n if (!isLiteral && caretChar !== this.prompt) {\n return selection + 1;\n }\n return selection;\n };\n MaskingService.prototype.maskInserted = function (input, control, splitPoint) {\n var _this = this;\n var value = '';\n var selection = splitPoint;\n var changed = input.slice(0, splitPoint);\n sequence(this.unmaskTokens)\n .run(changed, control)\n .chain(function (unmasked) {\n selection = unmasked.join('').length;\n var unchanged = control.slice(selection);\n return sequence(_this.maskTokens)\n .run(unmasked.join('') + unchanged, control);\n })\n .fold(function (masked) {\n value = masked.join('');\n });\n return {\n selection: selection,\n value: value\n };\n };\n Object.defineProperty(MaskingService.prototype, \"maskTokenCreator\", {\n get: function () {\n var _a = this, prompt = _a.prompt, promptPlaceholder = _a.promptPlaceholder;\n return {\n literal: function (rule) { return literal(rule); },\n mask: function (rule) { return maskParser({ prompt: prompt, promptPlaceholder: promptPlaceholder })(rule); }\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MaskingService.prototype, \"unmaskTokenCreator\", {\n get: function () {\n var _this = this;\n return {\n literal: function (rule) { return unliteral(rule); },\n mask: function (rule) { return unmask(_this.prompt)(rule); }\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MaskingService.prototype, \"rawTokenCreator\", {\n get: function () {\n var _a = this, prompt = _a.prompt, promptPlaceholder = _a.promptPlaceholder, includeLiterals = _a.includeLiterals;\n return {\n literal: function (_) { return rawLiteral(includeLiterals); },\n mask: function (_) { return rawMask({ prompt: prompt, promptPlaceholder: promptPlaceholder }); }\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MaskingService.prototype, \"validationTokenCreator\", {\n get: function () {\n var prompt = this.prompt;\n return {\n literal: function (_) { return rawLiteral(false); },\n mask: function (_) { return rawMask({ prompt: prompt, promptPlaceholder: '' }); }\n };\n },\n enumerable: false,\n configurable: true\n });\n MaskingService.prototype.tokenize = function () {\n var _this = this;\n greedy(token(this.rules, this.maskTokenCreator))\n .run(this.mask)\n .fold(function (tokens, _) {\n _this.maskTokens = tokens;\n });\n greedy(token(this.rules, this.unmaskTokenCreator))\n .run(this.mask)\n .fold(function (tokens, _) {\n _this.unmaskTokens = tokens;\n });\n greedy(token(this.rules, this.rawTokenCreator))\n .run(this.mask)\n .fold(function (tokens, _) {\n _this.rawTokens = tokens;\n });\n greedy(token(this.rules, this.validationTokenCreator))\n .run(this.mask)\n .fold(function (tokens, _) {\n _this.validationTokens = tokens;\n });\n };\n return MaskingService;\n}());\nexport { MaskingService };\n","/**\n * @hidden\n */\nvar defaultRules = {\n '#': /[\\d\\s\\+\\-]/,\n '&': /[\\S]/,\n '0': /[\\d]/,\n '9': /[\\d\\s]/,\n '?': /[a-zA-Z\\s]/,\n 'A': /[a-zA-Z0-9]/,\n 'C': /./,\n 'L': /[a-zA-Z]/,\n 'a': /[a-zA-Z0-9\\s]/\n};\n/**\n * @hidden\n */\nvar returnFalse = function () { return false; };\n/**\n * @hidden\n */\nvar maskingChanged = function (prev, next) {\n return prev.includeLiterals !== next.includeLiterals ||\n prev.mask !== next.mask ||\n prev.prompt !== next.prompt ||\n prev.promptPlaceholder !== next.promptPlaceholder ||\n !sameRules(prev.rules, next.rules);\n};\n/**\n * @hidden\n */\nvar sameRules = function (rules1, rules2) {\n if (!!rules1 !== !!rules2) {\n return false;\n }\n if (rules1 === rules2 || (!rules1 || !rules2)) {\n return true;\n }\n var same = true;\n for (var key in rules1) {\n if (rules1[key] !== rules2[key]) {\n same = false;\n break;\n }\n }\n if (same) {\n for (var key in rules2) {\n if (!rules1.hasOwnProperty(key)) {\n same = false;\n break;\n }\n }\n }\n return same;\n};\nexport { defaultRules, maskingChanged, returnFalse };\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nimport { MaskingService } from './masking.service';\nimport { defaultRules, maskingChanged, returnFalse } from './utils';\nimport { guid, classNames, getTabIndex, validatePackage } from '@progress/kendo-vue-common';\nimport { packageMetadata } from '../package-metadata';\n/**\n * Represents the default `MaskedTextBox` component.\n */\n\nvar MaskedTextBox = {\n model: {\n event: 'changemodel'\n },\n props: {\n modelValue: String,\n modelRawValue: String,\n value: String,\n defaultValue: String,\n placeholder: String,\n title: String,\n dir: String,\n id: String,\n ariaLabelledBy: String,\n ariaDescribedBy: String,\n tabIndex: Number,\n accessKey: String,\n disabled: Boolean,\n readonly: Boolean,\n prompt: {\n type: String,\n default: '_'\n },\n promptPlaceholder: {\n type: String,\n default: ' '\n },\n includeLiterals: {\n type: Boolean,\n default: false\n },\n maskValidation: {\n type: Boolean,\n default: true\n },\n mask: String,\n rules: {\n type: Object,\n default: function _default() {\n return defaultRules;\n }\n },\n selection: Object,\n name: String,\n label: String,\n validationMessage: String,\n required: {\n type: Boolean,\n default: false\n },\n valid: {\n type: Boolean,\n default: undefined\n },\n validityStyles: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n return {\n currentValue: undefined,\n currentFocused: false,\n inputValue: undefined,\n currentSelection: [null, null]\n };\n },\n created: function created() {\n validatePackage(packageMetadata);\n this.hasMounted = false;\n this.valueDuringOnChange = undefined;\n this.inputId = \"k-\" + guid();\n this.service = new MaskingService();\n this.isPasted = false;\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var inputRef = ref(null);\n return {\n v3: v3,\n inputRef: inputRef\n };\n },\n mounted: function mounted() {\n this.hasMounted = true; // @ts-ignore\n\n this.element = this.input = this.v3 ? this.inputRef : this.$refs.input;\n this.updateService();\n this.setValidity();\n },\n watch: {\n currentFocused: function currentFocused(_, oldValue) {\n this.prevCurrentFocused = oldValue;\n },\n selection: function selection(_, oldValue) {\n this.prevSelection = oldValue;\n },\n includeLiterals: function includeLiterals(_, oldValue) {\n this.prevIncludeLiterals = oldValue;\n },\n mask: function mask(_, oldValue) {\n this.prevMask = oldValue;\n },\n prompt: function prompt(_, oldValue) {\n this.prevPrompt = oldValue;\n },\n promptPlaceholder: function promptPlaceholder(_, oldValue) {\n this.prevPromptPlaceholder = oldValue;\n },\n rules: function rules(_, oldValue) {\n this.prevRules = oldValue;\n }\n },\n updated: function updated() {\n if (this.element && this.currentFocused) {\n // && this.prevCurrentFocused\n var _a = this.currentSelection,\n start = _a[0],\n end = _a[1];\n var prevSelection = this.prevSelection;\n var nextSelection = this.$props.selection;\n\n if (!prevSelection && nextSelection || prevSelection && nextSelection && (prevSelection.start !== nextSelection.start || prevSelection.end !== nextSelection.end)) {\n start = nextSelection.start;\n end = nextSelection.end;\n }\n\n if (start !== null && end !== null) {\n this.element.setSelectionRange(start, end);\n }\n }\n\n var prevProps = {\n includeLiterals: this.prevIncludeLiterals,\n mask: this.prevMask,\n prompt: this.prevPrompt,\n promptPlaceholder: this.prevPromptPlaceholder,\n rules: this.prevRules\n };\n\n if (maskingChanged(prevProps, this.$props)) {\n this.updateService();\n }\n\n this.setValidity();\n },\n computed: {\n computedRules: {\n get: function get() {\n return Object.assign({}, defaultRules, this.$props.rules);\n }\n },\n spanClassNames: {\n get: function get() {\n var isValid = !this.hasMounted || !this.$props.validityStyles || this.validity().valid;\n return {\n 'k-textbox-container': true,\n 'k-state-focused': this.currentFocused,\n 'k-state-empty': !this.computedValue(),\n 'k-state-invalid': !isValid && isValid !== undefined,\n 'k-rtl': this.$props.dir === 'rtl'\n };\n }\n }\n },\n methods: {\n focus: function focus() {\n if (this.input) {\n this.input.focus();\n }\n },\n computedValue: function computedValue() {\n var value;\n\n if (this.valueDuringOnChange !== undefined) {\n value = this.valueDuringOnChange;\n } else if (this.$props.value !== undefined) {\n value = this.$props.value;\n } else if (this.$props.modelValue !== undefined) {\n value = this.$props.modelValue;\n } else if (this.currentValue !== undefined) {\n value = this.currentValue;\n } else if (this.$props.defaultValue !== undefined) {\n value = this.$props.defaultValue;\n }\n\n return value || '';\n },\n rawValue: function rawValue() {\n return this.service.rawValue(this.computedValue());\n },\n validity: function validity() {\n var maskedValue = this.computedValue();\n var value = this.service.validationValue(maskedValue);\n var customError = this.$props.validationMessage !== undefined;\n var valid = this.$props.valid !== undefined ? this.$props.valid : (!this.$props.required || !!value) && (!this.$props.maskValidation || !this.$props.prompt || maskedValue.indexOf(this.$props.prompt) === -1);\n return {\n customError: customError,\n valid: valid,\n valueMissing: !value\n };\n },\n pasteHandler: function pasteHandler(event) {\n var _a = event.target,\n selectionStart = _a.selectionStart,\n selectionEnd = _a.selectionEnd;\n\n if (selectionEnd === selectionStart) {\n return;\n }\n\n this.isPasted = true;\n this.currentSelection = [selectionStart || 0, selectionEnd || 0];\n },\n onChangeHandler: function onChangeHandler(event) {\n var input = event.currentTarget;\n var value = this.inputValue = input.value;\n var start = this.currentSelection[0] || 0;\n var end = this.currentSelection[1] || 0;\n\n if (!this.$props.mask) {\n this.isPasted = false;\n this.currentSelection = [null, null];\n this.triggerOnChange(value, event);\n return;\n }\n\n var maskedValue = this.computedValue();\n var result;\n\n if (this.isPasted) {\n this.isPasted = false;\n var rightPart = maskedValue.length - end;\n var to = value.length - rightPart;\n result = this.service.maskInRange(value.slice(start, to), maskedValue, start, end);\n } else {\n result = this.service.maskInput(value, maskedValue, input.selectionStart || 0);\n }\n\n this.currentSelection = [result.selection, result.selection];\n this.triggerOnChange(result.value, event);\n this.inputValue = undefined;\n },\n focusHandler: function focusHandler(event) {\n if (!this.currentFocused) {\n this.currentFocused = true;\n this.$emit('focus', {\n target: this,\n event: event\n });\n }\n },\n blurHandler: function blurHandler(event) {\n if (this.currentFocused) {\n this.currentFocused = false;\n this.$emit('blur', {\n target: this,\n event: event\n });\n }\n },\n triggerOnChange: function triggerOnChange(maskedValue, event) {\n this.currentValue = maskedValue;\n this.valueDuringOnChange = maskedValue;\n this.$emit('change', {\n event: event,\n selectionStart: this.currentSelection[0],\n selectionEnd: this.currentSelection[1],\n value: this.computedValue(),\n component: this,\n target: {\n name: this.$props.name,\n value: this.computedValue(),\n rawValue: this.rawValue()\n },\n validity: this.validity()\n });\n this.$emit('changemodel', this.computedValue());\n this.$emit('update:modelValue', this.computedValue());\n this.$emit('update:modelRawValue', this.rawValue());\n this.valueDuringOnChange = undefined;\n },\n updateService: function updateService(extra) {\n var config = Object.assign({\n includeLiterals: this.$props.includeLiterals,\n mask: this.$props.mask,\n prompt: this.$props.prompt,\n promptPlaceholder: this.$props.promptPlaceholder,\n rules: this.$props.rules\n }, extra); // tslint:disable-line:align\n\n this.service.update(config);\n },\n setValidity: function setValidity() {\n if (this.element) {\n this.element.setCustomValidity(this.validity().valid ? '' : this.$props.validationMessage || '');\n }\n }\n },\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var inputId = this.$props.id || this.inputId;\n var isValid = !this.hasMounted || !this.$props.validityStyles || this.validity().valid;\n var newValue = this.computedValue();\n var inputValue = this.inputValue;\n var component = h(\"span\", {\n dir: this.$props.dir,\n attrs: this.v3 ? undefined : {\n dir: this.$props.dir\n },\n \"class\": classNames('k-widget k-maskedtextbox', this.$props.className, {\n 'k-state-focused': this.currentFocused,\n 'k-state-disabled': this.$props.disabled,\n 'k-state-invalid': !isValid\n }),\n style: !this.$props.label ? {\n width: this.$props.width\n } : undefined\n }, [h(\"input\", {\n type: \"text\",\n attrs: this.v3 ? undefined : {\n type: \"text\",\n autoComplete: \"off\",\n autoCorrect: \"off\",\n autoCapitalize: \"off\",\n spellCheck: false,\n id: inputId,\n \"aria-labelledby\": this.$props.ariaLabelledBy,\n \"aria-describedby\": this.$props.ariaDescribedBy,\n name: this.$props.name,\n tabIndex: getTabIndex(this.$props.tabIndex, this.$props.disabled, true),\n accessKey: this.$props.accessKey,\n title: this.$props.title,\n disabled: this.$props.disabled || undefined,\n readOnly: this.$props.readonly || undefined,\n placeholder: this.$props.placeholder\n },\n autoComplete: \"off\",\n autoCorrect: \"off\",\n autoCapitalize: \"off\",\n spellCheck: false,\n \"class\": \"k-textbox\",\n value: this.v3 ? newValue : null,\n domProps: this.v3 ? undefined : {\n \"value\": newValue\n },\n id: inputId,\n \"aria-labelledby\": this.$props.ariaLabelledBy,\n \"aria-describedby\": this.$props.ariaDescribedBy,\n name: this.$props.name,\n tabIndex: getTabIndex(this.$props.tabIndex, this.$props.disabled, true),\n accessKey: this.$props.accessKey,\n title: this.$props.title,\n disabled: this.$props.disabled || undefined,\n readOnly: this.$props.readonly || undefined,\n placeholder: this.$props.placeholder,\n ref: this.v3 ? function (el) {\n _this.inputRef = el;\n } : 'input',\n onInput: this.onChangeHandler,\n on: this.v3 ? undefined : {\n \"input\": this.onChangeHandler,\n \"paste\": this.pasteHandler,\n \"focus\": this.focusHandler,\n \"blur\": this.blurHandler,\n \"dragStart\": returnFalse,\n \"drop\": returnFalse\n },\n onPaste: this.pasteHandler,\n onFocus: this.focusHandler,\n onBlur: this.blurHandler,\n onDragStart: returnFalse,\n onDrop: returnFalse\n })]);\n return this.$props.label ? h(\"span\", {\n \"class\": this.spanClassNames,\n dir: this.$props.dir,\n attrs: this.v3 ? undefined : {\n dir: this.$props.dir\n }\n }, [component, this.$props.label ? inputId ? h(\"label\", {\n \"for\": inputId,\n attrs: this.v3 ? undefined : {\n \"for\": inputId\n },\n \"class\": \"k-label\"\n }, [this.$props.label]) : h(\"span\", {\n \"class\": \"k-label\"\n }, [this.$props.label]) : null]) : component;\n }\n};\nvar MaskedTextBoxVue3 = MaskedTextBox;\nexport { MaskedTextBox, MaskedTextBoxVue3 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * @hidden\n */\n\nexport var SLIDER_LABEL_ATTRIBUTE = 'data-slider-label'; // tslint:enable:max-line-length\n\nvar SliderLabel = {\n name: 'KendoSliderLabel',\n // @ts-ignore\n emits: {\n click: null\n },\n props: {\n position: Number,\n title: String,\n vertical: Boolean\n },\n data: function data() {\n return {\n currentDir: 'ltr'\n };\n },\n inject: ['kendoMax', 'kendoMin', 'kendoVertical'],\n mounted: function mounted() {\n this.sliderLabelRef = this.$refs.sliderLabelRef;\n\n if (!this.currentDir && window && this.$el) {\n // Note: getComputedStyle forces reflow\n var direction = window.getComputedStyle(this.$el).direction;\n\n if (direction) {\n this.currentDir = direction;\n }\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _a;\n\n var h = gh || createElement;\n var dir = this.currentDir;\n var defaultSlot = getDefaultSlots(this);\n var position = 100 * (this.$props.position - this.kendoMin) / (this.kendoMax - this.kendoMin);\n var vertical = this.kendoVertical;\n var style = vertical ? {\n bottom: position + \"%\",\n height: '1px',\n width: '100%'\n } : (_a = {}, _a[dir === 'rtl' ? 'right' : 'left'] = position + \"%\", _a.width = '1px', _a);\n return h(\"li\", {\n ref: 'sliderLabelRef',\n role: \"presentation\",\n attrs: this.v3 ? undefined : {\n role: \"presentation\",\n title: this.$props.title\n },\n \"class\": \"k-tick k-tick-large\",\n title: this.$props.title,\n style: __assign({\n zIndex: 1,\n position: 'absolute'\n }, style)\n }, [h(\"span\", {\n \"data-slider-label\": true,\n attrs: this.v3 ? undefined : {\n \"data-slider-label\": true\n },\n \"class\": \"k-label\",\n onClick: this.onClick,\n on: this.v3 ? undefined : {\n \"click\": this.onClick\n }\n }, [defaultSlot])]);\n },\n methods: {\n onClick: function onClick(event) {\n this.$emit('click', event);\n }\n }\n};\nvar SliderLabelVue3 = SliderLabel;\nexport { SliderLabel, SliderLabelVue3 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nvar inject = allVue.inject;\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\nimport { Keys, classNames, Draggable, getTabIndex, validatePackage } from '@progress/kendo-vue-common';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { messages, sliderIncreaseValue, sliderDecreaseValue, sliderDragTitle } from './../messages';\nimport { SLIDER_LABEL_ATTRIBUTE } from './SliderLabel';\nimport { packageMetadata } from '../package-metadata';\nvar Slider = {\n name: 'KendoSlider',\n model: {\n event: 'changemodel'\n },\n props: {\n modelValue: {\n type: Number,\n default: undefined\n },\n defaultValue: {\n type: Number,\n default: undefined\n },\n name: String,\n buttons: Boolean,\n tabIndex: Number,\n disabled: Boolean,\n dir: String,\n step: Number,\n min: {\n type: Number,\n required: true\n },\n max: {\n type: Number,\n required: true\n },\n value: Number,\n vertical: Boolean,\n id: String,\n ariaLabelledBy: String,\n ariaDescribedBy: String\n },\n provide: function provide() {\n return {\n kendoMin: this.$props.min,\n kendoMax: this.$props.max,\n kendoVertical: this.$props.vertical\n };\n },\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n data: function data() {\n return {\n currentValue: undefined,\n currentFocused: false,\n currentDir: 'ltr'\n };\n },\n computed: {\n computedValue: function computedValue() {\n var value = this.$props.value !== undefined ? this.$props.value : this.currentValue;\n var _a = this.$props,\n min = _a.min,\n max = _a.max;\n return value === undefined ? value : Math.min(Math.max(value, min), max);\n },\n sliderTrack: function sliderTrack() {\n return this._sliderTrack;\n }\n },\n created: function created() {\n validatePackage(packageMetadata);\n\n if (this.$props.value !== undefined) {\n this.$data.currentValue = this.$props.value;\n } else if (this.$props.modelValue !== undefined) {\n this.$data.currentValue = this.$props.modelValue;\n } else if (this.$props.defaultValue !== undefined) {\n this.$data.currentValue = this.$props.defaultValue;\n } else {\n this.$data.currentValue = this.$props.min;\n }\n\n this.currentFocused = false;\n this.currentDir = this.$props.dir;\n },\n mounted: function mounted() {\n this._sliderTrack = this.$refs.sliderTrack;\n\n if (this.$el) {\n this.draggable = this.$refs.draggable;\n }\n\n if (!this.currentDir && window && this.$el) {\n // Note: getComputedStyle forces reflow\n var direction = window.getComputedStyle(this.$el).direction;\n\n if (direction) {\n this.currentDir = direction;\n }\n }\n },\n updated: function updated() {\n if (this.$el) {\n this.draggable = this.$refs.draggable;\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var inputRef = ref(null);\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n inputRef: inputRef,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n render: function render(createElement) {\n var _this = this;\n\n var _a, _b;\n\n var h = gh || createElement;\n var lS = provideLocalizationService(this);\n var percentValue = (this.computedValue - this.$props.min) / (this.$props.max - this.$props.min) * 100;\n var defaultSlot = getDefaultSlots(this);\n var trackStyles = this.$props.vertical ? {\n marginTop: '0.5rem',\n marginBottom: '0.5rem'\n } : {\n marginLeft: '0.5rem',\n marginRight: '0.5rem'\n };\n var sliderItemsStyle = this.$props.vertical ? {\n paddingTop: 0,\n height: '100%'\n } : {};\n return h(\"div\", {\n \"aria-valuemin\": this.$props.min,\n attrs: this.v3 ? undefined : {\n \"aria-valuemin\": this.$props.min,\n \"aria-valuemax\": this.$props.max,\n \"aria-valuenow\": this.computedValue,\n \"aria-disabled\": this.$props.disabled ? 'true' : undefined,\n \"aria-labelledby\": this.$props.ariaLabelledBy,\n \"aria-describedby\": this.$props.ariaDescribedBy,\n dir: this.currentDir,\n role: \"slider\",\n id: this.$props.id,\n tabIndex: getTabIndex(this.$props.tabIndex, this.$props.disabled, undefined)\n },\n \"aria-valuemax\": this.$props.max,\n \"aria-valuenow\": this.computedValue,\n \"aria-disabled\": this.$props.disabled ? 'true' : undefined,\n \"aria-labelledby\": this.$props.ariaLabelledBy,\n \"aria-describedby\": this.$props.ariaDescribedBy,\n dir: this.currentDir,\n role: \"slider\",\n id: this.$props.id,\n style: this.$props.style,\n tabIndex: getTabIndex(this.$props.tabIndex, this.$props.disabled, undefined),\n onFocus: this.onFocus,\n on: this.v3 ? undefined : {\n \"focus\": this.onFocus,\n \"blur\": this.onBlur,\n \"keydown\": this.onKeyDown\n },\n onBlur: this.onBlur,\n onKeydown: this.onKeyDown,\n \"class\": classNames('k-slider k-widget', {\n 'k-state-focused': this.currentFocused,\n 'k-state-disabled': this.$props.disabled,\n 'k-slider-horizontal': !this.$props.vertical,\n 'k-slider-vertical': this.$props.vertical\n }, this.$props.className)\n }, [h(\"div\", {\n \"class\": classNames('k-slider-wrap', {\n 'k-slider-buttons': this.$props.buttons\n }),\n style: {\n display: 'flex',\n position: 'relative',\n flexDirection: this.$props.vertical ? 'column-reverse' : 'row'\n }\n }, [this.$props.buttons && h(\"a\", {\n \"class\": \"k-button k-button-decrease\",\n style: {\n position: 'relative'\n },\n title: lS.toLanguageString(sliderDecreaseValue, messages[sliderDecreaseValue]),\n attrs: this.v3 ? undefined : {\n title: lS.toLanguageString(sliderDecreaseValue, messages[sliderDecreaseValue])\n },\n onClick: this.decrement,\n on: this.v3 ? undefined : {\n \"click\": this.decrement\n }\n }, [h(\"span\", {\n \"class\": classNames('k-icon', {\n 'k-i-arrow-s': this.$props.vertical,\n 'k-i-arrow-w': !this.$props.vertical\n })\n })]), // @ts-ignore function children\n h(Draggable, {\n onDrag: this.dragOver,\n on: this.v3 ? undefined : {\n \"drag\": this.dragOver,\n \"press\": this.dragStart\n },\n onPress: this.dragStart,\n ref: 'draggable'\n }, this.v3 ? function () {\n return [h(\"div\", {\n \"class\": \"k-slider-track-wrap\",\n style: __assign({\n flexGrow: 1,\n position: 'relative',\n touchAction: 'none'\n }, trackStyles)\n }, [defaultSlot && h(\"ul\", {\n \"class\": \"k-reset k-slider-items\",\n style: __assign({\n margin: 0\n }, sliderItemsStyle)\n }, [defaultSlot]), h(\"div\", {\n \"class\": \"k-slider-track\",\n style: _this.$props.vertical ? {\n bottom: 0,\n height: '100%'\n } : (_a = {}, _a[_this.currentDir === 'rtl' ? 'right' : 'left'] = 0, _a.width = '100%', _a),\n ref: 'sliderTrack'\n }, [h(\"div\", {\n \"class\": \"k-slider-selection\",\n style: _this.$props.vertical ? {\n height: percentValue + '%'\n } : {\n width: percentValue + '%'\n }\n }), h(\"a\", {\n \"class\": \"k-draghandle\",\n title: lS.toLanguageString(sliderDragTitle, messages[sliderDragTitle]),\n attrs: _this.v3 ? undefined : {\n title: lS.toLanguageString(sliderDragTitle, messages[sliderDragTitle])\n },\n style: _this.$props.vertical ? {\n bottom: 'calc(' + percentValue + '% - 8px)',\n zIndex: 1\n } : (_b = {}, _b[_this.currentDir === 'rtl' ? 'right' : 'left'] = 'calc(' + percentValue + '% - 8px)', _b.zIndex = 1, _b)\n })])])];\n } : [h(\"div\", {\n \"class\": \"k-slider-track-wrap\",\n style: __assign({\n flexGrow: 1,\n position: 'relative',\n touchAction: 'none'\n }, trackStyles)\n }, [defaultSlot && h(\"ul\", {\n \"class\": \"k-reset k-slider-items\",\n style: __assign({\n margin: 0\n }, sliderItemsStyle)\n }, [defaultSlot]), h(\"div\", {\n \"class\": \"k-slider-track\",\n style: _this.$props.vertical ? {\n bottom: 0,\n height: '100%'\n } : (_a = {}, _a[_this.currentDir === 'rtl' ? 'right' : 'left'] = 0, _a.width = '100%', _a),\n ref: 'sliderTrack'\n }, [h(\"div\", {\n \"class\": \"k-slider-selection\",\n style: _this.$props.vertical ? {\n height: percentValue + '%'\n } : {\n width: percentValue + '%'\n }\n }), h(\"a\", {\n \"class\": \"k-draghandle\",\n title: lS.toLanguageString(sliderDragTitle, messages[sliderDragTitle]),\n attrs: _this.v3 ? undefined : {\n title: lS.toLanguageString(sliderDragTitle, messages[sliderDragTitle])\n },\n style: _this.$props.vertical ? {\n bottom: 'calc(' + percentValue + '% - 8px)',\n zIndex: 1\n } : (_b = {}, _b[_this.currentDir === 'rtl' ? 'right' : 'left'] = 'calc(' + percentValue + '% - 8px)', _b.zIndex = 1, _b)\n })])])]), this.$props.buttons && h(\"a\", {\n \"class\": \"k-button k-button-increase\",\n style: {\n position: 'relative'\n },\n title: lS.toLanguageString(sliderIncreaseValue, messages[sliderIncreaseValue]),\n attrs: this.v3 ? undefined : {\n title: lS.toLanguageString(sliderIncreaseValue, messages[sliderIncreaseValue])\n },\n onClick: this.increment,\n on: this.v3 ? undefined : {\n \"click\": this.increment\n }\n }, [h(\"span\", {\n \"class\": classNames('k-icon', {\n 'k-i-arrow-n': this.$props.vertical,\n 'k-i-arrow-e': !this.$props.vertical\n })\n })])])]);\n },\n methods: {\n focus: function focus() {\n if (this.$el) {\n // @ts-ignore\n this.$el.focus();\n }\n },\n isLabel: function isLabel(target) {\n var currentTarget = target;\n\n while (currentTarget) {\n if (Boolean(currentTarget.getAttribute(SLIDER_LABEL_ATTRIBUTE))) {\n return true;\n }\n\n currentTarget = currentTarget.parentElement;\n }\n\n return false;\n },\n onFocus: function onFocus() {\n this.currentFocused = true;\n },\n onBlur: function onBlur() {\n this.currentFocused = false;\n },\n onKeyDown: function onKeyDown(e) {\n var newValue = undefined;\n\n if (e.keyCode === Keys.left || e.keyCode === Keys.down) {\n newValue = this.currentValue - (this.$props.step || 0);\n } else if (e.keyCode === Keys.right || e.keyCode === Keys.up) {\n newValue = this.currentValue + (this.$props.step || 0);\n } else if (e.keyCode === Keys.home) {\n newValue = this.$props.min;\n } else if (e.keyCode === Keys.end) {\n newValue = this.$props.max;\n }\n\n if (newValue !== undefined) {\n e.preventDefault();\n this.change(e, newValue);\n }\n },\n decrement: function decrement(e) {\n e.preventDefault();\n this.change(e, this.currentValue - (this.$props.step || 0));\n },\n increment: function increment(e) {\n e.preventDefault();\n this.change(e, this.currentValue + (this.$props.step || 0));\n },\n dragStart: function dragStart(e) {\n if (!this.isLabel(e.originalEvent.target)) {\n if (e.isTouch) {\n e.originalEvent.preventDefault();\n }\n\n this.drag(e);\n }\n },\n dragOver: function dragOver(e) {\n e.originalEvent.preventDefault();\n this.drag(e);\n },\n drag: function drag(e) {\n var computed = this.draggable.element.getBoundingClientRect();\n var distance = this.$props.vertical ? computed.bottom - e.clientY : this.currentDir === 'rtl' ? computed.right - e.clientX : e.clientX - computed.left;\n var size = this.$props.vertical ? computed.height : computed.width;\n var percentage = distance / size;\n this.change(e, this.$props.min + percentage * (this.$props.max - this.$props.min));\n },\n change: function change(e, value) {\n value = Math.min(Math.max(value, this.$props.min), this.$props.max);\n this.currentValue = value;\n this.$emit('change', {\n event: e,\n value: value,\n component: this,\n target: {\n name: this.$props.name,\n value: value\n }\n });\n this.$emit('changemodel', value);\n this.$emit('update:modelValue', value);\n }\n }\n};\nvar SliderVue3 = Slider;\nexport { Slider, SliderVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nvar inject = allVue.inject;\nimport { Keys, classNames, guid, getTabIndex, getDefaultSlots, validatePackage, templateRendering, getTemplate, getListeners } from '@progress/kendo-vue-common';\nimport { packageMetadata } from '../package-metadata';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { messages, checkboxValidation, checkboxOptionalText } from './../messages';\nvar Checkbox = {\n name: 'KendoCheckbox',\n // @ts-ignore\n emits: {\n 'changemodel': null,\n 'update:modelValue': null,\n change: null,\n focus: null,\n blur: null\n },\n model: {\n event: 'changemodel'\n },\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n props: {\n checked: {\n type: Boolean,\n default: undefined\n },\n defaultChecked: {\n type: Boolean,\n default: undefined\n },\n defaultValue: {\n type: [String, Boolean],\n default: undefined\n },\n modelValue: {\n type: [String, Boolean],\n default: undefined\n },\n dir: String,\n disabled: Boolean,\n id: String,\n ariaLabelledBy: String,\n ariaDescribedBy: String,\n label: String,\n labelRender: [String, Number, Boolean, Object],\n labelPlacement: String,\n labelOptional: Boolean,\n name: String,\n tabIndex: Number,\n value: {\n type: [String, Boolean],\n default: undefined\n },\n validationMessage: String,\n required: Boolean,\n valid: {\n type: Boolean,\n default: undefined\n },\n validityStyles: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n return {\n valueDuringOnChange: undefined,\n currentDir: 'ltr',\n currentChecked: undefined,\n currentValue: undefined\n };\n },\n created: function created() {\n validatePackage(packageMetadata);\n this.calculatedId = guid();\n\n if (this.$props.defaultChecked !== undefined) {\n this.currentChecked = this.$props.defaultChecked;\n }\n\n if (this.$props.defaultValue !== undefined) {\n this.currentValue = this.$props.defaultValue;\n }\n\n this.currentDir = this.$props.dir;\n },\n computed: {\n valueIsBooleanOrNull: function valueIsBooleanOrNull() {\n var value = this.$props.value;\n return typeof value === 'boolean' || value === null;\n },\n isCheckedControlled: function isCheckedControlled() {\n return this.$props.checked !== undefined;\n },\n isValueControlled: function isValueControlled() {\n return this.$props.value !== undefined && this.valueIsBooleanOrNull;\n },\n computedValue: function computedValue() {\n return this.$data.valueDuringOnChange !== undefined ? this.$data.valueDuringOnChange : this.$props.value !== undefined ? this.$props.value : this.$props.modelValue !== undefined ? this.$props.modelValue : this.$data.currentValue;\n },\n computedChecked: function computedChecked() {\n return this.$data.valueDuringOnChange !== undefined ? this.$data.valueDuringOnChange : this.$props.checked !== undefined ? this.$props.checked : this.$props.modelValue !== undefined ? this.$props.modelValue : this.$data.currentChecked;\n },\n useValueAsChecked: function useValueAsChecked() {\n return this.computedChecked === undefined && this.computedValue;\n },\n checkedProp: function checkedProp() {\n return this.useValueAsChecked ? this.computedValue : this.computedChecked;\n },\n valueProp: function valueProp() {\n var value = this.$props.value;\n return this.useValueAsChecked || this.isValueControlled ? value === null ? value : undefined : value || this.computedValue;\n },\n indeterminateProp: function indeterminateProp() {\n return this.checkedProp === null || this.valueProp === null;\n },\n isValid: function isValid() {\n var valid = this.$props.valid;\n return valid !== undefined ? valid : !this.$props.required ? true : this.computedChecked ? true : false;\n }\n },\n mounted: function mounted() {\n this.input = this.v3 ? this.inputRef : this.$refs.input;\n\n if (!this.currentDir && window && this.$el) {\n // Note: getComputedStyle forces reflow\n var direction = window.getComputedStyle(this.$el).direction;\n\n if (direction) {\n this.currentDir = direction;\n }\n }\n\n this.setValidity();\n },\n updated: function updated() {\n if (!this.input) {\n this.input = this.v3 ? this.inputRef : this.$refs.input;\n }\n\n this.setValidity();\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var inputRef = ref(null);\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n inputRef: inputRef,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n ariaDescribedBy = _a.ariaDescribedBy,\n ariaLabelledBy = _a.ariaLabelledBy,\n disabled = _a.disabled,\n id = _a.id,\n label = _a.label,\n labelRender = _a.labelRender,\n labelPlacement = _a.labelPlacement,\n name = _a.name,\n labelOptional = _a.labelOptional,\n tabIndex = _a.tabIndex,\n required = _a.required,\n validityStyles = _a.validityStyles;\n var defaultSlot = getDefaultSlots(this);\n var renderedLabel = label;\n this.localizationService = provideLocalizationService(this);\n this.defaultValidationMessage = this.localizeMessage(checkboxValidation);\n this.optionalMessage = this.localizeMessage(checkboxOptionalText);\n var checkboxClasses = classNames({\n 'k-state-disabled': disabled\n });\n var inputClasses = classNames({\n 'k-checkbox': true,\n 'k-state-indeterminate': this.indeterminateProp,\n 'k-state-invalid k-invalid': !(this.isValid || validityStyles !== undefined || validityStyles === true)\n });\n\n var checkboxInput = function checkboxInput() {\n var _this = this;\n\n return h(\"input\", {\n type: 'checkbox',\n attrs: this.v3 ? undefined : {\n type: 'checkbox',\n name: name,\n id: id || this.calculatedId,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n disabled: disabled,\n tabIndex: getTabIndex(tabIndex, disabled),\n role: 'checkbox',\n required: required !== undefined ? required : false,\n \"aria-checked\": this.computedChecked || this.checkedProp ? true : this.indeterminateProp ? 'mixed' : false,\n \"aria-disabled\": disabled || undefined\n },\n \"class\": inputClasses,\n name: name,\n id: id || this.calculatedId,\n ref: this.v3 ? function (el) {\n _this.inputRef = el;\n } : 'input',\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n checked: this.v3 ? Boolean(this.checkedProp) : null,\n domProps: this.v3 ? undefined : {\n \"checked\": Boolean(this.checkedProp)\n },\n disabled: disabled,\n tabIndex: getTabIndex(tabIndex, disabled),\n role: 'checkbox',\n required: required !== undefined ? required : false,\n \"aria-checked\": this.computedChecked || this.checkedProp ? true : this.indeterminateProp ? 'mixed' : false,\n \"aria-disabled\": disabled || undefined,\n onChange: this.onChangeHandler,\n on: this.v3 ? undefined : {\n \"change\": this.onChangeHandler,\n \"keydown\": this.onKeyDownHandler,\n \"focus\": this.onFocusHandler,\n \"blur\": this.onBlurHandler\n },\n onKeydown: this.onKeyDownHandler,\n onFocus: this.onFocusHandler,\n onBlur: this.onBlurHandler\n });\n };\n\n if (labelRender) {\n var renderTemplate = labelRender ? templateRendering.call(this, labelRender, getListeners.call(this)) : null;\n renderedLabel = getTemplate.call(this, {\n h: h,\n template: renderTemplate\n });\n }\n\n var checkboxLabel = function checkboxLabel() {\n return renderedLabel !== undefined ? h(\"label\", {\n \"class\": 'k-checkbox-label',\n \"for\": id || this.calculatedId,\n attrs: this.v3 ? undefined : {\n \"for\": id || this.calculatedId\n },\n style: {\n userSelect: 'none'\n }\n }, [renderedLabel, labelOptional && h(\"span\", {\n \"class\": \"k-label-optional\"\n }, [this.optionalMessage])]) : null;\n };\n\n return labelPlacement === 'before' ? h(\"span\", {\n \"class\": checkboxClasses,\n dir: 'rtl',\n attrs: this.v3 ? undefined : {\n dir: 'rtl'\n }\n }, [checkboxInput.call(this), checkboxLabel.call(this), defaultSlot]) : h(\"span\", {\n \"class\": checkboxClasses,\n dir: this.currentDir,\n attrs: this.v3 ? undefined : {\n dir: this.currentDir\n }\n }, [checkboxInput.call(this), checkboxLabel.call(this), defaultSlot]);\n },\n methods: {\n setValidity: function setValidity() {\n var isValid = this.$props.valid !== undefined ? this.$props.valid : !this.$props.required ? true : this.computedChecked ? true : false; // @ts-ignore\n\n if (this.input && this.input.setCustomValidity) {\n // @ts-ignore\n this.input.setCustomValidity(isValid ? '' : this.$props.validationMessage || this.defaultValidationMessage);\n }\n },\n localizeMessage: function localizeMessage(message) {\n return this.localizationService.toLanguageString(message, messages[message]);\n },\n focusElement: function focusElement() {\n if (this.input) {\n // @ts-ignore\n this.input.focus();\n }\n },\n setValue: function setValue(e, val) {\n this.$data.valueDuringOnChange = val;\n var that = this;\n this.$nextTick(function () {\n if (!that.isCheckedControlled && !that.isValueControlled && !that.$props.disabled) {\n that.currentValue = val;\n that.currentChecked = val;\n }\n\n if (!that.$props.disabled) {\n var handle = {\n element: that.$el,\n focus: null // focusElement\n\n };\n that.$emit('change', {\n e: e,\n handle: handle,\n value: val\n });\n that.$emit('changemodel', val);\n that.$emit('update:modelValue', val);\n }\n\n this.$data.valueDuringOnChange = undefined;\n });\n },\n onChangeHandler: function onChangeHandler(e) {\n var newValue = e.target.checked;\n this.setValue(e, newValue);\n },\n onKeyDownHandler: function onKeyDownHandler(e) {\n if (this.$props.disabled) {\n return;\n }\n\n var keyCode = e.keyCode;\n var currentVal = e.currentTarget.checked;\n\n if (keyCode === Keys.space) {\n e.preventDefault();\n e.stopPropagation();\n this.setValue(e, !currentVal);\n }\n },\n onBlurHandler: function onBlurHandler(e) {\n if (!this.$props.disabled) {\n this.$emit('blur', e);\n }\n },\n onFocusHandler: function onFocusHandler(e) {\n if (!this.$props.disabled) {\n this.$emit('focus', e);\n }\n }\n }\n};\nvar CheckboxVue3 = Checkbox;\nexport { Checkbox, CheckboxVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nvar inject = allVue.inject;\nimport { guid, getTabIndex, getDefaultSlots, templateRendering, getTemplate, getListeners } from '@progress/kendo-vue-common';\nimport { validatePackage } from '@progress/kendo-vue-common';\nimport { packageMetadata } from '../package-metadata';\nvar RadioButton = {\n name: 'KendoRadioButton',\n props: {\n ariaDescribedBy: String,\n checked: Boolean,\n disabled: Boolean,\n className: String,\n id: String,\n label: String,\n labelRender: [String, Number, Boolean, Object],\n labelPlacement: String,\n name: String,\n tabIndex: Number,\n value: [String, Number, Object],\n valid: {\n type: Boolean,\n default: undefined\n }\n },\n // @ts-ignore\n emits: {\n change: null,\n focus: null,\n blur: null\n },\n created: function created() {\n this.calculatedId = guid();\n validatePackage(packageMetadata);\n },\n mounted: function mounted() {\n this.input = this.v3 ? this.inputRef : this.$refs.input;\n },\n computed: {\n inputClassName: function inputClassName() {\n var _a;\n\n return _a = {\n 'k-radio': true,\n 'k-state-invalid': this.$props.valid === false,\n 'k-invalid': this.$props.valid === false\n }, _a[this.$props.className] = this.$props.className, _a;\n }\n },\n methods: {\n focusElement: function focusElement() {\n if (this.input) {\n this.input.focus();\n }\n },\n handleChange: function handleChange(event) {\n this.$emit('change', {\n event: event,\n value: this.$props.value\n });\n },\n handleFocus: function handleFocus(event) {\n if (!this.$props.disabled) {\n this.$emit('focus', event, undefined);\n }\n },\n handleBlur: function handleBlur(event) {\n if (!this.$props.disabled) {\n this.$emit('blur', event, undefined);\n }\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var inputRef = ref(null);\n return {\n v3: v3,\n inputRef: inputRef\n };\n },\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n var _a = this.$props,\n ariaDescribedBy = _a.ariaDescribedBy,\n checked = _a.checked,\n disabled = _a.disabled,\n id = _a.id,\n label = _a.label,\n labelRender = _a.labelRender,\n labelPlacement = _a.labelPlacement,\n name = _a.name,\n tabIndex = _a.tabIndex,\n value = _a.value;\n var renderedLabel = label;\n\n if (labelRender) {\n var renderTemplate = labelRender ? templateRendering.call(this, labelRender, getListeners.call(this)) : null;\n renderedLabel = getTemplate.call(this, {\n h: h,\n template: renderTemplate\n });\n }\n\n var radioButtonLabel = renderedLabel !== undefined ? h(\"label\", {\n \"class\": 'k-radio-label',\n \"for\": id || this.calculatedId,\n attrs: this.v3 ? undefined : {\n \"for\": id || this.calculatedId,\n \"aria-label\": label\n },\n style: {\n userSelect: 'none'\n },\n \"aria-label\": label\n }, [renderedLabel]) : null;\n var radio = h(\"input\", {\n type: 'radio',\n attrs: this.v3 ? undefined : {\n type: 'radio',\n id: id || this.calculatedId,\n name: name,\n disabled: disabled,\n tabIndex: getTabIndex(tabIndex, disabled),\n \"aria-describedby\": ariaDescribedBy\n },\n id: id || this.calculatedId,\n name: name,\n \"class\": this.inputClassName,\n ref: this.v3 ? function (el) {\n _this.inputRef = el;\n } : 'input',\n disabled: disabled,\n tabIndex: getTabIndex(tabIndex, disabled),\n checked: this.v3 ? checked : null,\n domProps: this.v3 ? undefined : {\n \"checked\": checked,\n \"value\": value\n },\n style: this.$attrs.style,\n \"aria-describedby\": ariaDescribedBy,\n value: this.v3 ? value : null,\n onChange: this.handleChange,\n on: this.v3 ? undefined : {\n \"change\": this.handleChange,\n \"focus\": this.handleFocus,\n \"blur\": this.handleBlur\n },\n onFocus: this.handleFocus,\n onBlur: this.handleBlur\n });\n return labelPlacement === 'before' ? h(\"div\", [radioButtonLabel, radio, defaultSlot]) : h(\"div\", [radio, radioButtonLabel, defaultSlot]);\n }\n};\nvar RadioButtonVue3 = RadioButton;\nexport { RadioButton, RadioButtonVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nvar inject = allVue.inject;\nimport { RadioButton } from './RadioButton';\nimport { guid, classNames, focusFirstFocusableChild, validatePackage, isRtl } from '@progress/kendo-vue-common';\nimport { packageMetadata } from '../package-metadata';\nvar RadioGroup = {\n name: 'KendoRadioGroup',\n props: {\n ariaLabelledBy: String,\n ariaDescribedBy: String,\n dataItems: Array,\n defaultValue: [String, Number, Object],\n dir: String,\n disabled: Boolean,\n labelPlacement: String,\n item: {\n type: String,\n default: 'li'\n },\n layout: {\n type: String,\n default: 'vertical',\n validator: function validator(value) {\n return ['horizontal', 'vertical'].includes(value);\n }\n },\n name: String,\n modelValue: [String, Number, Object],\n value: [String, Number, Object],\n valid: {\n type: Boolean,\n default: undefined\n }\n },\n // @ts-ignore\n emits: {\n 'changemodel': null,\n 'update:modelValue': null,\n change: null,\n focus: null\n },\n model: {\n event: 'changemodel'\n },\n created: function created() {\n this.radioGroupName = guid();\n validatePackage(packageMetadata);\n this.stateChecked = this.$props.defaultValue;\n },\n watch: {\n value: function value(newValue) {\n if (newValue === undefined) {\n this.stateChecked = this.$props.defaultValue;\n }\n }\n },\n mounted: function mounted() {\n this.rtl = isRtl(this.$el);\n },\n computed: {\n radioGroupClasses: function radioGroupClasses() {\n var layout = this.$props.layout;\n return {\n 'k-radio-list': true,\n 'k-list-horizontal': layout === 'horizontal',\n 'k-list-vertical': layout === 'vertical' || layout === undefined\n };\n },\n checkedRadioValue: function checkedRadioValue() {\n var value = this.$props.value;\n return value !== undefined ? value : this.$props.modelValue !== undefined ? this.$props.modelValue : this.stateChecked;\n },\n currentDir: function currentDir() {\n var dir = this.$props.dir;\n return dir ? dir : this.rtl ? 'rtl' : undefined;\n }\n },\n data: function data() {\n return {\n rtl: false,\n stateChecked: undefined\n };\n },\n methods: {\n focusElement: function focusElement() {\n if (this.$el) {\n focusFirstFocusableChild(this.$el);\n }\n },\n handleChange: function handleChange(event) {\n var currentValue = event.value;\n\n if (!(this.$props.value !== undefined) && !this.$props.disabled) {\n this.stateChecked = currentValue;\n }\n\n if (!this.$props.disabled) {\n this.$emit('change', {\n event: event,\n value: currentValue\n });\n this.$emit('changemodel', currentValue);\n this.$emit('update:modelValue', currentValue);\n }\n },\n handleFocus: function handleFocus(event) {\n if (!this.$props.disabled) {\n this.$emit('focus', event);\n }\n },\n handleBlur: function handleBlur(event) {\n if (!this.$props.disabled) {\n this.$emit('blur', event);\n }\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var inputRef = ref(null);\n return {\n v3: v3,\n inputRef: inputRef\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n ariaLabelledBy = _a.ariaLabelledBy,\n ariaDescribedBy = _a.ariaDescribedBy,\n dataItems = _a.dataItems,\n disabled = _a.disabled,\n name = _a.name,\n labelPlacement = _a.labelPlacement,\n valid = _a.valid;\n var radioOptions = dataItems && dataItems.map(function (option, index) {\n var isCurrentlyChecked = this.checkedRadioValue === option.value;\n var noOptionChecked = this.checkedRadioValue === null || this.checkedRadioValue === undefined;\n return h(\"li\", {\n \"class\": classNames('k-radio-item', {\n 'k-state-disabled': option.disabled || disabled\n }),\n key: index,\n role: 'radio',\n attrs: this.v3 ? undefined : {\n role: 'radio'\n }\n }, [// @ts-ignore function children\n h(RadioButton, {\n valid: valid,\n attrs: this.v3 ? undefined : {\n valid: valid,\n className: option.className,\n label: option.label,\n value: option.value,\n checked: isCurrentlyChecked,\n disabled: option.disabled || disabled ? true : false,\n labelPlacement: option.labelPlacement ? option.labelPlacement : labelPlacement,\n tabIndex: option.tabIndex ? option.tabIndex : noOptionChecked && index === 0 || isCurrentlyChecked ? 0 : -1,\n index: index,\n name: name || option.name || this.radioGroupName\n },\n className: option.className,\n label: option.label,\n value: option.value,\n checked: isCurrentlyChecked,\n disabled: option.disabled || disabled ? true : false,\n labelPlacement: option.labelPlacement ? option.labelPlacement : labelPlacement,\n tabIndex: option.tabIndex ? option.tabIndex : noOptionChecked && index === 0 || isCurrentlyChecked ? 0 : -1,\n index: index,\n name: name || option.name || this.radioGroupName,\n onChange: this.handleChange,\n on: this.v3 ? undefined : {\n \"change\": this.handleChange,\n \"focus\": this.handleFocus,\n \"blur\": this.handleBlur\n },\n onFocus: this.handleFocus,\n onBlur: this.handleBlur\n })]);\n }, this);\n return h(\"ul\", {\n role: \"radiogroup\",\n attrs: this.v3 ? undefined : {\n role: \"radiogroup\",\n dir: this.currentDir,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy\n },\n \"class\": this.radioGroupClasses,\n dir: this.currentDir,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy\n }, [radioOptions]);\n }\n};\nvar RadioGroupVue3 = RadioGroup;\nexport { RadioGroup, RadioGroupVue3 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { guid, isRtl, getTabIndex, validatePackage // useDir,\n} from '@progress/kendo-vue-common';\nimport { packageMetadata } from '../package-metadata'; // tslint:enable:max-line-length\n\nvar TextArea = {\n name: 'KendoTextArea',\n inheritAttrs: false,\n model: {\n event: 'changemodel'\n },\n // @ts-ignore\n emits: {\n 'input': null,\n 'change': null,\n 'changemodel': null,\n 'update:modelValue': null,\n 'focus': null,\n 'blur': null\n },\n props: {\n ariaDescribedBy: String,\n ariaLabelledBy: String,\n autoSize: Boolean,\n modelValue: {\n type: [String, Array, Number],\n default: undefined\n },\n defaultValue: [String, Number],\n dir: String,\n disabled: Boolean,\n readOnly: Boolean,\n rows: Number,\n id: String,\n name: String,\n required: Boolean,\n placeholder: String,\n tabIndex: Number,\n valid: {\n type: Boolean,\n default: undefined\n },\n value: [String, Array, Number],\n validityStyles: {\n type: Boolean,\n default: true\n }\n },\n created: function created() {\n validatePackage(packageMetadata);\n this.calculatedId = guid();\n },\n computed: {\n rootClassName: function rootClassName() {\n return {\n 'k-textarea': true,\n 'k-state-invalid': this.validityStyles === true ? !this.isValid : false,\n 'k-state-disabled': this.$props.disabled\n };\n },\n computedValue: function computedValue() {\n return this.$props.value !== undefined ? this.$props.value : this.$props.modelValue !== undefined ? this.$props.modelValue : this.currentValue;\n },\n isValid: function isValid() {\n return this.valid !== undefined ? this.valid : !this.required ? true : this.computedValue ? true : false;\n }\n },\n data: function data() {\n return {\n currentValue: this.$props.defaultValue,\n textAreaHeight: 'auto',\n currentDir: 'ltr'\n };\n },\n mounted: function mounted() {\n this.element = this.v3 ? this.elementRef : this.$refs.element;\n this.currentDir = this.$props.dir !== undefined ? this.$props.dir : isRtl(this.$el) ? 'rtl' : 'ltr';\n this.setValidity();\n },\n updated: function updated() {\n this.element = this.v3 ? this.elementRef : this.$refs.element;\n this.setValidity();\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var _a = this.$props,\n ariaDescribedBy = _a.ariaDescribedBy,\n ariaLabelledBy = _a.ariaLabelledBy,\n autoSize = _a.autoSize,\n disabled = _a.disabled,\n readOnly = _a.readOnly,\n required = _a.required,\n rows = _a.rows,\n id = _a.id,\n name = _a.name,\n placeholder = _a.placeholder,\n tabIndex = _a.tabIndex;\n\n var textAreaAttrs = __assign({\n id: id || this.calculatedId,\n name: name,\n disabled: disabled,\n rows: rows,\n placeholder: placeholder,\n readOnly: readOnly,\n required: required,\n tabIndex: getTabIndex(tabIndex, disabled),\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n 'aria-multiline': true,\n 'aria-disabled': disabled || undefined\n }, this.$attrs);\n\n var textarea = h('textarea', __assign(__assign({}, textAreaAttrs), {\n attrs: this.v3 ? undefined : textAreaAttrs,\n 'class': 'k-input',\n ref: this.v3 ? function (el) {\n _this.elementRef = el;\n } : 'element',\n style: autoSize ? {\n resize: 'none',\n overflow: 'hidden',\n height: this.textAreaHeight\n } : {},\n value: this.v3 ? this.computedValue : null,\n domProps: this.v3 ? undefined : {\n 'value': this.computedValue\n },\n onChange: this.handleChange,\n onInput: this.handleInput,\n on: this.v3 ? undefined : {\n 'change': this.handleChange,\n 'focus': this.handleFocus,\n 'blur': this.handleBlur,\n input: this.handleInput\n },\n onFocus: this.handleFocus,\n onBlur: this.handleBlur\n }));\n return h(\"span\", {\n \"class\": this.rootClassName,\n dir: this.currentDir,\n attrs: this.v3 ? undefined : {\n dir: this.currentDir\n }\n }, [textarea]);\n },\n methods: {\n setValidity: function setValidity() {\n if (this.element && this.element.setCustomValidity) {\n this.element.setCustomValidity(this.isValid ? '' : this.validationMessage || '');\n }\n\n if (this.element) {\n this.textAreaHeight = this.element.scrollHeight + \"px\";\n }\n },\n focus: function focus() {\n if (this.element) {\n this.element.focus();\n }\n },\n handleChange: function handleChange(event) {\n var newValue = event.target.value;\n\n if (!this.$props.disabled) {\n this.textAreaHeight = 'auto';\n this.currentValue = newValue;\n }\n\n if (!this.$props.disabled) {\n this.$emit('change', {\n event: event,\n component: this,\n name: this.element.name,\n value: newValue\n });\n this.$emit('changemodel', newValue);\n this.$emit('update:modelValue', newValue);\n }\n },\n handleInput: function handleInput(event) {\n var newValue = event.target.value;\n\n if (!this.$props.disabled) {\n this.textAreaHeight = 'auto';\n this.currentValue = newValue;\n }\n\n if (!this.$props.disabled) {\n this.$emit('input', {\n event: event,\n component: this,\n name: this.element.name,\n value: newValue\n });\n this.$emit('changemodel', newValue);\n this.$emit('update:modelValue', newValue);\n }\n },\n handleFocus: function handleFocus(event) {\n if (!this.$props.disabled) {\n this.$emit('focus', {\n event: event,\n component: this,\n name: this.element.name\n });\n }\n },\n handleBlur: function handleBlur(event) {\n if (!this.$props.disabled) {\n this.$emit('blur', {\n event: event,\n component: this,\n name: this.element.name\n });\n }\n }\n }\n};\nvar TextAreaVue3 = TextArea;\nexport { TextArea, TextAreaVue3 };","var defaultData = {\n en: {\n name: \"en\",\n identity: {\n version: {\n _number: \"$Revision: 12418 $\",\n _cldrVersion: \"29\"\n },\n language: \"en\"\n },\n territory: \"US\",\n numbers: {\n symbols: {\n decimal: \".\",\n group: \",\",\n list: \";\",\n percentSign: \"%\",\n plusSign: \"+\",\n minusSign: \"-\",\n exponential: \"E\",\n superscriptingExponent: \"×\",\n perMille: \"‰\",\n infinity: \"∞\",\n nan: \"NaN\",\n timeSeparator: \":\"\n },\n decimal: {\n patterns: [\n \"n\"\n ],\n groupSize: [\n 3\n ]\n },\n scientific: {\n patterns: [\n \"nEn\"\n ],\n groupSize: []\n },\n percent: {\n patterns: [\n \"n%\"\n ],\n groupSize: [\n 3\n ]\n },\n currency: {\n patterns: [\n \"$n\"\n ],\n groupSize: [\n 3\n ],\n \"unitPattern-count-one\": \"n $\",\n \"unitPattern-count-other\": \"n $\"\n },\n currencies: {\n BGN: {\n displayName: \"Bulgarian Lev\",\n \"displayName-count-one\": \"Bulgarian lev\",\n \"displayName-count-other\": \"Bulgarian leva\",\n symbol: \"BGN\"\n },\n EUR: {\n displayName: \"Euro\",\n \"displayName-count-one\": \"euro\",\n \"displayName-count-other\": \"euros\",\n symbol: \"€\",\n \"symbol-alt-narrow\": \"€\"\n },\n USD: {\n displayName: \"US Dollar\",\n \"displayName-count-one\": \"US dollar\",\n \"displayName-count-other\": \"US dollars\",\n symbol: \"$\",\n \"symbol-alt-narrow\": \"$\"\n }\n },\n localeCurrency: \"USD\",\n accounting: {\n patterns: [\n \"$n\",\n \"($n)\"\n ],\n groupSize: [\n 3\n ]\n }\n },\n calendar: {\n gmtFormat: \"GMT{0}\",\n gmtZeroFormat: \"GMT\",\n patterns: {\n d: \"M/d/y\",\n D: \"EEEE, MMMM d, y\",\n m: \"MMM d\",\n M: \"MMMM d\",\n y: \"MMM y\",\n Y: \"MMMM y\",\n F: \"EEEE, MMMM d, y h:mm:ss a\",\n g: \"M/d/y h:mm a\",\n G: \"M/d/y h:mm:ss a\",\n t: \"h:mm a\",\n T: \"h:mm:ss a\",\n s: \"yyyy'-'MM'-'dd'T'HH':'mm':'ss\",\n u: \"yyyy'-'MM'-'dd HH':'mm':'ss'Z'\"\n },\n dateTimeFormats: {\n full: \"{1} 'at' {0}\",\n long: \"{1} 'at' {0}\",\n medium: \"{1}, {0}\",\n short: \"{1}, {0}\",\n availableFormats: {\n Bh: \"h B\",\n Bhm: \"h:mm B\",\n Bhms: \"h:mm:ss B\",\n d: \"d\",\n E: \"ccc\",\n EBhm: \"E h:mm B\",\n EBhms: \"E h:mm:ss B\",\n Ed: \"d E\",\n Ehm: \"E h:mm a\",\n EHm: \"E HH:mm\",\n Ehms: \"E h:mm:ss a\",\n EHms: \"E HH:mm:ss\",\n Gy: \"y G\",\n GyMMM: \"MMM y G\",\n GyMMMd: \"MMM d, y G\",\n GyMMMEd: \"E, MMM d, y G\",\n h: \"h a\",\n H: \"HH\",\n hm: \"h:mm a\",\n Hm: \"HH:mm\",\n hms: \"h:mm:ss a\",\n Hms: \"HH:mm:ss\",\n hmsv: \"h:mm:ss a v\",\n Hmsv: \"HH:mm:ss v\",\n hmv: \"h:mm a v\",\n Hmv: \"HH:mm v\",\n M: \"L\",\n Md: \"M/d\",\n MEd: \"E, M/d\",\n MMM: \"LLL\",\n MMMd: \"MMM d\",\n MMMEd: \"E, MMM d\",\n MMMMd: \"MMMM d\",\n \"MMMMW-count-one\": \"'week' W 'of' MMMM\",\n \"MMMMW-count-other\": \"'week' W 'of' MMMM\",\n ms: \"mm:ss\",\n y: \"y\",\n yM: \"M/y\",\n yMd: \"M/d/y\",\n yMEd: \"E, M/d/y\",\n yMMM: \"MMM y\",\n yMMMd: \"MMM d, y\",\n yMMMEd: \"E, MMM d, y\",\n yMMMM: \"MMMM y\",\n yQQQ: \"QQQ y\",\n yQQQQ: \"QQQQ y\",\n \"yw-count-one\": \"'week' w 'of' Y\",\n \"yw-count-other\": \"'week' w 'of' Y\"\n }\n },\n timeFormats: {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\"\n },\n dateFormats: {\n full: \"EEEE, MMMM d, y\",\n long: \"MMMM d, y\",\n medium: \"MMM d, y\",\n short: \"M/d/yy\"\n },\n days: {\n format: {\n abbreviated: [\n \"Sun\",\n \"Mon\",\n \"Tue\",\n \"Wed\",\n \"Thu\",\n \"Fri\",\n \"Sat\"\n ],\n narrow: [\n \"S\",\n \"M\",\n \"T\",\n \"W\",\n \"T\",\n \"F\",\n \"S\"\n ],\n short: [\n \"Su\",\n \"Mo\",\n \"Tu\",\n \"We\",\n \"Th\",\n \"Fr\",\n \"Sa\"\n ],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\"\n ]\n },\n \"stand-alone\": {\n abbreviated: [\n \"Sun\",\n \"Mon\",\n \"Tue\",\n \"Wed\",\n \"Thu\",\n \"Fri\",\n \"Sat\"\n ],\n narrow: [\n \"S\",\n \"M\",\n \"T\",\n \"W\",\n \"T\",\n \"F\",\n \"S\"\n ],\n short: [\n \"Su\",\n \"Mo\",\n \"Tu\",\n \"We\",\n \"Th\",\n \"Fr\",\n \"Sa\"\n ],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\"\n ]\n }\n },\n months: {\n format: {\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n ],\n narrow: [\n \"J\",\n \"F\",\n \"M\",\n \"A\",\n \"M\",\n \"J\",\n \"J\",\n \"A\",\n \"S\",\n \"O\",\n \"N\",\n \"D\"\n ],\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n ]\n },\n \"stand-alone\": {\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n ],\n narrow: [\n \"J\",\n \"F\",\n \"M\",\n \"A\",\n \"M\",\n \"J\",\n \"J\",\n \"A\",\n \"S\",\n \"O\",\n \"N\",\n \"D\"\n ],\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n ]\n }\n },\n quarters: {\n format: {\n abbreviated: [\n \"Q1\",\n \"Q2\",\n \"Q3\",\n \"Q4\"\n ],\n narrow: [\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n wide: [\n \"1st quarter\",\n \"2nd quarter\",\n \"3rd quarter\",\n \"4th quarter\"\n ]\n },\n \"stand-alone\": {\n abbreviated: [\n \"Q1\",\n \"Q2\",\n \"Q3\",\n \"Q4\"\n ],\n narrow: [\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n wide: [\n \"1st quarter\",\n \"2nd quarter\",\n \"3rd quarter\",\n \"4th quarter\"\n ]\n }\n },\n dayPeriods: {\n format: {\n abbreviated: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"in the morning\",\n afternoon1: \"in the afternoon\",\n evening1: \"in the evening\",\n night1: \"at night\"\n },\n narrow: {\n midnight: \"mi\",\n am: \"a\",\n \"am-alt-variant\": \"am\",\n noon: \"n\",\n pm: \"p\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"in the morning\",\n afternoon1: \"in the afternoon\",\n evening1: \"in the evening\",\n night1: \"at night\"\n },\n wide: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"in the morning\",\n afternoon1: \"in the afternoon\",\n evening1: \"in the evening\",\n night1: \"at night\"\n }\n },\n \"stand-alone\": {\n abbreviated: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"morning\",\n afternoon1: \"afternoon\",\n evening1: \"evening\",\n night1: \"night\"\n },\n narrow: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"morning\",\n afternoon1: \"afternoon\",\n evening1: \"evening\",\n night1: \"night\"\n },\n wide: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"morning\",\n afternoon1: \"afternoon\",\n evening1: \"evening\",\n night1: \"night\"\n }\n }\n },\n eras: {\n format: {\n wide: {\n \"0\": \"Before Christ\",\n \"1\": \"Anno Domini\",\n \"0-alt-variant\": \"Before Common Era\",\n \"1-alt-variant\": \"Common Era\"\n },\n abbreviated: {\n \"0\": \"BC\",\n \"1\": \"AD\",\n \"0-alt-variant\": \"BCE\",\n \"1-alt-variant\": \"CE\"\n },\n narrow: {\n \"0\": \"B\",\n \"1\": \"A\",\n \"0-alt-variant\": \"BCE\",\n \"1-alt-variant\": \"CE\"\n }\n }\n },\n dateFields: {\n era: {\n wide: \"era\"\n },\n year: {\n wide: \"year\",\n short: \"yr.\",\n narrow: \"yr.\"\n },\n quarter: {\n wide: \"quarter\",\n short: \"qtr.\",\n narrow: \"qtr.\"\n },\n month: {\n wide: \"month\",\n short: \"mo.\",\n narrow: \"mo.\"\n },\n week: {\n wide: \"week\",\n short: \"wk.\",\n narrow: \"wk.\"\n },\n day: {\n wide: \"day\",\n short: \"day\",\n narrow: \"day\"\n },\n weekday: {\n wide: \"day of the week\"\n },\n dayperiod: {\n wide: \"AM/PM\"\n },\n hour: {\n wide: \"hour\",\n short: \"hr.\",\n narrow: \"hr.\"\n },\n minute: {\n wide: \"minute\",\n short: \"min.\",\n narrow: \"min.\"\n },\n second: {\n wide: \"second\",\n short: \"sec.\",\n narrow: \"sec.\"\n },\n millisecond: {\n wide: \"millisecond\",\n short: \"ms\",\n narrow: \"ms\"\n },\n zone: {\n wide: \"time zone\"\n }\n }\n }\n },\n supplemental: {\n likelySubtags: {\n en: \"en-Latn-US\"\n },\n currencyData: {\n region: {\n US: [\n {\n USD: {\n _from: \"1792-01-01\"\n }\n }\n ]\n }\n },\n weekData: {\n firstDay: {\n US: \"sun\"\n },\n weekendStart: {\n \"001\": \"sat\"\n },\n weekendEnd: {\n \"001\": \"sun\"\n }\n }\n }\n};\nexport default defaultData;","export default function isString(value) {\n return typeof value === \"string\";\n}","//The error is represented by unique name and corresponding message\n//The message can contain placeholders with index, e.g. {0}, {1}\n\nexport default {\n \"NoLocale\": \"Missing locale info for '{0}'\",\n \"NoCurrency\": \"Cannot determine currency information. Please load the locale currencies data.\",\n \"NoSupplementalCurrency\": \"Cannot determine currency. Please load the supplemental currencyData.\",\n \"NoCurrencyRegion\": \"No currency data for region '{0}'\",\n \"NoCurrencyDisplay\": \"Cannot determine currency display information. Please load the locale currencies data. The default culture does not include the all currencies data.\",\n \"NoGMTInfo\": \"Cannot determine locale GMT format. Please load the locale timeZoneNames data.\",\n \"NoWeekData\": \"Cannot determine locale first day of week. Please load the supplemental weekData.\",\n \"NoFirstDay\": \"Cannot determine locale first day of week. Please load the supplemental weekData. The default culture includes only the 'en-US' first day info.\",\n \"NoValidCurrency\": \"Cannot determine a default currency for the {0} locale. Please specify explicitly the currency with the format options.\",\n \"NoDateFieldNames\": \"Cannot determine the locale date field names. Please load the locale dateFields data.\"\n};\n","import errorDetails from './error-details';\n\nvar formatRegExp = /\\{(\\d+)}?\\}/g;\n\nvar IntlError = function IntlError(ref) {\n var name = ref.name;\n var message = ref.message;\n\n if (!name || !message) {\n throw new Error(\"{ name: string, message: string } object is required!\");\n }\n\n this.name = name;\n this.message = message;\n};\n\nIntlError.prototype.formatMessage = function formatMessage () {\n var values = [], len = arguments.length;\n while ( len-- ) values[ len ] = arguments[ len ];\n\n var flattenValues = flatten(values);\n\n var formattedMessage = this.message.replace(formatRegExp, function(match, index) {\n return flattenValues[parseInt(index, 10)];\n });\n\n return ((this.name) + \": \" + formattedMessage);\n};\n\nIntlError.prototype.error = function error () {\n var values = [], len = arguments.length;\n while ( len-- ) values[ len ] = arguments[ len ];\n\n return new Error(this.formatMessage(values));\n};\n\nvar flatten = function(arr) {\n return arr.reduce(function (a, b) { return a.concat(b); }, []);\n};\n\nvar toIntlErrors = function(errors) {\n var predicate = function(prev, name) {\n prev[name] = new IntlError({ name: name, message: errors[name] });\n return prev;\n };\n\n return Object.keys(errors).reduce(predicate, {});\n};\n\nvar errors = toIntlErrors(errorDetails);\n\nexport {\n errors,\n IntlError,\n toIntlErrors\n};\n","import defaultData from './default-data';\nimport isString from '../common/is-string';\nimport { errors } from '../errors';\n\nfunction availableLocaleInfo(fullName, suffixes) {\n var parts = fullName.split(\"-\");\n var language = parts[0];\n var script = parts[1];\n var territory = parts[2];\n\n return cldr[fullName] || (suffixes.indexOf(territory) !== -1 && cldr[language + \"-\" + territory]) || (suffixes.indexOf(script) !== -1 && cldr[language + \"-\" + script]) || cldr[language];\n}\n\nfunction localeFullName(language, suffixes) {\n var likelySubtags = cldr.supplemental.likelySubtags;\n\n for (var idx = 0; idx < suffixes.length; idx++) {\n var name = likelySubtags[language + \"-\" + suffixes[idx ]];\n if (name) {\n return name;\n }\n }\n\n if (likelySubtags[language]) {\n return likelySubtags[language];\n }\n}\n\nexport var cldr = defaultData;\n\nexport function getLocaleInfo(locale) {\n var info;\n if (isString(locale)) {\n info = localeInfo(locale);\n } else {\n info = locale;\n }\n return info;\n}\n\nexport function localeInfo(locale) {\n if (cldr[locale]) {\n return cldr[locale];\n }\n\n var likelySubtags = cldr.supplemental.likelySubtags;\n if (likelySubtags) {\n var parts = locale.split(\"-\");\n var language = parts[0];\n var suffixes = parts.slice(1);\n var fullName = localeFullName(language, suffixes);\n var info = fullName ? availableLocaleInfo(fullName, suffixes) : null;\n if (info) {\n return info;\n }\n }\n\n throw errors.NoLocale.error(locale);\n}\n","import { cldr } from './info';\n\nfunction territoryFromName(name, identity) {\n var likelySubtags = cldr.supplemental.likelySubtags;\n var parts = name.split(\"-\");\n if (likelySubtags) {\n var likelyName = likelySubtags[name] || likelySubtags[parts[0]];\n if (likelyName) {\n parts = likelyName.split(\"-\");\n }\n }\n\n if (identity) {\n for (var idx = parts.length - 1; idx >= 1; idx--) {\n var part = parts[idx];\n if (part === identity.variant || part === identity.script) {\n parts.splice(idx, 1);\n }\n }\n }\n\n var length = parts.length;\n\n if (length > 1) {\n var territory = parts[length - 1];\n return territory.toUpperCase();\n }\n}\n\nexport default function localeTerritory(info) {\n if (info.territory) {\n return info.territory;\n }\n\n var name = info.name;\n var identity = info.identity;\n var territory;\n\n if (identity && identity.territory) {\n territory = identity.territory;\n } else {\n territory = territoryFromName(name, identity);\n }\n\n info.territory = territory;\n\n return territory;\n}\n","export var DECIMAL = \"decimal\";\nexport var CURRENCY = \"currency\";\nexport var ACCOUNTING = \"accounting\";\nexport var PERCENT = \"percent\";\nexport var SCIENTIFIC = \"scientific\";\n\nexport var CURRENCY_PLACEHOLDER = \"$\";\nexport var PERCENT_PLACEHOLDER = \"%\";\nexport var NUMBER_PLACEHOLDER = \"n\";\n\nexport var LIST_SEPARATOR = \";\";\nexport var GROUP_SEPARATOR = \",\";\n\nexport var POINT = \".\";\nexport var EMPTY = \"\";\n\nexport var DEFAULT_LOCALE = \"en\";\n\n","import { localeInfo } from './info';\nimport { errors } from '../errors';\nimport { DEFAULT_LOCALE } from '../common/constants';\n\nexport default function dateFieldName(options, locale) {\n if ( locale === void 0 ) locale = DEFAULT_LOCALE;\n\n var info = localeInfo(locale);\n var dateFields = info.calendar.dateFields;\n if (!dateFields) {\n throw errors.NoDateFieldNames.error();\n }\n\n var fieldNameInfo = dateFields[options.type] || {};\n\n return fieldNameInfo[options.nameType] || fieldNameInfo['wide'];\n}\n","import { getLocaleInfo } from './info';\nimport { EMPTY } from '../common/constants';\n\nfunction lowerArray(arr) {\n var result = [];\n for (var idx = 0; idx < arr.length; idx++) {\n result.push(arr[idx].toLowerCase());\n }\n return result;\n}\n\nfunction lowerObject(obj) {\n var result = {};\n for (var field in obj) {\n result[field] = obj[field].toLowerCase();\n }\n return result;\n}\n\nfunction cloneLower(obj) {\n var result = Array.isArray(obj) ? lowerArray(obj) : lowerObject(obj);\n return result;\n}\n\nexport default function dateFormatNames(locale, options) {\n var type = options.type;\n var nameType = options.nameType;\n var standAlone = options.standAlone;\n var lower = options.lower;\n var info = getLocaleInfo(locale);\n var formatType = standAlone ? \"stand-alone\" : \"format\";\n var lowerNameType = (lower ? \"lower-\" : EMPTY) + nameType;\n var formatNames = info.calendar[type][formatType];\n var result = formatNames[lowerNameType];\n if (!result && lower) {\n result = formatNames[lowerNameType] = cloneLower(formatNames[nameType]);\n }\n return result;\n}","export default function parseRangeDate(value) {\n var parts = value.split('-');\n var year = parseInt(parts[0], 10);\n var month = parseInt(parts[1], 10) - 1;\n var day = parseInt(parts[2], 10);\n\n return new Date(year, month, day);\n}\n","import { cldr, getLocaleInfo } from './info';\nimport { errors } from '../errors';\nimport localeTerritory from './territory';\nimport parseRangeDate from './parse-range-date';\n\n/* eslint-disable consistent-return */\n\nvar NoCurrency = errors.NoCurrency;\nvar NoCurrencyDisplay = errors.NoCurrencyDisplay;\nvar NoSupplementalCurrency = errors.NoSupplementalCurrency;\nvar NoCurrencyRegion = errors.NoCurrencyRegion;\nvar NoValidCurrency = errors.NoValidCurrency;\n\nvar DEFAULT_CURRENCY_FRACTIONS = 2;\nvar SYMBOL = \"symbol\";\nvar INVALID_CURRENCY_CODE = 'XXX';\n\nvar GLOBAL_CURRENCIES = {\n '001': 'USD', // 001 refers to world. not sure if it is correct to assume USD but seems better than throw an error\n '150': 'EUR' // 150 territory for Europe\n\n};\n\nfunction getCurrencyInfo(locale, currency, throwIfNoValid) {\n var info = getLocaleInfo(locale);\n var currencies = info.numbers.currencies;\n if (!currencies) {\n if (throwIfNoValid) {\n throw NoCurrency.error();\n }\n\n return;\n }\n\n var currencyDisplayInfo = currencies[currency];\n\n if (!currencyDisplayInfo) {\n if (throwIfNoValid) {\n throw NoCurrencyDisplay.error();\n }\n\n return;\n }\n\n return currencyDisplayInfo;\n}\n\nfunction lengthComparer(a, b) {\n return b.length - a.length;\n}\n\nfunction regionCurrency(regionCurrencies) {\n var latestValidUntil, latestValidUntilRange;\n var latestStillValid, latestStillValidDate;\n\n for (var idx = 0; idx < regionCurrencies.length; idx++) {\n var currency = regionCurrencies[idx];\n var code = Object.keys(currency)[0];\n var info = currency[code];\n if (code !== INVALID_CURRENCY_CODE && info._tender !== 'false' && info._from) {\n if (!info._to) {\n var stillValidDate = parseRangeDate(info._from);\n if (!latestStillValidDate || latestStillValidDate < stillValidDate) {\n latestStillValid = code;\n latestStillValidDate = stillValidDate;\n }\n } else if (!latestStillValid) {\n var validFrom = parseRangeDate(info._from);\n var validTo = parseRangeDate(info._to);\n if (!latestValidUntilRange || latestValidUntilRange.to < validTo || latestValidUntilRange.from < validFrom) {\n latestValidUntil = code;\n latestValidUntilRange = {\n from: validFrom,\n to: validTo\n };\n }\n }\n }\n }\n\n return latestStillValid || latestValidUntil;\n}\n\nexport function currencyDisplays(locale, currency, throwIfNoValid) {\n if ( throwIfNoValid === void 0 ) throwIfNoValid = true;\n\n var currencyInfo = getCurrencyInfo(locale, currency, throwIfNoValid);\n if (!currencyInfo) {\n return;\n }\n\n if (!currencyInfo.displays) {\n var displays = [ currency ];\n for (var field in currencyInfo) {\n displays.push(currencyInfo[field]);\n }\n displays.sort(lengthComparer);\n currencyInfo.displays = displays;\n }\n\n return currencyInfo.displays;\n}\n\nexport function currencyDisplay(locale, options) {\n var value = options.value;\n var currency = options.currency;\n var currencyDisplay = options.currencyDisplay; if ( currencyDisplay === void 0 ) currencyDisplay = SYMBOL;\n\n if (currencyDisplay === \"code\") {\n return currency;\n }\n\n var currencyInfo = getCurrencyInfo(locale, currency, true);\n var result;\n\n if (currencyDisplay === SYMBOL) {\n result = currencyInfo[\"symbol-alt-narrow\"] || currencyInfo[SYMBOL];\n } else {\n if (typeof value === undefined || value !== 1) {\n result = currencyInfo[\"displayName-count-other\"];\n } else {\n result = currencyInfo[\"displayName-count-one\"];\n }\n }\n\n return result;\n}\n\nexport function currencyFractionOptions(code) {\n var minimumFractionDigits = DEFAULT_CURRENCY_FRACTIONS;\n var maximumFractionDigits = DEFAULT_CURRENCY_FRACTIONS;\n\n var fractions = ((cldr.supplemental.currencyData || {}).fractions || {})[code];\n\n if (fractions && fractions._digits) {\n maximumFractionDigits = minimumFractionDigits = parseInt(fractions._digits, 10);\n }\n\n return {\n minimumFractionDigits: minimumFractionDigits,\n maximumFractionDigits: maximumFractionDigits\n };\n}\n\nexport function territoryCurrencyCode(territory, throwIfNoValid) {\n if ( throwIfNoValid === void 0 ) throwIfNoValid = true;\n\n if (GLOBAL_CURRENCIES[territory]) {\n return GLOBAL_CURRENCIES[territory];\n }\n\n var currencyData = cldr.supplemental.currencyData;\n if (!currencyData) {\n if (throwIfNoValid) {\n throw NoSupplementalCurrency.error();\n }\n\n return;\n }\n\n var regionCurrencies = currencyData.region[territory];\n\n if (!regionCurrencies) {\n if (throwIfNoValid) {\n throw NoCurrencyRegion.error(territory);\n }\n\n return;\n }\n\n var currencyCode = regionCurrency(regionCurrencies);\n\n return currencyCode;\n}\n\nexport function localeCurrency(locale, throwIfNoValid) {\n var info = getLocaleInfo(locale);\n var numbers = info.numbers;\n\n if (!numbers.localeCurrency) {\n var currency = territoryCurrencyCode(localeTerritory(info), throwIfNoValid);\n\n if (!currency && throwIfNoValid) {\n throw NoValidCurrency.error(info.name);\n }\n\n numbers.localeCurrency = currency;\n }\n\n return numbers.localeCurrency;\n}\n","\nexport var DAYS_OF_WEEK = [ \"sun\", \"mon\", \"tue\", \"wed\", \"thu\", \"fri\", \"sat\" ];\n\nexport var DEFAULT_TERRITORY = '001';\n","import { cldr, getLocaleInfo } from './info';\nimport localeTerritory from './territory';\n\nimport { DAYS_OF_WEEK, DEFAULT_TERRITORY } from './constants';\nimport { errors } from '../errors';\n\nvar NoWeekData = errors.NoWeekData;\nvar NoFirstDay = errors.NoFirstDay;\n\nexport default function firstDay(locale) {\n var info = getLocaleInfo(locale);\n\n if (!isNaN(info.firstDay)) {\n return info.firstDay;\n }\n\n var weekData = cldr.supplemental.weekData;\n if (!weekData) {\n throw NoWeekData.error();\n }\n\n var firstDay = weekData.firstDay[localeTerritory(info)] || weekData.firstDay[DEFAULT_TERRITORY];\n\n if (!firstDay) {\n throw NoFirstDay.error();\n }\n\n info.firstDay = DAYS_OF_WEEK.indexOf(firstDay);\n\n return info.firstDay;\n}\n","import { cldr, getLocaleInfo } from './info';\nimport localeTerritory from './territory';\n\nimport { DAYS_OF_WEEK, DEFAULT_TERRITORY } from './constants';\nimport { errors } from '../errors';\n\nvar NoWeekData = errors.NoWeekData;\n\nexport default function weekendRange(locale) {\n var info = getLocaleInfo(locale);\n\n if (info.weekendRange) {\n return info.weekendRange;\n }\n\n var weekData = cldr.supplemental.weekData;\n if (!weekData) {\n throw NoWeekData.error();\n }\n\n var territory = localeTerritory(info);\n var start = weekData.weekendStart[territory] || weekData.weekendStart[DEFAULT_TERRITORY];\n var end = weekData.weekendEnd[territory] || weekData.weekendEnd[DEFAULT_TERRITORY];\n\n info.weekendRange = {\n start: DAYS_OF_WEEK.indexOf(start),\n end: DAYS_OF_WEEK.indexOf(end)\n };\n\n return info.weekendRange;\n}\n","import { getLocaleInfo } from './info';\n\nexport default function numberSymbols(locale) {\n var info = getLocaleInfo(locale);\n\n return info.numbers.symbols;\n}","export default function isNegativeZero(value) {\n return (1 / value === -Infinity);\n}\n","import { currencyDisplay, localeCurrency } from '../cldr';\n\nexport default function formatCurrencySymbol(info, options) {\n if ( options === void 0 ) options = {};\n\n if (!options.currency) {\n options.currency = localeCurrency(info, true);\n }\n\n var display = currencyDisplay(info, options);\n\n return display;\n}\n","export default function groupInteger(number, start, end, options, info) {\n var symbols = info.numbers.symbols;\n var decimalIndex = number.indexOf(symbols.decimal);\n var groupSizes = options.groupSize.slice();\n var groupSize = groupSizes.shift();\n\n var integerEnd = decimalIndex !== -1 ? decimalIndex : end + 1;\n\n var integer = number.substring(start, integerEnd);\n var result = number;\n var integerLength = integer.length;\n\n if (integerLength >= groupSize) {\n var idx = integerLength;\n var parts = [];\n\n while (idx > -1) {\n var value = integer.substring(idx - groupSize, idx);\n if (value) {\n parts.push(value);\n }\n idx -= groupSize;\n var newGroupSize = groupSizes.shift();\n groupSize = newGroupSize !== undefined ? newGroupSize : groupSize;\n\n if (groupSize === 0) {\n value = integer.substring(0, idx);\n if (value) {\n parts.push(value);\n }\n break;\n }\n }\n\n integer = parts.reverse().join(symbols.group);\n result = number.substring(0, start) + integer + number.substring(integerEnd);\n }\n\n return result;\n}","import { CURRENCY, ACCOUNTING } from '../common/constants';\n\nexport default function isCurrencyStyle(style) {\n return style === CURRENCY || style === ACCOUNTING;\n}","export default function pad(number, digits, right) {\n if ( digits === void 0 ) digits = 2;\n if ( right === void 0 ) right = false;\n\n var count = digits - String(number).length;\n var result = number;\n\n if (count > 0) {\n var padString = new Array(count + 1).join(\"0\");\n result = right ? number + padString : padString + number;\n }\n\n return result;\n}","var MAX_PRECISION = 20;\n\nexport default function round(value, precision) {\n var result = value;\n var decimals = precision || 0;\n\n result = result.toString().split('e');\n result = Math.round(Number(result[0] + 'e' + (result[1] ? (Number(result[1]) + decimals) : decimals)));\n\n result = result.toString().split('e');\n result = Number(result[0] + 'e' + (result[1] ? (Number(result[1]) - decimals) : -decimals));\n\n return result.toFixed(Math.min(decimals, MAX_PRECISION));\n}","import { PERCENT, SCIENTIFIC, NUMBER_PLACEHOLDER, CURRENCY_PLACEHOLDER, PERCENT_PLACEHOLDER, EMPTY, POINT } from '../common/constants';\nimport isNegativeZero from '../common/is-negative-zero';\nimport formatCurrencySymbol from './format-currency-symbol';\nimport groupInteger from './group-integer';\nimport isCurrencyStyle from './is-currency-style';\nimport pad from '../common/pad';\nimport round from '../common/round';\nimport { currencyFractionOptions } from '../cldr';\n\nvar DEFAULT_DECIMAL_ROUNDING = 3;\nvar DEFAULT_PERCENT_ROUNDING = 0;\n\nvar trailingZeroRegex = /0+$/;\n\nfunction fractionOptions(options) {\n var minimumFractionDigits = options.minimumFractionDigits;\n var maximumFractionDigits = options.maximumFractionDigits;\n var style = options.style;\n var isCurrency = isCurrencyStyle(style);\n var currencyFractions;\n if (isCurrency) {\n currencyFractions = currencyFractionOptions(options.currency);\n }\n\n if (minimumFractionDigits === undefined) {\n minimumFractionDigits = isCurrency ? currencyFractions.minimumFractionDigits : 0;\n }\n\n if (maximumFractionDigits === undefined) {\n if (style === PERCENT) {\n maximumFractionDigits = Math.max(minimumFractionDigits, DEFAULT_PERCENT_ROUNDING);\n } else if (isCurrency) {\n maximumFractionDigits = Math.max(minimumFractionDigits, currencyFractions.maximumFractionDigits);\n } else {\n maximumFractionDigits = Math.max(minimumFractionDigits, DEFAULT_DECIMAL_ROUNDING);\n }\n }\n\n return {\n minimumFractionDigits: minimumFractionDigits,\n maximumFractionDigits: maximumFractionDigits\n };\n}\n\nfunction applyPattern(value, pattern, symbol) {\n var result = EMPTY;\n for (var idx = 0, length = pattern.length; idx < length; idx++) {\n var ch = pattern.charAt(idx);\n\n if (ch === NUMBER_PLACEHOLDER) {\n result += value;\n } else if (ch === CURRENCY_PLACEHOLDER || ch === PERCENT_PLACEHOLDER) {\n result += symbol;\n } else {\n result += ch;\n }\n }\n return result;\n}\n\nfunction currencyUnitPattern(info, value) {\n var currencyInfo = info.numbers.currency;\n var pattern = value !== 1 ? currencyInfo[\"unitPattern-count-other\"] : currencyInfo[\"unitPattern-count-one\"];\n if (value < 0) {\n pattern = pattern.replace(NUMBER_PLACEHOLDER, (\"-\" + NUMBER_PLACEHOLDER));\n }\n\n return pattern;\n}\n\n\nexport default function standardNumberFormat(number, options, info) {\n var symbols = info.numbers.symbols;\n var style = options.style;\n var isCurrency = isCurrencyStyle(style);\n\n //return number in exponential format\n if (style === SCIENTIFIC) {\n var exponential = options.minimumFractionDigits !== undefined ? number.toExponential(options.minimumFractionDigits) : number.toExponential();\n return exponential.replace(POINT, symbols.decimal);\n }\n\n var value = number;\n var symbol;\n\n if (isCurrency) {\n options.value = value;\n symbol = formatCurrencySymbol(info, options);\n }\n\n if (style === PERCENT) {\n value *= 100;\n symbol = symbols.percentSign;\n }\n\n var ref = fractionOptions(options);\n var minimumFractionDigits = ref.minimumFractionDigits;\n var maximumFractionDigits = ref.maximumFractionDigits;\n\n value = round(value, maximumFractionDigits);\n\n var negative = value < 0;\n var negativeZero = isNegativeZero(number);\n\n var parts = value.split(POINT);\n\n var integer = parts[0];\n var fraction = pad(parts[1] ? parts[1].replace(trailingZeroRegex, EMPTY) : EMPTY, minimumFractionDigits, true);\n\n //exclude \"-\" if number is negative.\n if (negative) {\n integer = integer.substring(1);\n }\n\n if (options.minimumIntegerDigits) {\n integer = pad(integer, options.minimumIntegerDigits);\n }\n\n var formattedValue = options.useGrouping !== false ? groupInteger(integer, 0, integer.length, options, info) : integer;\n\n if (fraction) {\n formattedValue += symbols.decimal + fraction;\n }\n\n var pattern;\n\n if (isCurrency && options.currencyDisplay === \"name\") {\n pattern = currencyUnitPattern(info, number);\n } else {\n var patterns = options.patterns;\n pattern = (negative || negativeZero) ? patterns[1] || (\"-\" + patterns[0]) : patterns[0];\n }\n\n if (pattern === NUMBER_PLACEHOLDER && !negative) {\n return formattedValue;\n }\n\n var result = applyPattern(formattedValue, pattern, symbol);\n\n return result;\n}","import { PERCENT_PLACEHOLDER, CURRENCY_PLACEHOLDER, CURRENCY, PERCENT, EMPTY } from '../common/constants';\nimport formatCurrencySymbol from './format-currency-symbol';\n\nvar literalRegExp = /(\\\\.)|(['][^']*[']?)|([\"][^\"]*[\"]?)/g;\nvar PLACEHOLDER = \"__??__\";\n\nexport function setStyleOptions(formatOptions, info) {\n var format = formatOptions.format;\n\n //multiply number if the format has percent\n if (format.indexOf(PERCENT_PLACEHOLDER) !== -1) {\n formatOptions.style = PERCENT;\n formatOptions.symbol = info.numbers.symbols.percentSign;\n formatOptions.number *= 100;\n }\n\n if (format.indexOf(CURRENCY_PLACEHOLDER) !== -1) {\n formatOptions.style = CURRENCY;\n formatOptions.symbol = formatCurrencySymbol(info);\n }\n}\n\nexport function setFormatLiterals(formatOptions) {\n var format = formatOptions.format;\n if (format.indexOf(\"'\") > -1 || format.indexOf(\"\\\"\") > -1 || format.indexOf(\"\\\\\") > -1) {\n var literals = formatOptions.literals = [];\n formatOptions.format = format.replace(literalRegExp, function(match) {\n var quoteChar = match.charAt(0).replace(\"\\\\\", EMPTY);\n var literal = match.slice(1).replace(quoteChar, EMPTY);\n\n literals.push(literal);\n\n return PLACEHOLDER;\n });\n }\n}\n\nexport function replaceLiterals(number, literals) {\n var result = number;\n if (literals) {\n var length = literals.length;\n for (var idx = 0; idx < length; idx++) {\n result = result.replace(PLACEHOLDER, literals[idx]);\n }\n }\n return result;\n}","import { CURRENCY, PERCENT, LIST_SEPARATOR, GROUP_SEPARATOR, CURRENCY_PLACEHOLDER, PERCENT_PLACEHOLDER, POINT, EMPTY } from '../common/constants';\nimport isNegativeZero from '../common/is-negative-zero';\nimport groupInteger from './group-integer';\nimport round from '../common/round';\nimport { setStyleOptions, setFormatLiterals, replaceLiterals } from './utils';\n\nvar SHARP = \"#\";\nvar ZERO = \"0\";\n\nvar trailingZerosRegExp = /(\\.(?:[0-9]*[1-9])?)0+$/g;\nvar trailingPointRegExp = /\\.$/;\nvar commaRegExp = /\\,/g;\n\nfunction trimTrailingZeros(value, lastZero) {\n var trimRegex;\n\n if (lastZero === 0) {\n trimRegex = trailingZerosRegExp;\n } else {\n trimRegex = new RegExp((\"(\\\\.[0-9]{\" + lastZero + \"}[1-9]*)0+$\"), 'g');\n }\n\n return value.replace(trimRegex, '$1').replace(trailingPointRegExp, EMPTY);\n}\n\nfunction roundNumber(formatOptions) {\n var number = formatOptions.number;\n var format = formatOptions.format;\n var decimalIndex = format.indexOf(POINT);\n\n if (decimalIndex !== -1) {\n var zeroIndex = format.lastIndexOf(ZERO) - decimalIndex;\n var sharpIndex = format.lastIndexOf(SHARP) - decimalIndex;\n var hasZero = zeroIndex > -1;\n var hasSharp = sharpIndex > -1;\n var fraction = number.toString().split(\"e\");\n\n if (fraction[1]) {\n fraction = round(number, Math.abs(fraction[1]));\n } else {\n fraction = fraction[0];\n }\n fraction = fraction.split(POINT)[1] || EMPTY;\n\n var precision = fraction.length;\n var trailingZeros = -1;\n\n if (!hasZero && !hasSharp) {\n formatOptions.format = format.substring(0, decimalIndex) + format.substring(decimalIndex + 1);\n decimalIndex = -1;\n precision = 0;\n } else if (hasZero && zeroIndex > sharpIndex) {\n precision = zeroIndex;\n } else if (sharpIndex > zeroIndex) {\n if (hasSharp && precision > sharpIndex) {\n precision = sharpIndex;\n } else if (hasZero && precision < zeroIndex) {\n precision = zeroIndex;\n }\n\n trailingZeros = hasZero ? zeroIndex : 0;\n }\n\n if (precision > -1) {\n number = round(number, precision);\n if (trailingZeros > -1) {\n number = trimTrailingZeros(number, trailingZeros);\n }\n }\n } else {\n number = round(number);\n }\n\n if (formatOptions.negative && (number * -1) >= 0 && !formatOptions.negativeZero) {\n formatOptions.negative = false;\n }\n\n formatOptions.number = number;\n formatOptions.decimalIndex = decimalIndex;\n}\n\nfunction isConstantFormat(format) {\n return format.indexOf(SHARP) === -1 && format.indexOf(ZERO) === -1;\n}\n\nfunction setValueSpecificFormat(formatOptions) {\n var number = formatOptions.number;\n var format = formatOptions.format;\n format = format.split(LIST_SEPARATOR);\n if ((formatOptions.negative || formatOptions.negativeZero) && format[1]) {\n format = format[1];\n formatOptions.hasNegativeFormat = true;\n } else if (number === 0) {\n var zeroFormat = format[2];\n format = zeroFormat || format[0];\n if (zeroFormat && isConstantFormat(zeroFormat)) {\n formatOptions.constant = zeroFormat;\n }\n } else {\n format = format[0];\n }\n\n formatOptions.format = format;\n}\n\nfunction setGroupOptions(formatOptions) {\n formatOptions.hasGroup = formatOptions.format.indexOf(GROUP_SEPARATOR) > -1;\n if (formatOptions.hasGroup) {\n formatOptions.format = formatOptions.format.replace(commaRegExp, EMPTY);\n }\n}\n\nfunction placeholderIndex(index1, index2, start) {\n var index;\n if (index1 === -1 && index2 !== -1) {\n index = index2;\n } else if (index1 !== -1 && index2 === -1) {\n index = index1;\n } else {\n index = start ? Math.min(index1, index2) : Math.max(index1, index2);\n }\n return index;\n}\n\nfunction setPlaceholderIndices(formatOptions) {\n var format = formatOptions.format;\n var sharpIndex = format.indexOf(SHARP);\n var zeroIndex = format.indexOf(ZERO);\n\n var start = placeholderIndex(sharpIndex, zeroIndex, true);\n\n sharpIndex = format.lastIndexOf(SHARP);\n zeroIndex = format.lastIndexOf(ZERO);\n\n var end = placeholderIndex(sharpIndex, zeroIndex);\n\n if (start === format.length) {\n end = start;\n }\n\n formatOptions.start = start;\n formatOptions.end = end;\n formatOptions.lastZeroIndex = zeroIndex;\n}\n\nfunction replaceStyleSymbols(number, style, symbol) {\n var result = number;\n if (style === CURRENCY || style === PERCENT) {\n result = EMPTY;\n for (var idx = 0, length = number.length; idx < length; idx++) {\n var ch = number.charAt(idx);\n result += (ch === CURRENCY_PLACEHOLDER || ch === PERCENT_PLACEHOLDER) ? symbol : ch;\n }\n }\n return result;\n}\n\nfunction replacePlaceHolders(formatOptions, info) {\n var start = formatOptions.start;\n var end = formatOptions.end;\n var negative = formatOptions.negative;\n var negativeZero = formatOptions.negativeZero;\n var format = formatOptions.format;\n var decimalIndex = formatOptions.decimalIndex;\n var lastZeroIndex = formatOptions.lastZeroIndex;\n var hasNegativeFormat = formatOptions.hasNegativeFormat;\n var hasGroup = formatOptions.hasGroup;\n var number = formatOptions.number;\n var value = number.toString().split(POINT);\n var length = format.length;\n var integer = value[0];\n var fraction = value[1] || EMPTY;\n var integerLength = integer.length;\n var replacement = EMPTY;\n\n number = format.substring(0, start);\n\n if ((negative || negativeZero) && !hasNegativeFormat) {\n number += \"-\";\n }\n\n for (var idx = start; idx < length; idx++) {\n var ch = format.charAt(idx);\n\n if (decimalIndex === -1) {\n if (end - idx < integerLength) {\n\n number += integer;\n break;\n }\n } else {\n if (lastZeroIndex !== -1 && lastZeroIndex < idx) {\n replacement = EMPTY;\n }\n\n if ((decimalIndex - idx) <= integerLength && decimalIndex - idx > -1) {\n number += integer;\n idx = decimalIndex;\n }\n\n if (decimalIndex === idx) {\n number += (fraction ? info.numbers.symbols.decimal : EMPTY) + fraction;\n idx += end - decimalIndex + 1;\n continue;\n }\n }\n\n if (ch === ZERO) {\n number += ch;\n replacement = ch;\n } else if (ch === SHARP) {\n number += replacement;\n }\n }\n\n if (hasGroup) {\n number = groupInteger(number, start + (negative && !hasNegativeFormat ? 1 : 0), Math.max(end, (integerLength + start)), info.numbers.decimal, info);\n }\n\n if (end >= start) {\n number += format.substring(end + 1);\n }\n\n return number;\n}\n\nfunction applyCustomFormat(formatOptions, info) {\n var number = formatOptions.number;\n if (formatOptions.start !== -1) {\n number = replacePlaceHolders(formatOptions, info);\n number = replaceStyleSymbols(number, formatOptions.style, formatOptions.symbol);\n number = replaceLiterals(number, formatOptions.literals);\n }\n\n return number;\n}\n\nexport default function customNumberFormat(number, format, info) {\n var formatOptions = {\n negative: number < 0,\n number: Math.abs(number),\n negativeZero: isNegativeZero(number),\n format: format\n };\n\n setValueSpecificFormat(formatOptions);\n\n if (formatOptions.constant) {\n return formatOptions.constant;\n }\n\n setFormatLiterals(formatOptions);\n setStyleOptions(formatOptions, info);\n setGroupOptions(formatOptions);\n roundNumber(formatOptions);\n setPlaceholderIndices(formatOptions);\n\n return applyCustomFormat(formatOptions, info);\n}","import { CURRENCY, ACCOUNTING, DECIMAL, PERCENT, SCIENTIFIC } from '../common/constants';\nimport isString from '../common/is-string';\n\nvar standardFormatRegExp = /^(n|c|p|e|a)(\\d*)$/i;\n\nfunction standardFormatOptions(format) {\n var formatAndPrecision = standardFormatRegExp.exec(format);\n\n if (formatAndPrecision) {\n var options = {\n style: DECIMAL\n };\n\n var style = formatAndPrecision[1].toLowerCase();\n\n if (style === \"c\") {\n options.style = CURRENCY;\n } else if (style === \"a\") {\n options.style = ACCOUNTING;\n } else if (style === \"p\") {\n options.style = PERCENT;\n } else if (style === \"e\") {\n options.style = SCIENTIFIC;\n }\n\n if (formatAndPrecision[2]) {\n options.minimumFractionDigits = options.maximumFractionDigits = parseInt(formatAndPrecision[2], 10);\n }\n\n return options;\n }\n}\n\nexport default function formatOptions(format) {\n var options;\n if (isString(format)) {\n options = standardFormatOptions(format);\n } else {\n options = format;\n }\n\n return options;\n}","import { localeInfo } from '../cldr';\nimport { DECIMAL, DEFAULT_LOCALE, NUMBER_PLACEHOLDER, EMPTY } from '../common/constants';\nimport standardNumberFormat from './standard-number-format';\nimport customNumberFormat from './custom-number-format';\nimport formatOptions from './format-options';\n\nexport default function formatNumber(number, format, locale) {\n if ( format === void 0 ) format = NUMBER_PLACEHOLDER;\n if ( locale === void 0 ) locale = DEFAULT_LOCALE;\n\n if (number === undefined || number === null) {\n return EMPTY;\n }\n\n if (!isFinite(number)) {\n return String(number);\n }\n\n var info = localeInfo(locale);\n var options = formatOptions(format);\n\n var result;\n if (options) {\n var style = options.style || DECIMAL;\n result = standardNumberFormat(number, Object.assign({}, info.numbers[style], options), info);\n } else {\n result = customNumberFormat(number, format, info);\n }\n\n return result;\n}\n","export default function isNumber(value) {\n return typeof value === \"number\";\n}","import { localeInfo, localeCurrency, currencyDisplays } from '../cldr';\nimport { PERCENT, NUMBER_PLACEHOLDER, CURRENCY_PLACEHOLDER, DEFAULT_LOCALE, EMPTY, POINT } from '../common/constants';\nimport { setStyleOptions, setFormatLiterals } from './utils';\nimport isNumber from '../common/is-number';\nimport isCurrencyStyle from './is-currency-style';\nimport formatOptions from './format-options';\nimport isString from '../common/is-string';\n\nvar exponentRegExp = /[eE][\\-+]?[0-9]+/;\nvar nonBreakingSpaceRegExp = /\\u00A0/g;\n\nfunction cleanNegativePattern(number, patterns) {\n if (patterns.length > 1) {\n var parts = (patterns[1] || EMPTY).replace(CURRENCY_PLACEHOLDER, EMPTY).split(NUMBER_PLACEHOLDER);\n if (number.indexOf(parts[0]) > -1 && number.indexOf(parts[1]) > -1) {\n return number.replace(parts[0], EMPTY).replace(parts[1], EMPTY);\n }\n }\n}\n\nfunction cleanCurrencyNumber(value, info, format) {\n var options = formatOptions(format) || {};\n var isCurrency = isCurrencyStyle(options.style);\n var number = value;\n var negative;\n\n var currency = options.currency || localeCurrency(info, isCurrency);\n\n if (currency) {\n var displays = currencyDisplays(info, currency, isCurrency);\n if (displays) {\n for (var idx = 0; idx < displays.length; idx++) {\n var display = displays[idx];\n if (number.includes(display)) {\n number = number.replace(display, EMPTY);\n isCurrency = true;\n break;\n }\n }\n }\n\n if (isCurrency) {\n var cleanNumber = cleanNegativePattern(number, info.numbers.currency.patterns) ||\n cleanNegativePattern(number, info.numbers.accounting.patterns);\n\n if (cleanNumber) {\n negative = true;\n number = cleanNumber;\n }\n\n }\n }\n\n return {\n number: number,\n negative: negative\n };\n}\n\nfunction cleanLiterals(number, formatOptions) {\n var literals = formatOptions.literals;\n var result = number;\n\n if (literals) {\n for (var idx = 0; idx < literals.length; idx++) {\n result = result.replace(literals[idx], EMPTY);\n }\n }\n\n return result;\n}\n\nexport default function parseNumber(value, locale, format) {\n if ( locale === void 0 ) locale = DEFAULT_LOCALE;\n if ( format === void 0 ) format = {};\n\n if (!value && value !== 0) {\n return null;\n }\n\n if (isNumber(value)) {\n return value;\n }\n\n var info = localeInfo(locale);\n var symbols = info.numbers.symbols;\n\n var number = value.toString();\n var formatOptions = format || {};\n var isPercent;\n\n if (isString(format)) {\n formatOptions = { format: format };\n setFormatLiterals(formatOptions);\n number = cleanLiterals(number, formatOptions);\n\n setStyleOptions(formatOptions, info);\n }\n\n if (formatOptions.style === PERCENT || number.indexOf(symbols.percentSign) > -1) {\n number = number.replace(symbols.percentSign, EMPTY);\n isPercent = true;\n }\n\n if (exponentRegExp.test(number)) {\n number = parseFloat(number.replace(symbols.decimal, POINT));\n return isNaN(number) ? null : number;\n }\n\n var ref = cleanCurrencyNumber(number, info, formatOptions);\n var negativeCurrency = ref.negative;\n var currencyNumber = ref.number;\n number = String(currencyNumber).trim();\n\n var negativeSignIndex = number.indexOf(\"-\");\n if (negativeSignIndex > 0) {\n return null;\n }\n\n var isNegative = negativeSignIndex > -1;\n\n isNegative = negativeCurrency !== undefined ? negativeCurrency : isNegative;\n\n number = number.replace(\"-\", EMPTY)\n .replace(nonBreakingSpaceRegExp, \" \")\n .split(symbols.group.replace(nonBreakingSpaceRegExp, \" \")).join(EMPTY)\n .replace(symbols.decimal, POINT);\n\n number = parseFloat(number);\n\n if (isNaN(number)) {\n number = null;\n } else if (isNegative) {\n number *= -1;\n }\n\n if (number && isPercent) {\n number /= 100;\n }\n\n return number;\n}\n","var formatRegExp = /\\{(\\d+)}/g;\n\nexport default function formatString(format) {\n var values = arguments;\n\n return format.replace(formatRegExp, function (match, index) {\n var value = values[parseInt(index, 10) + 1];\n\n return value;\n });\n}","import formatString from '../common/format-string';\nimport isString from '../common/is-string';\nimport { EMPTY } from '../common/constants';\n\nvar REMOVAL_PENALTY = 120;\nvar ADDITION_PENALTY = 20;\nvar LENGHT_DELTA = [ 2, 1, 5, 3, 4 ];\nvar LONG_LESS_PENALTY_DELTA = -2;\nvar SHORT_LESS_PENALTY_DELTA = -1;\nvar SHORT_MORE_PENALTY_DELTA = 1;\nvar LONG_MORE_PENALTY_DELTA = 2;\n\nvar PENALTIES = {};\nPENALTIES[LONG_LESS_PENALTY_DELTA.toString()] = 8;\nPENALTIES[SHORT_LESS_PENALTY_DELTA.toString()] = 6;\nPENALTIES[LONG_MORE_PENALTY_DELTA.toString()] = 6;\nPENALTIES[SHORT_MORE_PENALTY_DELTA.toString()] = 3;\n\nvar VALUE_FORMAT_LENGTH = {\n numeric: 1,\n \"2-digit\": 2,\n short: 3,\n long: 4,\n narrow: 5\n};\n\nvar TIME_SPECIFIERS_REGEX = /[hHmsSzZoOvVxX]/;\n\nfunction getHourSpecifier(options) {\n return options.hour12 ? \"h\" : \"H\";\n}\n\nvar DATE_OPTIONS_MAP = [ {\n key: \"era\",\n specifier: \"G\"\n}, {\n key: \"year\",\n specifier: \"y\"\n}, {\n key: \"month\",\n specifier: \"M\"\n}, {\n key: \"day\",\n specifier: \"d\"\n}, {\n key: \"weekday\",\n specifier: \"E\"\n}, {\n key: \"hour\",\n getSpecifier: getHourSpecifier\n}, {\n key: \"minute\",\n specifier: \"m\"\n}, {\n key: \"second\",\n specifier: \"s\"\n}, {\n key: \"timeZoneName\",\n specifier: \"z\"\n} ];\n\nvar STAND_ALONE_SPECIFIERS = {\n e: 'c',\n E: 'c',\n M: 'L',\n Q: 'q'\n};\n\nvar specifiersRegex = {};\nvar resolvedFormats = {};\n\nfunction getSpecifierRegex(specifier) {\n if (!specifiersRegex[specifier]) {\n specifiersRegex[specifier] = new RegExp(specifier + \"+\");\n }\n return specifiersRegex[specifier];\n}\n\nfunction skeletonSpecifiers(skeleton) {\n var result = [];\n var current = skeleton.charAt(0);\n var specifier = current;\n for (var idx = 1; idx < skeleton.length; idx++) {\n var character = skeleton.charAt(idx);\n if (character === specifier) {\n current += character;\n } else {\n result.push(current);\n current = specifier = character;\n }\n }\n\n result.push(current);\n\n return result;\n}\n\nfunction findBestMatch(specifiers, availableFormats) {\n var specifiersLength = specifiers.length;\n var maxScore = -Number.MAX_VALUE;\n var bestMatches, result;\n for (var format in availableFormats) {\n var matches = [];\n var currentFormat = format.replace(\"v\", \"z\");\n var score = 0;\n for (var idx = 0; idx < specifiersLength; idx++) {\n var specifier = specifiers[idx];\n var specifierRegex = getSpecifierRegex(specifier[0]);\n var match = (specifierRegex.exec(currentFormat) || [])[0];\n\n if (!match) {\n score -= REMOVAL_PENALTY;\n } else {\n currentFormat = currentFormat.replace(match, EMPTY);\n if (match.length !== specifier.length) {\n var delta = Math.max(Math.min(LENGHT_DELTA[match.length] - LENGHT_DELTA[specifier.length], 2), -2);\n score -= PENALTIES[delta];\n }\n }\n\n matches.push(match);\n\n if (score < maxScore) {\n break;\n }\n }\n\n if (currentFormat.length) {\n score -= skeletonSpecifiers(currentFormat).length * ADDITION_PENALTY;\n }\n\n if (score > maxScore) {\n maxScore = score;\n bestMatches = matches;\n result = availableFormats[format];\n }\n }\n\n result = result.replace(\"v\", \"z\");\n\n for (var idx$1 = 0; idx$1 < specifiersLength; idx$1++) {\n var bestMatch = bestMatches[idx$1];\n if (bestMatch && bestMatch !== specifiers[idx$1]) {\n var matchSpecifier = bestMatches[idx$1][0];\n result = result.replace(getSpecifierRegex(matchSpecifier), specifiers[idx$1]);\n if (STAND_ALONE_SPECIFIERS[matchSpecifier]) {\n result = result.replace(getSpecifierRegex(STAND_ALONE_SPECIFIERS[matchSpecifier]), specifiers[idx$1]);\n }\n }\n }\n\n return result;\n}\n\nfunction cacheFormat(skeleton, format, locale) {\n if (!resolvedFormats[locale]) {\n resolvedFormats[locale] = {};\n }\n resolvedFormats[locale][skeleton] = format;\n}\n\n\nfunction skeletonFormat(skeleton, info) {\n var availableFormats = info.calendar.dateTimeFormats.availableFormats;\n if (availableFormats[skeleton]) {\n return availableFormats[skeleton];\n }\n if (resolvedFormats[info.name] && resolvedFormats[info.name][skeleton]) {\n return resolvedFormats[info.name][skeleton];\n }\n var timeStartIndex = skeleton.search(TIME_SPECIFIERS_REGEX);\n var result;\n if (timeStartIndex > 0) {\n var dateSkeleton = skeleton.substr(0, timeStartIndex);\n var timeSkeleton = skeleton.substr(timeStartIndex);\n\n result = formatString(info.calendar.dateTimeFormats.short, //should be deterimed based on specifiers\n availableFormats[timeSkeleton] || findBestMatch(skeletonSpecifiers(timeSkeleton), availableFormats),\n availableFormats[dateSkeleton] || findBestMatch(skeletonSpecifiers(dateSkeleton), availableFormats));\n } else {\n result = findBestMatch(skeletonSpecifiers(skeleton), availableFormats);\n }\n\n cacheFormat(skeleton, result, info.name);\n return result;\n}\n\nfunction skeletonFromOptions(options) {\n var result = [];\n for (var idx = 0; idx < DATE_OPTIONS_MAP.length; idx++) {\n var option = DATE_OPTIONS_MAP[idx];\n var field = option.key;\n var value = options[field];\n if (value) {\n var spcifier = option.specifier || option.getSpecifier(options);\n result.push(spcifier.repeat(VALUE_FORMAT_LENGTH[value]));\n }\n }\n\n return result.join(EMPTY);\n}\n\nexport default function datePattern(format, info) {\n var calendar = info.calendar;\n var result;\n if (isString(format)) {\n if (calendar.patterns[format]) {\n result = calendar.patterns[format];\n } else {\n result = format;\n }\n } else if (format) {\n if (format.pattern) {\n return format.pattern;\n }\n\n var skeleton = format.skeleton;\n if (!skeleton) {\n if (format.datetime) {\n result = formatString(calendar.dateTimeFormats[format.datetime], calendar.timeFormats[format.datetime], calendar.dateFormats[format.datetime]);\n } else if (format.date) {\n result = calendar.dateFormats[format.date];\n } else if (format.time) {\n result = calendar.timeFormats[format.time];\n } else {\n skeleton = skeletonFromOptions(format);\n }\n }\n\n if (skeleton) {\n result = skeletonFormat(skeleton, info);\n }\n }\n\n if (!result) {\n result = calendar.patterns.d;\n }\n\n return result;\n}\n","export default function dateNameType(formatLength) {\n var nameType;\n if (formatLength <= 3) {\n nameType = \"abbreviated\";\n } else if (formatLength === 4) {\n nameType = \"wide\";\n } else if (formatLength === 5) {\n nameType = \"narrow\";\n } else if (formatLength === 6) {\n nameType = \"short\";\n }\n\n return nameType;\n}","import dateFormatNames from '../cldr/date-format-names';\nimport dateNameType from './date-name-type';\n\nexport default function formatNames(locale, type, formatLength, standAlone, lower) {\n return dateFormatNames(locale, {\n type: type,\n nameType: dateNameType(formatLength),\n standAlone: standAlone,\n lower: lower\n });\n}","function isFunction(fun) {\n return typeof(fun) === 'function';\n}\n\nexport default function isDate(value) {\n return Boolean(value) && isFunction(value.getTime) && isFunction(value.getMonth);\n}\n","var MONTH = 'month';\nvar HOUR = 'hour';\nvar ZONE = 'zone';\nvar WEEKDAY = 'weekday';\nvar QUARTER = 'quarter';\n\nvar DATE_FIELD_MAP = {\n 'G': 'era',\n 'y': 'year',\n 'q': QUARTER,\n 'Q': QUARTER,\n 'M': MONTH,\n 'L': MONTH,\n 'd': 'day',\n 'E': WEEKDAY,\n 'c': WEEKDAY,\n 'e': WEEKDAY,\n 'h': HOUR,\n 'H': HOUR,\n 'k': HOUR,\n 'K': HOUR,\n 'm': 'minute',\n 's': 'second',\n 'S': 'millisecond',\n 'a': 'dayperiod',\n 'x': ZONE,\n 'X': ZONE,\n 'z': ZONE,\n 'Z': ZONE\n};\n\nvar dateFormatRegExp = /d{1,2}|E{1,6}|e{1,6}|c{3,6}|c{1}|M{1,5}|L{1,5}|y{1,4}|H{1,2}|h{1,2}|k{1,2}|K{1,2}|m{1,2}|a{1,5}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|x{1,5}|X{1,5}|G{1,5}|q{1,5}|Q{1,5}|\"[^\"]*\"|'[^']*'/g;\n\nexport { dateFormatRegExp, DATE_FIELD_MAP };","import { localeInfo, firstDay } from '../cldr';\nimport { DEFAULT_LOCALE, EMPTY } from '../common/constants';\nimport formatString from '../common/format-string';\nimport datePattern from './date-pattern';\nimport formatNames from './format-names';\nimport pad from '../common/pad';\nimport isDate from '../common/is-date';\nimport { dateFormatRegExp } from './constants';\n\nfunction formatDayOfWeekIndex(day, formatLength, localeInfo) {\n var firstDayIndex = firstDay(localeInfo);\n var dayIndex;\n if (day < firstDayIndex) {\n dayIndex = 7 - firstDayIndex + day;\n } else {\n dayIndex = day - firstDayIndex;\n }\n\n return dayIndex + 1;\n}\n\nfunction formatMonth(month, formatLength, info, standAlone) {\n if (formatLength <= 2) {\n return pad(month + 1, formatLength);\n }\n return formatNames(info, \"months\", formatLength, standAlone)[month];\n}\n\nfunction formatQuarter(date, formatLength, info, standAlone) {\n var quarter = Math.floor(date.getMonth() / 3);\n if (formatLength < 3) {\n return quarter + 1;\n }\n\n return formatNames(info, \"quarters\", formatLength, standAlone)[quarter];\n}\n\n\nfunction formatTimeZone(date, info, options) {\n var shortHours = options.shortHours;\n var optionalMinutes = options.optionalMinutes;\n var separator = options.separator;\n var localizedName = options.localizedName;\n var zZeroOffset = options.zZeroOffset;\n var offset = date.getTimezoneOffset() / 60;\n if (offset === 0 && zZeroOffset) {\n return \"Z\";\n }\n var sign = offset <= 0 ? \"+\" : \"-\";\n var hoursMinutes = Math.abs(offset).toString().split(\".\");\n var minutes = hoursMinutes[1] || 0;\n var result = sign + (shortHours ? hoursMinutes[0] : pad(hoursMinutes[0], 2));\n if (minutes || !optionalMinutes) {\n result += (separator ? \":\" : EMPTY) + pad(minutes, 2);\n }\n\n if (localizedName) {\n var localizedFormat = offset === 0 ? info.calendar.gmtZeroFormat : info.calendar.gmtFormat;\n result = formatString(localizedFormat, result);\n }\n\n return result;\n}\n\nfunction formatDayOfWeek(date, formatLength, info, standAlone) {\n var result;\n if (formatLength < 3) {\n result = formatDayOfWeekIndex(date.getDay(), formatLength, info);\n } else {\n result = formatNames(info, \"days\", formatLength, standAlone)[date.getDay()];\n }\n return result;\n}\n\nvar formatters = {};\n\nformatters.d = function(date, formatLength) {\n return pad(date.getDate(), formatLength);\n};\n\nformatters.E = function(date, formatLength, info) {\n return formatNames(info, \"days\", formatLength)[date.getDay()];\n};\n\nformatters.M = function(date, formatLength, info) {\n return formatMonth(date.getMonth(), formatLength, info, false);\n};\n\nformatters.L = function(date, formatLength, info) {\n return formatMonth(date.getMonth(), formatLength, info, true);\n};\n\nformatters.y = function(date, formatLength) {\n var year = date.getFullYear();\n if (formatLength === 2) {\n year = year % 100;\n }\n return pad(year, formatLength);\n};\n\nformatters.h = function(date, formatLength) {\n var hours = date.getHours() % 12 || 12;\n return pad(hours, formatLength);\n};\n\nformatters.H = function(date, formatLength) {\n return pad(date.getHours(), formatLength);\n};\n\nformatters.k = function(date, formatLength) {\n return pad(date.getHours() || 24, formatLength);\n};\n\nformatters.K = function(date, formatLength) {\n return pad(date.getHours() % 12, formatLength);\n};\n\nformatters.m = function(date, formatLength) {\n return pad(date.getMinutes(), formatLength);\n};\n\nformatters.s = function(date, formatLength) {\n return pad(date.getSeconds(), formatLength);\n};\n\nformatters.S = function(date, formatLength) {\n var milliseconds = date.getMilliseconds();\n var result;\n if (milliseconds !== 0) {\n result = pad(String(milliseconds / 1000).split(\".\")[1].substr(0, formatLength), formatLength, true);\n } else {\n result = pad(EMPTY, formatLength);\n }\n return result;\n};\n\nformatters.a = function(date, formatLength, info) {\n return formatNames(info, \"dayPeriods\", formatLength)[date.getHours() < 12 ? \"am\" : \"pm\"];\n};\n\nformatters.z = function(date, formatLength, info) {\n return formatTimeZone(date, info, {\n shortHours: formatLength < 4,\n optionalMinutes: formatLength < 4,\n separator: true,\n localizedName: true\n });\n};\n\nformatters.Z = function(date, formatLength, info) {\n return formatTimeZone(date, info, {\n separator: formatLength > 3,\n localizedName: formatLength === 4,\n zZeroOffset: formatLength === 5\n });\n};\n\nformatters.x = function(date, formatLength, info) {\n return formatTimeZone(date, info, {\n optionalMinutes: formatLength === 1,\n separator: formatLength === 3 || formatLength === 5\n });\n};\n\nformatters.X = function(date, formatLength, info) {\n return formatTimeZone(date, info, {\n optionalMinutes: formatLength === 1,\n separator: formatLength === 3 || formatLength === 5,\n zZeroOffset: true\n });\n};\n\nformatters.G = function(date, formatLength, info) {\n var era = date.getFullYear() >= 0 ? 1 : 0;\n return formatNames(info, \"eras\", formatLength)[era];\n};\n\nformatters.e = formatDayOfWeek;\n\nformatters.c = function(date, formatLength, info) {\n return formatDayOfWeek(date, formatLength, info, true);\n};\n\nformatters.q = function(date, formatLength, info) {\n return formatQuarter(date, formatLength, info, true);\n};\n\nformatters.Q = formatQuarter;\n\nexport default function formatDate(date, format, locale) {\n if ( locale === void 0 ) locale = DEFAULT_LOCALE;\n\n if (!isDate(date)) {\n if (date === undefined || date === null) {\n return EMPTY;\n }\n return date;\n }\n\n var info = localeInfo(locale);\n var pattern = datePattern(format, info);\n\n return pattern.replace(dateFormatRegExp, function(match) {\n var formatLength = match.length;\n var result;\n\n if (match.includes(\"'\") || match.includes(\"\\\"\")) {\n result = match.slice(1, formatLength - 1);\n } else {\n result = formatters[match[0]](date, formatLength, info);\n }\n\n return result;\n });\n}\n","export function convertTimeZone(date, fromOffset, toOffset) {\n var fromLocalOffset = date.getTimezoneOffset();\n\n var offsetDate = new Date(date.getTime() + (fromOffset - toOffset) * 60000);\n\n var toLocalOffset = offsetDate.getTimezoneOffset();\n\n return new Date(offsetDate.getTime() + (toLocalOffset - fromLocalOffset) * 60000);\n}\n\nexport function adjustDST(date, hours) {\n if (!hours && date.getHours() === 23) {\n date.setHours(date.getHours() + 2);\n }\n}","import { adjustDST, convertTimeZone } from './time-utils';\nimport { localeInfo } from '../cldr';\nimport { DEFAULT_LOCALE, EMPTY } from '../common/constants';\nimport { errors } from '../errors';\nimport formatNames from './format-names';\nimport datePattern from './date-pattern';\nimport round from '../common/round';\nimport isDate from '../common/is-date';\n\nvar timeZoneOffsetRegExp = /([+|\\-]\\d{1,2})(:?)(\\d{2})?/;\nvar dateRegExp = /^\\/Date\\((.*?)\\)\\/$/;\nvar offsetRegExp = /[+-]\\d*/;\nvar numberRegExp = {\n 2: /^\\d{1,2}/,\n 3: /^\\d{1,3}/,\n 4: /^\\d{4}/\n};\nvar numberRegex = /\\d+/;\nvar PLACEHOLDER = \"{0}\";\n\nvar leadingSpacesRegex = /^ */;\nvar trailingSpacesRegex = / *$/;\n\nvar standardDateFormats = [\n \"yyyy/MM/dd HH:mm:ss\",\n \"yyyy/MM/dd HH:mm\",\n \"yyyy/MM/dd\",\n \"E MMM dd yyyy HH:mm:ss\",\n \"yyyy-MM-ddTHH:mm:ss.SSSSSSSXXX\",\n \"yyyy-MM-ddTHH:mm:ss.SSSXXX\",\n \"yyyy-MM-ddTHH:mm:ss.SSXXX\",\n \"yyyy-MM-ddTHH:mm:ssXXX\",\n \"yyyy-MM-ddTHH:mm:ss.SSSSSSS\",\n \"yyyy-MM-ddTHH:mm:ss.SSS\",\n \"yyyy-MM-ddTHH:mmXXX\",\n \"yyyy-MM-ddTHH:mmX\",\n \"yyyy-MM-ddTHH:mm:ss\",\n \"yyyy-MM-ddTHH:mm\",\n \"yyyy-MM-dd HH:mm:ss\",\n \"yyyy-MM-dd HH:mm\",\n \"yyyy-MM-dd\",\n \"HH:mm:ss\",\n \"HH:mm\"\n];\nvar FORMATS_SEQUENCE = [ \"G\", \"g\", \"F\", \"Y\", \"y\", \"M\", \"m\", \"D\", \"d\", \"y\", \"T\", \"t\" ];\nvar TWO_DIGIT_YEAR_MAX = 2029;\n\nfunction outOfRange(value, start, end) {\n return !(value >= start && value <= end);\n}\n\nfunction lookAhead(match, state) {\n var format = state.format;\n var idx = state.idx;\n var i = 0;\n while (format[idx] === match) {\n i++;\n idx++;\n }\n if (i > 0) {\n idx -= 1;\n }\n state.idx = idx;\n return i;\n}\n\nfunction getNumber(size, state) {\n var regex = size ? (numberRegExp[size] || new RegExp('^\\\\d{1,' + size + '}')) : numberRegex,\n match = state.value.substr(state.valueIdx, size).match(regex);\n\n if (match) {\n match = match[0];\n state.valueIdx += match.length;\n return parseInt(match, 10);\n }\n return null;\n}\n\nfunction getIndexByName(names, state, lower) {\n var i = 0,\n length = names.length,\n name, nameLength,\n matchLength = 0,\n matchIdx = 0,\n subValue;\n\n for (; i < length; i++) {\n name = names[i];\n nameLength = name.length;\n subValue = state.value.substr(state.valueIdx, nameLength);\n\n if (lower) {\n subValue = subValue.toLowerCase();\n }\n\n if (subValue === name && nameLength > matchLength) {\n matchLength = nameLength;\n matchIdx = i;\n }\n }\n\n if (matchLength) {\n state.valueIdx += matchLength;\n return matchIdx + 1;\n }\n\n return null;\n}\n\nfunction checkLiteral(state) {\n var result = false;\n if (state.value.charAt(state.valueIdx) === state.format[state.idx]) {\n state.valueIdx++;\n result = true;\n }\n return result;\n}\n\nfunction calendarGmtFormats(calendar) {\n var gmtFormat = calendar.gmtFormat;\n var gmtZeroFormat = calendar.gmtZeroFormat;\n if (!gmtFormat) {\n throw errors.NoGMTInfo.error();\n }\n\n return [ gmtFormat.replace(PLACEHOLDER, EMPTY).toLowerCase(), gmtZeroFormat.replace(PLACEHOLDER, EMPTY).toLowerCase() ];\n}\n\nfunction parseTimeZoneOffset(state, info, options) {\n var shortHours = options.shortHours;\n var noSeparator = options.noSeparator;\n var optionalMinutes = options.optionalMinutes;\n var localizedName = options.localizedName;\n var zLiteral = options.zLiteral;\n state.UTC = true;\n\n if (zLiteral && state.value.charAt(state.valueIdx) === \"Z\") {\n state.valueIdx++;\n return false;\n }\n\n if (localizedName && !getIndexByName(calendarGmtFormats(info.calendar), state, true)) {\n return true;\n }\n\n var matches = timeZoneOffsetRegExp.exec(state.value.substr(state.valueIdx, 6));\n if (!matches) {\n return !localizedName;\n }\n\n var hoursMatch = matches[1];\n var minutesMatch = matches[3];\n var hoursOffset = parseInt(hoursMatch, 10);\n var separator = matches[2];\n var minutesOffset = parseInt(minutesMatch, 10);\n\n if (isNaN(hoursOffset) || (!shortHours && hoursMatch.length !== 3) || (!optionalMinutes && isNaN(minutesOffset)) || (noSeparator && separator)) {\n return true;\n }\n\n if (isNaN(minutesOffset)) {\n minutesOffset = null;\n }\n\n if (outOfRange(hoursOffset, -12, 13) || (minutesOffset && outOfRange(minutesOffset, 0, 59))) {\n return true;\n }\n\n state.valueIdx += matches[0].length;\n state.hoursOffset = hoursOffset;\n state.minutesOffset = minutesOffset;\n}\n\nfunction parseMonth(ch, state, info) {\n var count = lookAhead(ch, state);\n var names = formatNames(info, \"months\", count, ch === \"L\", true);\n\n var month = count < 3 ? getNumber(2, state) : getIndexByName(names, state, true);\n\n if (month === null || outOfRange(month, 1, 12)) {\n return true;\n }\n state.month = month - 1;\n}\n\nfunction parseDayOfWeek(ch, state, info) {\n var count = lookAhead(ch, state);\n var names = formatNames(info, \"days\", count, ch === \"c\", true);\n var dayOfWeek = count < 3 ? getNumber(1, state) : getIndexByName(names, state, true);\n if ((!dayOfWeek && dayOfWeek !== 0) || outOfRange(dayOfWeek, 1, 7)) {\n return true;\n }\n}\n\nvar parsers = {};\n\nparsers.d = function(state) {\n lookAhead(\"d\", state);\n var day = getNumber(2, state);\n\n if (day === null || outOfRange(day, 1, 31)) {\n return true;\n }\n\n if (state.day === null) {\n state.day = day;\n }\n};\n\nparsers.E = function(state, info) {\n var count = lookAhead(\"E\", state);\n //validate if it matches the day?\n var dayOfWeek = getIndexByName(formatNames(info, \"days\", count, false, true), state, true);\n if (dayOfWeek === null) {\n return true;\n }\n};\n\nparsers.M = function(state, info) {\n return parseMonth(\"M\", state, info);\n};\n\nparsers.L = function(state, info) {\n return parseMonth(\"L\", state, info);\n};\n\nparsers.y = function(state) {\n var count = lookAhead(\"y\", state);\n var year = getNumber(count === 1 ? undefined : count, state);\n\n if (year === null) {\n return true;\n }\n\n if (count === 2) {\n var currentYear = new Date().getFullYear();\n year = (currentYear - currentYear % 100) + year;\n if (year > TWO_DIGIT_YEAR_MAX) {\n year -= 100;\n }\n }\n\n state.year = year;\n};\n\nparsers.h = function(state) {\n lookAhead(\"h\", state);\n\n var hours = getNumber(2, state);\n if (hours === 12) {\n hours = 0;\n }\n\n if (hours === null || outOfRange(hours, 0, 11)) {\n return true;\n }\n\n state.hours = hours;\n};\n\nparsers.K = function(state) {\n lookAhead(\"K\", state);\n\n var hours = getNumber(2, state);\n\n if (hours === null || outOfRange(hours, 0, 11)) {\n return true;\n }\n\n state.hours = hours;\n};\n\nparsers.a = function(state, info) {\n var count = lookAhead(\"a\", state);\n var periodFormats = formatNames(info, \"dayPeriods\", count, false, true);\n\n var pmHour = getIndexByName([ periodFormats.pm ], state, true);\n if (!pmHour && !getIndexByName([ periodFormats.am ], state, true)) {\n return true;\n }\n\n state.pmHour = pmHour;\n};\n\nparsers.H = function(state) {\n lookAhead(\"H\", state);\n var hours = getNumber(2, state);\n if (hours === null || outOfRange(hours, 0, 23)) {\n return true;\n }\n state.hours = hours;\n};\n\nparsers.k = function(state) {\n lookAhead(\"k\", state);\n\n var hours = getNumber(2, state);\n\n if (hours === null || outOfRange(hours, 1, 24)) {\n return true;\n }\n\n state.hours = hours === 24 ? 0 : hours;\n};\n\nparsers.m = function(state) {\n lookAhead(\"m\", state);\n var minutes = getNumber(2, state);\n\n if (minutes === null || outOfRange(minutes, 0, 59)) {\n return true;\n }\n\n state.minutes = minutes;\n};\n\nparsers.s = function(state) {\n lookAhead(\"s\", state);\n var seconds = getNumber(2, state);\n if (seconds === null || outOfRange(seconds, 0, 59)) {\n return true;\n }\n state.seconds = seconds;\n};\n\nparsers.S = function(state) {\n var count = lookAhead(\"S\", state);\n var match = state.value.substr(state.valueIdx, count);\n var milliseconds = null;\n\n if (!isNaN(parseInt(match, 10))) {\n milliseconds = parseFloat(\"0.\" + match, 10);\n milliseconds = round(milliseconds, 3);\n milliseconds *= 1000;\n state.valueIdx += count;\n }\n\n if (milliseconds === null || outOfRange(milliseconds, 0, 999)) {\n return true;\n }\n\n state.milliseconds = milliseconds;\n};\n\nparsers.z = function(state, info) {\n var count = lookAhead(\"z\", state);\n\n var shortFormat = count < 4;\n\n var invalid = parseTimeZoneOffset(state, info, {\n shortHours: shortFormat,\n optionalMinutes: shortFormat,\n localizedName: true\n });\n\n if (invalid) {\n return invalid;\n }\n};\n\nparsers.Z = function(state, info) {\n var count = lookAhead(\"Z\", state);\n\n var invalid = parseTimeZoneOffset(state, info, {\n noSeparator: count < 4,\n zLiteral: count === 5,\n localizedName: count === 4\n });\n\n if (invalid) {\n return invalid;\n }\n};\n\nparsers.x = function(state, info) {\n var count = lookAhead(\"x\", state);\n\n var invalid = parseTimeZoneOffset(state, info, {\n noSeparator: count !== 3 && count !== 5,\n optionalMinutes: count === 1\n });\n if (invalid) {\n return invalid;\n }\n};\n\nparsers.X = function(state, info) {\n var count = lookAhead(\"X\", state);\n\n var invalid = parseTimeZoneOffset(state, info, {\n noSeparator: count !== 3 && count !== 5,\n optionalMinutes: count === 1,\n zLiteral: true\n });\n if (invalid) {\n return invalid;\n }\n};\n\nparsers.G = function(state, info) {\n var count = lookAhead(\"G\", state);\n var eras = formatNames(info, \"eras\", count, false, true);\n var era = getIndexByName([ eras[0], eras[1] ], state, true);\n\n if (era === null) {\n return true;\n }\n};\n\nparsers.e = function(state, info) {\n return parseDayOfWeek(\"e\", state, info);\n};\n\nparsers.c = function(state, info) {\n return parseDayOfWeek(\"c\", state, info);\n};\n\nfunction createDate(state) {\n var year = state.year;\n var month = state.month;\n var day = state.day;\n var hours = state.hours;\n var minutes = state.minutes;\n var seconds = state.seconds;\n var milliseconds = state.milliseconds;\n var pmHour = state.pmHour;\n var UTC = state.UTC;\n var hoursOffset = state.hoursOffset;\n var minutesOffset = state.minutesOffset;\n var hasTime = hours !== null || minutes !== null || seconds || null;\n var date = new Date();\n var result;\n\n if (year === null && month === null && day === null && hasTime) {\n year = date.getFullYear();\n month = date.getMonth();\n day = date.getDate();\n } else {\n if (year === null) {\n year = date.getFullYear();\n }\n\n if (day === null) {\n day = 1;\n }\n }\n\n if (pmHour && hours < 12) {\n hours += 12;\n }\n\n if (UTC) {\n if (hoursOffset) {\n hours += -hoursOffset;\n }\n\n if (minutesOffset) {\n minutes += -minutesOffset * (hoursOffset < 0 ? -1 : 1);\n }\n\n result = new Date(Date.UTC(year, month, day, hours, minutes, seconds, milliseconds));\n } else {\n result = new Date(year, month, day, hours, minutes, seconds, milliseconds);\n adjustDST(result, hours);\n }\n\n if (year < 100) {\n result.setFullYear(year);\n }\n\n if (result.getDate() !== day && UTC === undefined) {\n return null;\n }\n\n return result;\n}\n\nfunction addFormatSpaces(value, format) {\n var leadingSpaces = leadingSpacesRegex.exec(format)[0];\n var trailingSpaces = trailingSpacesRegex.exec(format)[0];\n\n return (\"\" + leadingSpaces + value + trailingSpaces);\n}\n\nfunction parseExact(value, format, info) {\n var pattern = datePattern(format, info).split(EMPTY);\n\n var state = {\n format: pattern,\n idx: 0,\n value: addFormatSpaces(value, format),\n valueIdx: 0,\n year: null,\n month: null,\n day: null,\n hours: null,\n minutes: null,\n seconds: null,\n milliseconds: null\n };\n var length = pattern.length;\n var literal = false;\n\n for (; state.idx < length; state.idx++) {\n var ch = pattern[state.idx];\n\n if (literal) {\n if (ch === \"'\") {\n literal = false;\n }\n\n checkLiteral(state);\n } else {\n if (parsers[ch]) {\n var invalid = parsers[ch](state, info);\n if (invalid) {\n return null;\n }\n } else if (ch === \"'\") {\n literal = true;\n checkLiteral(state);\n } else if (!checkLiteral(state)) {\n return null;\n }\n }\n }\n\n if (state.valueIdx < value.length) {\n return null;\n }\n\n return createDate(state) || null;\n}\n\nfunction parseMicrosoftDateOffset(offset) {\n var sign = offset.substr(0, 1) === \"-\" ? -1 : 1;\n\n var result = offset.substring(1);\n result = (parseInt(result.substr(0, 2), 10) * 60) + parseInt(result.substring(2), 10);\n\n return sign * result;\n}\n\nfunction parseMicrosoftDateFormat(value) {\n if (value && value.indexOf(\"/D\") === 0) {\n var date = dateRegExp.exec(value);\n if (date) {\n date = date[1];\n var tzoffset = offsetRegExp.exec(date.substring(1));\n\n date = new Date(parseInt(date, 10));\n\n if (tzoffset) {\n tzoffset = parseMicrosoftDateOffset(tzoffset[0]);\n date = convertTimeZone(date, date.getTimezoneOffset(), 0);\n date = convertTimeZone(date, 0, -1 * tzoffset);\n }\n\n return date;\n }\n }\n}\n\nfunction defaultFormats(calendar) {\n var formats = [];\n var patterns = calendar.patterns;\n var length = FORMATS_SEQUENCE.length;\n\n for (var idx = 0; idx < length; idx++) {\n formats.push(patterns[FORMATS_SEQUENCE[idx]]);\n }\n\n return formats.concat(standardDateFormats);\n}\n\nexport default function parseDate(value, formats, locale) {\n if ( locale === void 0 ) locale = DEFAULT_LOCALE;\n\n if (!value) {\n return null;\n }\n\n if (isDate(value)) {\n return value;\n }\n\n var parseValue = String(value).trim();\n var date = parseMicrosoftDateFormat(parseValue);\n if (date) {\n return date;\n }\n\n var info = localeInfo(locale);\n var parseFormats = formats || defaultFormats(info.calendar);\n parseFormats = Array.isArray(parseFormats) ? parseFormats : [ parseFormats ];\n\n var length = parseFormats.length;\n\n for (var idx = 0; idx < length; idx++) {\n date = parseExact(parseValue, parseFormats[idx], info);\n if (date) {\n return date;\n }\n }\n\n return date;\n}\n","import { DEFAULT_LOCALE } from '../common/constants';\nimport isNumber from '../common/is-number';\nimport datePattern from './date-pattern';\nimport dateNameType from './date-name-type';\nimport { dateFormatRegExp, DATE_FIELD_MAP } from './constants';\nimport { localeInfo } from '../cldr';\n\nvar NAME_TYPES = {\n month: {\n type: 'months',\n minLength: 3,\n standAlone: 'L'\n },\n\n quarter: {\n type: 'quarters',\n minLength: 3,\n standAlone: 'q'\n },\n\n weekday: {\n type: 'days',\n minLength: {\n E: 0,\n c: 3,\n e: 3\n },\n standAlone: 'c'\n },\n\n dayperiod: {\n type: 'dayPeriods',\n minLength: 0\n },\n\n era: {\n type: 'eras',\n minLength: 0\n }\n};\n\nvar LITERAL = 'literal';\n\nfunction addLiteral(parts, value) {\n var lastPart = parts[parts.length - 1];\n if (lastPart && lastPart.type === LITERAL) {\n lastPart.pattern += value;\n } else {\n parts.push({\n type: LITERAL,\n pattern: value\n });\n }\n}\n\nfunction isHour12(pattern) {\n return pattern === 'h' || pattern === 'K';\n}\n\nexport default function splitDateFormat(format, locale) {\n if ( locale === void 0 ) locale = DEFAULT_LOCALE;\n\n var info = localeInfo(locale);\n var pattern = datePattern(format, info);\n var parts = [];\n var lastIndex = dateFormatRegExp.lastIndex = 0;\n var match = dateFormatRegExp.exec(pattern);\n\n while (match) {\n var value = match[0];\n\n if (lastIndex < match.index) {\n addLiteral(parts, pattern.substring(lastIndex, match.index));\n }\n\n if (value.startsWith('\"') || value.startsWith(\"'\")) {\n addLiteral(parts, value);\n } else {\n var specifier = value[0];\n var type = DATE_FIELD_MAP[specifier];\n var part = {\n type: type,\n pattern: value\n };\n\n if (type === 'hour') {\n part.hour12 = isHour12(value);\n }\n\n var names = NAME_TYPES[type];\n\n if (names) {\n var minLength = isNumber(names.minLength) ? names.minLength : names.minLength[specifier];\n var patternLength = value.length;\n\n if (patternLength >= minLength) {\n part.names = {\n type: names.type,\n nameType: dateNameType(patternLength),\n standAlone: names.standAlone === specifier\n };\n }\n }\n\n parts.push(part);\n }\n\n lastIndex = dateFormatRegExp.lastIndex;\n match = dateFormatRegExp.exec(pattern);\n }\n\n if (lastIndex < pattern.length) {\n addLiteral(parts, pattern.substring(lastIndex));\n }\n\n return parts;\n}\n","import { formatDate } from './dates';\nimport { formatNumber } from './numbers';\nimport { EMPTY } from './common/constants';\nimport isDate from './common/is-date';\nimport isNumber from './common/is-number';\n\nvar formatRegExp = /\\{(\\d+)(:[^\\}]+)?\\}/g;\n\nexport function toString(value, format, locale) {\n if (format) {\n if (isDate(value)) {\n return formatDate(value, format, locale);\n } else if (isNumber(value)) {\n return formatNumber(value, format, locale);\n }\n }\n\n return value !== undefined && value !== null ? value : EMPTY;\n}\n\nexport function format(format, values, locale) {\n return format.replace(formatRegExp, function(match, index, placeholderFormat) {\n var value = values[parseInt(index, 10)];\n\n return toString(value, placeholderFormat ? placeholderFormat.substring(1) : EMPTY, locale);\n });\n}\n","import * as coreIntl from '@telerik/kendo-intl';\n/**\n * A service which provides internationalization methods\n * and is bound to a specific locale.\n */\nvar IntlService = /** @class */ (function () {\n /**\n * Creates a new instance of the internationalization service.\n *\n * @param locale - The locale that will be used by the internationalization methods.\n */\n function IntlService(locale) {\n this.locale = locale;\n if (locale === '' && process.env.NODE_ENV !== 'production') {\n throw 'Locale should not be empty string';\n }\n }\n /**\n * Formats a string with placeholders such as\n * `Total amount {0:c}`.\n *\n * @param format - The format string.\n * @param values - One or more values to output in the format string placeholders.\n * @return - The formatted string.\n */\n IntlService.prototype.format = function (format) {\n var values = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n values[_i - 1] = arguments[_i];\n }\n /* The following code retains backward compatibility with the old API */\n if (values.length === 1 && Array.isArray(values[0])) {\n return coreIntl.format(format, values[0], this.locale);\n }\n return coreIntl.format(format, values, this.locale);\n };\n /**\n * Converts a `Date` object to a string based on the specified format.\n * If no format is provided, the default short date format is used.\n *\n * @param value - The date which will be formatted.\n * @param format - The format string or options.\n * @return - The formatted date.\n */\n IntlService.prototype.formatDate = function (value, format) {\n return coreIntl.formatDate(value, format, this.locale);\n };\n /**\n * Converts an object to a string based on the specified format.\n *\n * @param value - The value which will be formatted.\n * @param format - The format to use.\n * @return - The formatted object.\n */\n IntlService.prototype.toString = function (value, format) {\n return coreIntl.toString(value, format, this.locale);\n };\n /**\n * Converts a string to a `Number`.\n *\n * @param value - The string which will be parsed.\n * @param format - The format string or options.\n * @return - The parsed number.\n */\n IntlService.prototype.parseNumber = function (value, format) {\n return coreIntl.parseNumber(value, this.locale, format);\n };\n /**\n * Converts a string to a `Date` object based on the specified format.\n *\n * @param value - The string which will be converted.\n * @param format - The format strings or options.\n * @return - The parsed date.\n */\n IntlService.prototype.parseDate = function (value, format) {\n return coreIntl.parseDate(value, format, this.locale);\n };\n /**\n * Converts a `Number` to a string based on the specified format.\n *\n * @param value - The number which will be formatted.\n * @param format - The format string or options.\n * @return - The formatted number.\n */\n IntlService.prototype.formatNumber = function (value, format) {\n return coreIntl.formatNumber(value, format, this.locale);\n };\n /**\n * Returns a localized date field name based on specific `dateFieldName` options.\n *\n * @param options - The detailed configuration for the desired date field name.\n * @returns - The localized date field name from the current locale based on the option.\n */\n IntlService.prototype.dateFieldName = function (options) {\n return coreIntl.dateFieldName(options, this.locale);\n };\n /**\n * Returns the day names from the current locale based on the option.\n *\n * @param options - The detailed configuration for the desired date format.\n * @return - The day names from the current locale based on the option.\n */\n IntlService.prototype.dateFormatNames = function (options) {\n return coreIntl.dateFormatNames(this.locale, options);\n };\n /**\n * Splits the date format into objects which contain\n * information about each part of the pattern.\n *\n * @param format - The format string or options.\n * @returns - The date format parts.\n */\n IntlService.prototype.splitDateFormat = function (format) {\n return coreIntl.splitDateFormat(format, this.locale);\n };\n /**\n * Returns the number symbols from the current locale.\n *\n * @return - The number symbols from the current locale.\n */\n IntlService.prototype.numberSymbols = function () {\n return coreIntl.numberSymbols(this.locale);\n };\n /**\n * Returns the first day index, starting from Sunday.\n *\n * @return - The index of the first day of the week (0 == Sunday).\n */\n IntlService.prototype.firstDay = function () {\n return coreIntl.firstDay(this.locale);\n };\n return IntlService;\n}());\nexport { IntlService };\n","var _Draggable;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport KendoDraggable from '@telerik/kendo-draggable';\nimport { getDefaultSlots } from './defaultSlots';\n/**\n * Represents the default `Draggable` component.\n */\n\nvar Draggable = (_Draggable = {\n // @ts-ignore\n emits: {\n press: null,\n drag: null,\n release: null\n },\n inheritAttrs: false,\n created: function created() {\n this.element = null;\n this.draggable = new KendoDraggable({\n press: this.press,\n drag: this.drag,\n release: this.release\n });\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n mounted: function mounted() {\n if (this.$el) {\n this.element = this.$el.nodeType === 3 ? this.$el.nextElementSibling : this.$el;\n this.draggable.bindTo(this.element);\n }\n },\n destroyed: !!gh ? undefined : function () {\n this.draggable.destroy();\n },\n // @ts-ignore\n unmounted: function unmounted() {\n this.draggable.destroy();\n },\n methods: {\n press: function press(event) {\n if (this.element) {\n this.$emit('press', event, this.element);\n }\n },\n drag: function drag(event) {\n if (this.element) {\n this.$emit('drag', event, this.element);\n }\n },\n release: function release(event) {\n if (this.element) {\n this.$emit('release', event, this.element);\n }\n }\n }\n}, _defineProperty(_Draggable, \"setup\", !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n}), _defineProperty(_Draggable, \"render\", function render(createElement) {\n // @ts-ignore\n var h = gh || createElement;\n return getDefaultSlots(this);\n}), _Draggable);\nexport { Draggable };","/**\n * @hidden\n */\nvar canUseDOM = Boolean(\n// from fbjs\ntypeof window !== 'undefined' &&\n window.document &&\n window.document.createElement);\nexport { canUseDOM };\n","/**\n * @hidden\n */\nexport function getDefaultSlots(component) {\n var defaultSlots = component.$slots.default;\n return (component.v3 && defaultSlots && typeof defaultSlots === 'function') ? defaultSlots() : defaultSlots;\n}\n","import { FIELD_REGEX } from './constants';\nvar getterCache = {};\ngetterCache.undefined = function () { return undefined; };\n/**\n * @hidden\n */\nexport function getter(field) {\n if (getterCache[field]) {\n return getterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n getterCache[field] = function (obj) {\n var result = obj;\n for (var idx = 0; idx < fields.length && result; idx++) {\n result = result[fields[idx]];\n }\n return result;\n };\n return getterCache[field];\n}\n","import { FIELD_REGEX } from './constants';\nvar setterCache = {};\nsetterCache.undefined = function (obj) { return obj; };\n/**\n * @hidden\n */\nexport function setter(field) {\n if (setterCache[field]) {\n return setterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n setterCache[field] = function (obj, value) {\n var root = obj;\n var depth = fields.length - 1;\n for (var idx = 0; idx < depth && root; idx++) {\n root = root[fields[idx]] = root[fields[idx]] || {};\n }\n root[fields[depth]] = value;\n };\n return setterCache[field];\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\n/**\n * @hidden\n */\nexport function templateRendering(template, listeners) {\n if (!template) {\n return undefined;\n }\n var scopedSlot = gh ?\n this.$slots[template] ||\n (template.toLowerCase ? this.$slots[template.toLowerCase()]\n : null) :\n this.$scopedSlots[template] ||\n (template.toLowerCase ? this.$scopedSlots[template.toLowerCase()]\n : null);\n // @ts-ignore\n if (typeof template === 'string' && scopedSlot) {\n // @ts-ignore\n return { type: 'slot', render: scopedSlot, listeners: listeners };\n }\n if (typeof template === 'string' || typeof template === 'object' ||\n (typeof template === 'function' && template.component)) {\n return { type: 'component', render: template, listeners: listeners };\n }\n return { type: 'renderFunction', render: template, listeners: listeners };\n}\n/**\n * @hidden\n */\nexport function getTemplate(_a) {\n var h = _a.h, template = _a.template, defaultRendering = _a.defaultRendering, defaultSlots = _a.defaultSlots, additionalProps = _a.additionalProps, additionalListeners = _a.additionalListeners, swapDefaultSlots = _a.swapDefaultSlots;\n if (!template) {\n return defaultRendering;\n }\n var events;\n var props;\n var componentOptions;\n if (gh) {\n var passedProps = defaultRendering ? defaultRendering.props : {};\n events = __assign(__assign({}, transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, passedProps), additionalProps), events);\n componentOptions = __assign(__assign({}, props), events);\n }\n else {\n var hasComponentOptions = defaultRendering && defaultRendering.componentOptions;\n var defaultListeners = hasComponentOptions ?\n defaultRendering.componentOptions.listeners : {};\n var defaultProps = hasComponentOptions ?\n defaultRendering.componentOptions.propsData : {};\n events = __assign(__assign(__assign(__assign({}, defaultListeners), additionalListeners), transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, defaultProps), additionalProps), events);\n componentOptions = { props: props, on: events };\n }\n if (template.type === 'slot') {\n var slotTemplate = template.render({ props: props, listeners: events, methods: events,\n defaultSlots: defaultSlots });\n return slotTemplate ? slotTemplate[0] : undefined;\n }\n else if (template.type === 'renderFunction') {\n if (swapDefaultSlots) {\n return template.render(h, defaultRendering, defaultSlots, props, events);\n }\n return template.render(h, defaultRendering, props, events, defaultSlots);\n }\n else {\n return h(template.render, componentOptions, gh ? function () { return [defaultSlots]; } : [defaultSlots]);\n }\n}\n/**\n * @hidden\n */\nexport function transformListeners(listeners) {\n if (!listeners) {\n return listeners;\n }\n var newListeners = {};\n var listenersKeys = Object.keys(listeners);\n for (var i = 0; i < listenersKeys.length; i++) {\n var currentKey = listenersKeys[i];\n newListeners['on' + currentKey.charAt(0).toUpperCase() + currentKey.slice(1)] =\n listeners[currentKey];\n }\n return newListeners;\n}\n","import * as licensing from '@progress/kendo-licensing';\n/**\n * @hidden\n */\nexport function validatePackage(packageMetadata) {\n if (typeof licensing !== 'undefined') {\n licensing.validatePackage(packageMetadata);\n }\n else {\n var message = \"License activation failed for \" + packageMetadata.name + \"\\n\";\n message += 'The @progress/kendo-licensing script is not loaded.\\n';\n message += \"See \" + packageMetadata.licensingDocsUrl + \" for more information.\\n\";\n console.warn(message);\n }\n}\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-vue-intl',\n productName: 'Kendo UI for Vue',\n productCodes: ['KENDOUIVUE', 'KENDOUICOMPLETE'],\n publishDate: 1641561032,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning'\n};\n","// @ts-ignore\nimport * as aVue from 'vue';\nvar allVue = aVue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nvar provide = allVue.provide;\nimport { IntlService } from './IntlService';\nimport { getDefaultSlots, validatePackage } from '@progress/kendo-vue-common';\nimport { packageMetadata } from '../package-metadata';\n/**\n * A Vue component which provides an internationalization service.\n * Expects a locale string as a property of the component.\n */\n\nvar IntlProvider = {\n props: {\n locale: String\n },\n data: function data() {\n return this.getChildContext();\n },\n // @ts-ignore\n setup: function setup(props) {\n var v3 = !!gh;\n var intlService = ref(new IntlService(props.locale));\n provide('kendoIntlService', intlService);\n return {\n v3: v3\n };\n },\n watch: {\n locale: function locale(newLocale) {\n this.$data.kendoIntlService.locale = newLocale;\n }\n },\n provide: function provide() {\n return {\n kendoIntlService: this.$data.kendoIntlService\n };\n },\n methods: {\n /**\n * Returns an internationalization service.\n * The method is suitable for overriding when you\n * implement custom internationalization behavior.\n */\n getIntlService: function getIntlService() {\n return new IntlService(this.$props.locale);\n },\n\n /**\n * @hidden\n */\n getChildContext: function getChildContext() {\n return {\n kendoIntlService: this.getIntlService()\n };\n }\n },\n created: function created() {\n validatePackage(packageMetadata);\n },\n\n /**\n * @hidden\n */\n // @ts-ignore\n render: function render(createElement) {\n // @ts-ignore\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n return h(\"div\", [defaultSlot]);\n }\n};\nvar IntlProviderVue3 = IntlProvider;\nexport { IntlProvider, IntlProviderVue3 };","import { IntlProvider, IntlProviderVue3 } from './IntlProvider';\nimport { IntlService } from './IntlService';\nexport { IntlProvider, IntlProviderVue3, IntlService };\n// Automatic installation if Vue has been added to the global scope.\nvar vue = 'Vue';\nif (typeof window !== 'undefined' && window[vue] && window[vue].component) {\n window[vue].component('kendo-intl-provider', IntlProvider);\n}\n","/**\n * @hidden\n */\nexport var messages = Object.create({});\n","import { messages } from './messages';\n/**\n * A service which provides localization methods.\n */\nvar LocalizationService = /** @class */ (function () {\n function LocalizationService(language) {\n this.language = language;\n if (language === '' && process.env.NODE_ENV !== 'production') {\n throw 'Language should not be an empty string';\n }\n }\n /**\n * Provides a string based on a key for the current language.\n * When no string for the current language is available under this key,\n * the `defaultValue` is returned.\n *\n * @param key - The key which identifies the string for the current language.\n * @param defaultValue - The default value which will be returned when no string\n * for the current language is available under the key.\n * @return - The string for the current language.\n */\n LocalizationService.prototype.toLanguageString = function (key, defaultValue) {\n if (this.language &&\n messages[this.language] &&\n messages[this.language].hasOwnProperty(key)) {\n return messages[this.language][key];\n }\n else if (Object.keys(this)[0] &&\n messages[Object.values(this)[0]] &&\n messages[Object.values(this)[0]].hasOwnProperty(key)) {\n return messages[Object.values(this)[0]][key];\n }\n else {\n return defaultValue;\n }\n };\n return LocalizationService;\n}());\nexport { LocalizationService };\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nvar provide = allVue.provide;\nimport { LocalizationService } from './LocalizationService';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * A Vue component which provides a localization service.\n * Expects a language string as a property of the component.\n */\n\nvar LocalizationProvider = {\n props: {\n language: String\n },\n data: function data() {\n return this.getChildContext();\n },\n watch: {\n language: function language(newLanguage) {\n this.$data.kendoLocalizationService.language = newLanguage;\n }\n },\n // @ts-ignore\n setup: function setup(props) {\n var v3 = !!gh;\n var localizationService = ref(new LocalizationService(props.language));\n provide('kendoLocalizationService', localizationService);\n return {\n v3: v3\n };\n },\n provide: function provide() {\n return {\n kendoLocalizationService: this.$data.kendoLocalizationService\n };\n },\n methods: {\n /**\n * Returns a localization service.\n * The method is suitable for overriding when you\n * implement custom localization behavior.\n */\n getLocalizationService: function getLocalizationService() {\n return new LocalizationService(this.$props.language);\n },\n\n /**\n * @hidden\n */\n getChildContext: function getChildContext() {\n return {\n kendoLocalizationService: this.getLocalizationService()\n };\n }\n },\n\n /**\n * @hidden\n */\n // @ts-ignore\n render: function render(createElement) {\n // @ts-ignore\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n return h(\"div\", [defaultSlot]);\n }\n};\nvar LocalizationProviderVue3 = LocalizationProvider;\nexport { LocalizationProvider, LocalizationProviderVue3 };","import { loadMessages } from './loadMessages';\nimport { LocalizationProvider, LocalizationProviderVue3 } from './LocalizationProvider';\nimport { LocalizationService } from './LocalizationService';\nexport { loadMessages, LocalizationProvider, LocalizationProviderVue3, LocalizationService };\n// Automatic installation if Vue has been added to the global scope.\nvar vue = 'Vue';\nif (typeof window !== 'undefined' && window[vue] && window[vue].component) {\n window[vue].component('kendo-localization-provider', LocalizationProvider);\n}\n","import { IntlService } from './Intl/IntlService';\nimport { LocalizationService } from './Localization/LocalizationService';\n/**\n * Provides an internationalization service.\n * When the passed component is a direct or indirect child of\n * `IntlProvider`, the returned service uses the locale of the provider.\n * Otherwise, uses `en` as a default locale.\n * To handle locale changes, call the method on each `render`.\n *\n * @param componentClass - The Vue component class that will use the internationalization service.\n */\nexport function provideIntlService(component) {\n if (!component && process.env.NODE_ENV !== 'production') {\n throw \"Passed component - \" + component + \" is invalid.\";\n }\n var intlServiceFromContext = component.kendoIntlService;\n return (intlServiceFromContext &&\n Object.keys(intlServiceFromContext).some(function (item) { return item === 'locale'; }))\n ? intlServiceFromContext : new IntlService('en');\n}\n/**\n * Provides a localization service.\n * When the passed component is a direct or indirect child of\n * `LocalizationProvider`, the returned service uses the language of the provider.\n * To handle locale changes, call the method on each `render`.\n *\n * @param componentClass - The Vue component class that will use the internationalization service.\n */\nexport function provideLocalizationService(component) {\n if (!component && process.env.NODE_ENV !== 'production') {\n throw \"Passed component - \" + component + \" is invalid.\";\n }\n var localizationServiceFromContext = component.kendoLocalizationService;\n return (localizationServiceFromContext &&\n Object.keys(localizationServiceFromContext).some(function (item) { return item === 'language'; }))\n ? localizationServiceFromContext : new LocalizationService();\n}\n","var _Draggable;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport KendoDraggable from '@telerik/kendo-draggable';\nimport { getDefaultSlots } from './defaultSlots';\n/**\n * Represents the default `Draggable` component.\n */\n\nvar Draggable = (_Draggable = {\n // @ts-ignore\n emits: {\n press: null,\n drag: null,\n release: null\n },\n inheritAttrs: false,\n created: function created() {\n this.element = null;\n this.draggable = new KendoDraggable({\n press: this.press,\n drag: this.drag,\n release: this.release\n });\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n mounted: function mounted() {\n if (this.$el) {\n this.element = this.$el.nodeType === 3 ? this.$el.nextElementSibling : this.$el;\n this.draggable.bindTo(this.element);\n }\n },\n destroyed: !!gh ? undefined : function () {\n this.draggable.destroy();\n },\n // @ts-ignore\n unmounted: function unmounted() {\n this.draggable.destroy();\n },\n methods: {\n press: function press(event) {\n if (this.element) {\n this.$emit('press', event, this.element);\n }\n },\n drag: function drag(event) {\n if (this.element) {\n this.$emit('drag', event, this.element);\n }\n },\n release: function release(event) {\n if (this.element) {\n this.$emit('release', event, this.element);\n }\n }\n }\n}, _defineProperty(_Draggable, \"setup\", !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n}), _defineProperty(_Draggable, \"render\", function render(createElement) {\n // @ts-ignore\n var h = gh || createElement;\n return getDefaultSlots(this);\n}), _Draggable);\nexport { Draggable };","/**\n * @hidden\n */\nvar canUseDOM = Boolean(\n// from fbjs\ntypeof window !== 'undefined' &&\n window.document &&\n window.document.createElement);\nexport { canUseDOM };\n","/**\n * @hidden\n */\nexport function getDefaultSlots(component) {\n var defaultSlots = component.$slots.default;\n return (component.v3 && defaultSlots && typeof defaultSlots === 'function') ? defaultSlots() : defaultSlots;\n}\n","import { FIELD_REGEX } from './constants';\nvar getterCache = {};\ngetterCache.undefined = function () { return undefined; };\n/**\n * @hidden\n */\nexport function getter(field) {\n if (getterCache[field]) {\n return getterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n getterCache[field] = function (obj) {\n var result = obj;\n for (var idx = 0; idx < fields.length && result; idx++) {\n result = result[fields[idx]];\n }\n return result;\n };\n return getterCache[field];\n}\n","import { FIELD_REGEX } from './constants';\nvar setterCache = {};\nsetterCache.undefined = function (obj) { return obj; };\n/**\n * @hidden\n */\nexport function setter(field) {\n if (setterCache[field]) {\n return setterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n setterCache[field] = function (obj, value) {\n var root = obj;\n var depth = fields.length - 1;\n for (var idx = 0; idx < depth && root; idx++) {\n root = root[fields[idx]] = root[fields[idx]] || {};\n }\n root[fields[depth]] = value;\n };\n return setterCache[field];\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\n/**\n * @hidden\n */\nexport function templateRendering(template, listeners) {\n if (!template) {\n return undefined;\n }\n var scopedSlot = gh ?\n this.$slots[template] ||\n (template.toLowerCase ? this.$slots[template.toLowerCase()]\n : null) :\n this.$scopedSlots[template] ||\n (template.toLowerCase ? this.$scopedSlots[template.toLowerCase()]\n : null);\n // @ts-ignore\n if (typeof template === 'string' && scopedSlot) {\n // @ts-ignore\n return { type: 'slot', render: scopedSlot, listeners: listeners };\n }\n if (typeof template === 'string' || typeof template === 'object' ||\n (typeof template === 'function' && template.component)) {\n return { type: 'component', render: template, listeners: listeners };\n }\n return { type: 'renderFunction', render: template, listeners: listeners };\n}\n/**\n * @hidden\n */\nexport function getTemplate(_a) {\n var h = _a.h, template = _a.template, defaultRendering = _a.defaultRendering, defaultSlots = _a.defaultSlots, additionalProps = _a.additionalProps, additionalListeners = _a.additionalListeners, swapDefaultSlots = _a.swapDefaultSlots;\n if (!template) {\n return defaultRendering;\n }\n var events;\n var props;\n var componentOptions;\n if (gh) {\n var passedProps = defaultRendering ? defaultRendering.props : {};\n events = __assign(__assign({}, transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, passedProps), additionalProps), events);\n componentOptions = __assign(__assign({}, props), events);\n }\n else {\n var hasComponentOptions = defaultRendering && defaultRendering.componentOptions;\n var defaultListeners = hasComponentOptions ?\n defaultRendering.componentOptions.listeners : {};\n var defaultProps = hasComponentOptions ?\n defaultRendering.componentOptions.propsData : {};\n events = __assign(__assign(__assign(__assign({}, defaultListeners), additionalListeners), transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, defaultProps), additionalProps), events);\n componentOptions = { props: props, on: events };\n }\n if (template.type === 'slot') {\n var slotTemplate = template.render({ props: props, listeners: events, methods: events,\n defaultSlots: defaultSlots });\n return slotTemplate ? slotTemplate[0] : undefined;\n }\n else if (template.type === 'renderFunction') {\n if (swapDefaultSlots) {\n return template.render(h, defaultRendering, defaultSlots, props, events);\n }\n return template.render(h, defaultRendering, props, events, defaultSlots);\n }\n else {\n return h(template.render, componentOptions, gh ? function () { return [defaultSlots]; } : [defaultSlots]);\n }\n}\n/**\n * @hidden\n */\nexport function transformListeners(listeners) {\n if (!listeners) {\n return listeners;\n }\n var newListeners = {};\n var listenersKeys = Object.keys(listeners);\n for (var i = 0; i < listenersKeys.length; i++) {\n var currentKey = listenersKeys[i];\n newListeners['on' + currentKey.charAt(0).toUpperCase() + currentKey.slice(1)] =\n listeners[currentKey];\n }\n return newListeners;\n}\n","var _a;\n/**\n * @hidden\n */\nexport var labelsOptional = 'labels.optional';\n/**\n * @hidden\n */\nexport var messages = (_a = {},\n _a[labelsOptional] = '(Optional)',\n _a);\n","import * as licensing from '@progress/kendo-licensing';\n/**\n * @hidden\n */\nexport function validatePackage(packageMetadata) {\n if (typeof licensing !== 'undefined') {\n licensing.validatePackage(packageMetadata);\n }\n else {\n var message = \"License activation failed for \" + packageMetadata.name + \"\\n\";\n message += 'The @progress/kendo-licensing script is not loaded.\\n';\n message += \"See \" + packageMetadata.licensingDocsUrl + \" for more information.\\n\";\n console.warn(message);\n }\n}\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-vue-labels',\n productName: 'Kendo UI for Vue',\n productCodes: ['KENDOUIVUE', 'KENDOUICOMPLETE'],\n publishDate: 1641561186,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning'\n};\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar inject = allVue.inject;\nimport { getDefaultSlots, validatePackage } from '@progress/kendo-vue-common';\nimport { labelsOptional, messages } from './messages';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { packageMetadata } from './package-metadata';\n/**\n * Represents the default `Label` component.\n */\n\nvar Label = {\n name: 'KendoLabel',\n props: {\n id: String,\n editorId: String,\n editorRef: String,\n editorValid: {\n type: Boolean,\n default: undefined\n },\n editorDisabled: Boolean,\n optional: Boolean\n },\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n created: function created() {\n validatePackage(packageMetadata);\n },\n computed: {\n labelClassName: function labelClassName() {\n return {\n 'k-label': true,\n 'k-label-empty': !this.defaultSlots,\n 'k-text-error': this.$props.editorValid === false,\n 'k-text-disabled': this.$props.editorDisabled === true\n };\n }\n },\n methods: {\n onLabelClick: function onLabelClick(e) {\n if (this.$props.editorRef && this.$props.editorRef.current && !this.$props.editorDisabled) {\n if (this.$props.editorRef.current.focus) {\n e.preventDefault();\n this.$props.editorRef.current.focus();\n }\n\n var editorActionElement = this.$props.editorRef.current.actionElement;\n\n if (editorActionElement) {\n e.preventDefault();\n editorActionElement.click();\n }\n }\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n this.defaultSlots = getDefaultSlots(this);\n var ls = provideLocalizationService(this);\n var _a = this.$props,\n id = _a.id,\n editorId = _a.editorId,\n optional = _a.optional;\n var localizedOptional = optional ? ls.toLanguageString(labelsOptional, messages[labelsOptional]) : '';\n var optionalElement = localizedOptional && h(\"span\", {\n \"class\": 'k-label-optional'\n }, [localizedOptional]);\n return h(\"label\", {\n id: id,\n attrs: this.v3 ? undefined : {\n id: id,\n \"for\": editorId\n },\n \"for\": editorId,\n onClick: this.onLabelClick,\n on: this.v3 ? undefined : {\n \"click\": this.onLabelClick\n },\n \"class\": this.labelClassName\n }, [this.defaultSlots, optionalElement]);\n }\n};\nvar LabelVue3 = Label;\nexport { Label, LabelVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { packageMetadata } from './package-metadata';\nimport { getDefaultSlots, validatePackage } from '@progress/kendo-vue-common';\n/**\n * Represents the default `Error` component.\n */\n\nvar Error = {\n name: 'KendoError',\n props: {\n id: String,\n direction: {\n type: String,\n default: 'start',\n validator: function validator(value) {\n return ['start', 'end'].includes(value);\n }\n }\n },\n created: function created() {\n validatePackage(packageMetadata);\n },\n computed: {\n errorClassName: function errorClassName() {\n return {\n 'k-form-error': true,\n 'k-text-start': this.$props.direction === 'start',\n 'k-text-end': this.$props.direction === 'end'\n };\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlots = getDefaultSlots(this);\n return h(\"div\", {\n id: this.$props.id,\n attrs: this.v3 ? undefined : {\n id: this.$props.id,\n role: 'alert'\n },\n role: 'alert',\n \"class\": this.errorClassName\n }, [defaultSlots]);\n }\n};\nvar ErrorVue3 = Error;\nexport { Error, ErrorVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { packageMetadata } from './package-metadata';\nimport { getDefaultSlots, validatePackage } from '@progress/kendo-vue-common';\n/**\n * Represents the default `Hint` component.\n */\n\nvar Hint = {\n name: 'KendoHint',\n props: {\n id: String,\n direction: {\n type: String,\n default: 'start',\n validator: function validator(value) {\n return ['start', 'end'].includes(value);\n }\n }\n },\n created: function created() {\n validatePackage(packageMetadata);\n },\n computed: {\n hintClassName: function hintClassName() {\n return {\n 'k-form-hint': true,\n 'k-text-start': this.$props.direction === 'start',\n 'k-text-end': this.$props.direction === 'end'\n };\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlots = getDefaultSlots(this);\n return h(\"div\", {\n id: this.$props.id,\n attrs: this.v3 ? undefined : {\n id: this.$props.id\n },\n \"class\": this.hintClassName\n }, [defaultSlots]);\n }\n};\nvar HintVue3 = Hint;\nexport { Hint, HintVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar inject = allVue.inject;\nimport { getDefaultSlots, validatePackage } from '@progress/kendo-vue-common';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { labelsOptional, messages } from './messages';\nimport { packageMetadata } from './package-metadata';\n/**\n * Represents the default `FloatingLabel` component.\n */\n\nvar FloatingLabel = {\n name: 'KendoFloatingLabel',\n props: {\n label: String,\n editorId: String,\n editorValue: [String, Boolean, Number],\n editorPlaceholder: String,\n editorValid: {\n type: Boolean,\n default: undefined\n },\n editorDisabled: Boolean,\n id: String,\n optional: Boolean\n },\n data: function data() {\n return {\n focused: false\n };\n },\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n created: function created() {\n validatePackage(packageMetadata);\n },\n computed: {\n spanClassNames: function spanClassNames() {\n return {\n 'k-textbox-container': true,\n 'k-state-focused': this.focused,\n 'k-state-empty': !this.$props.editorPlaceholder && !this.$props.editorValue && this.$props.editorValue !== 0,\n 'k-text-disabled': this.$props.editorDisabled,\n 'k-rtl': this.$props.dir === 'rtl'\n };\n },\n labelClassNames: function labelClassNames() {\n return {\n 'k-label': true,\n 'k-text-error': this.$props.editorValid === false,\n 'k-text-disabled': this.$props.editorDisabled\n };\n }\n },\n methods: {\n handleFocus: function handleFocus() {\n this.focused = true;\n },\n handleBlur: function handleBlur() {\n this.focused = false;\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlots = getDefaultSlots(this);\n var _a = this.$props,\n label = _a.label,\n editorId = _a.editorId,\n id = _a.id,\n optional = _a.optional;\n var ls = provideLocalizationService(this);\n var localizedOptional = optional ? ls.toLanguageString(labelsOptional, messages[labelsOptional]) : '';\n var optionalElement = localizedOptional && h(\"span\", {\n \"class\": 'k-label-optional'\n }, [localizedOptional]);\n return h(\"span\", {\n \"class\": this.spanClassNames,\n onFocusin: this.handleFocus,\n on: this.v3 ? undefined : {\n \"focusin\": this.handleFocus,\n \"focusout\": this.handleBlur\n },\n onFocusout: this.handleBlur,\n dir: this.$props.dir,\n attrs: this.v3 ? undefined : {\n dir: this.$props.dir\n }\n }, [defaultSlots, label ? editorId ? h(\"label\", {\n id: id,\n attrs: this.v3 ? undefined : {\n id: id,\n \"for\": editorId\n },\n \"for\": editorId,\n \"class\": this.labelClassNames\n }, [label, optionalElement]) : h(\"span\", {\n id: id,\n attrs: this.v3 ? undefined : {\n id: id\n },\n \"class\": this.labelClassNames\n }, [label, optionalElement]) : null]);\n }\n};\nvar FloatingLabelVue3 = FloatingLabel;\nexport { FloatingLabel, FloatingLabelVue3 };","var _Draggable;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport KendoDraggable from '@telerik/kendo-draggable';\nimport { getDefaultSlots } from './defaultSlots';\n/**\n * Represents the default `Draggable` component.\n */\n\nvar Draggable = (_Draggable = {\n // @ts-ignore\n emits: {\n press: null,\n drag: null,\n release: null\n },\n inheritAttrs: false,\n created: function created() {\n this.element = null;\n this.draggable = new KendoDraggable({\n press: this.press,\n drag: this.drag,\n release: this.release\n });\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n mounted: function mounted() {\n if (this.$el) {\n this.element = this.$el.nodeType === 3 ? this.$el.nextElementSibling : this.$el;\n this.draggable.bindTo(this.element);\n }\n },\n destroyed: !!gh ? undefined : function () {\n this.draggable.destroy();\n },\n // @ts-ignore\n unmounted: function unmounted() {\n this.draggable.destroy();\n },\n methods: {\n press: function press(event) {\n if (this.element) {\n this.$emit('press', event, this.element);\n }\n },\n drag: function drag(event) {\n if (this.element) {\n this.$emit('drag', event, this.element);\n }\n },\n release: function release(event) {\n if (this.element) {\n this.$emit('release', event, this.element);\n }\n }\n }\n}, _defineProperty(_Draggable, \"setup\", !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n}), _defineProperty(_Draggable, \"render\", function render(createElement) {\n // @ts-ignore\n var h = gh || createElement;\n return getDefaultSlots(this);\n}), _Draggable);\nexport { Draggable };","/**\n * @hidden\n */\nexport var classNames = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return args\n .filter(function (arg) { return arg !== true && !!arg; })\n .map(function (arg) {\n return Array.isArray(arg)\n ? classNames.apply(void 0, arg) : typeof arg === 'object'\n ? Object\n .keys(arg)\n .map(function (key, idx) { return arg[idx] || (arg[key] && key) || null; })\n .filter(function (el) { return el !== null; })\n .join(' ')\n : arg;\n })\n .filter(function (arg) { return !!arg; })\n .join(' ');\n};\n","/* tslint:disable:no-bitwise */\n/**\n * @hidden\n */\nvar guid = function () {\n var id = '';\n var i;\n var random;\n for (i = 0; i < 32; i++) {\n random = Math.random() * 16 | 0;\n if (i === 8 || i === 12 || i === 16 || i === 20) {\n id += '-';\n }\n id += (i === 12 ? 4 : (i === 16 ? (random & 3 | 8) : random)).toString(16);\n }\n return id;\n};\nexport { guid };\n","/**\n * @hidden\n */\nvar Keys = {\n backspace: 8,\n tab: 9,\n enter: 13,\n shift: 16,\n esc: 27,\n space: 32,\n pageUp: 33,\n pageDown: 34,\n end: 35,\n home: 36,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n delete: 46\n};\nexport { Keys };\n","/**\n * @hidden\n */\nvar canUseDOM = Boolean(\n// from fbjs\ntypeof window !== 'undefined' &&\n window.document &&\n window.document.createElement);\nexport { canUseDOM };\n","/**\n * @hidden\n */\nexport var focusFirstFocusableChild = function (element) {\n if (element) {\n // should focus wrapper if it's focusable in future versions\n var elements = element.querySelectorAll('input, [tabindex]:not([tabindex=\"-1\"])');\n if (elements.length && elements[0].focus) {\n elements[0].focus();\n }\n }\n};\n","/**\n * @hidden\n */\nexport function getDefaultSlots(component) {\n var defaultSlots = component.$slots.default;\n return (component.v3 && defaultSlots && typeof defaultSlots === 'function') ? defaultSlots() : defaultSlots;\n}\n","import { FIELD_REGEX } from './constants';\nvar getterCache = {};\ngetterCache.undefined = function () { return undefined; };\n/**\n * @hidden\n */\nexport function getter(field) {\n if (getterCache[field]) {\n return getterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n getterCache[field] = function (obj) {\n var result = obj;\n for (var idx = 0; idx < fields.length && result; idx++) {\n result = result[fields[idx]];\n }\n return result;\n };\n return getterCache[field];\n}\n","import { FIELD_REGEX } from './constants';\nvar setterCache = {};\nsetterCache.undefined = function (obj) { return obj; };\n/**\n * @hidden\n */\nexport function setter(field) {\n if (setterCache[field]) {\n return setterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n setterCache[field] = function (obj, value) {\n var root = obj;\n var depth = fields.length - 1;\n for (var idx = 0; idx < depth && root; idx++) {\n root = root[fields[idx]] = root[fields[idx]] || {};\n }\n root[fields[depth]] = value;\n };\n return setterCache[field];\n}\n","/**\n * @hidden\n */\nexport function hasListener(eventName) {\n if (this.v3) {\n return Object.keys(this.$attrs).map(function (name) { return name.toLowerCase(); })\n .some(function (event) { return event.endsWith(eventName.toLowerCase()); });\n }\n else {\n return this.$listeners[eventName];\n }\n}\n/**\n * @hidden\n */\nexport function getListeners() {\n if (this.v3) {\n var listeners = {};\n for (var key in (this.$attrs)) {\n if (key.startsWith('on')) {\n listeners[key] = this.$attrs[key];\n }\n }\n return listeners;\n }\n else {\n return this.$listeners;\n }\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\n/**\n * @hidden\n */\nexport function templateRendering(template, listeners) {\n if (!template) {\n return undefined;\n }\n var scopedSlot = gh ?\n this.$slots[template] ||\n (template.toLowerCase ? this.$slots[template.toLowerCase()]\n : null) :\n this.$scopedSlots[template] ||\n (template.toLowerCase ? this.$scopedSlots[template.toLowerCase()]\n : null);\n // @ts-ignore\n if (typeof template === 'string' && scopedSlot) {\n // @ts-ignore\n return { type: 'slot', render: scopedSlot, listeners: listeners };\n }\n if (typeof template === 'string' || typeof template === 'object' ||\n (typeof template === 'function' && template.component)) {\n return { type: 'component', render: template, listeners: listeners };\n }\n return { type: 'renderFunction', render: template, listeners: listeners };\n}\n/**\n * @hidden\n */\nexport function getTemplate(_a) {\n var h = _a.h, template = _a.template, defaultRendering = _a.defaultRendering, defaultSlots = _a.defaultSlots, additionalProps = _a.additionalProps, additionalListeners = _a.additionalListeners, swapDefaultSlots = _a.swapDefaultSlots;\n if (!template) {\n return defaultRendering;\n }\n var events;\n var props;\n var componentOptions;\n if (gh) {\n var passedProps = defaultRendering ? defaultRendering.props : {};\n events = __assign(__assign({}, transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, passedProps), additionalProps), events);\n componentOptions = __assign(__assign({}, props), events);\n }\n else {\n var hasComponentOptions = defaultRendering && defaultRendering.componentOptions;\n var defaultListeners = hasComponentOptions ?\n defaultRendering.componentOptions.listeners : {};\n var defaultProps = hasComponentOptions ?\n defaultRendering.componentOptions.propsData : {};\n events = __assign(__assign(__assign(__assign({}, defaultListeners), additionalListeners), transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, defaultProps), additionalProps), events);\n componentOptions = { props: props, on: events };\n }\n if (template.type === 'slot') {\n var slotTemplate = template.render({ props: props, listeners: events, methods: events,\n defaultSlots: defaultSlots });\n return slotTemplate ? slotTemplate[0] : undefined;\n }\n else if (template.type === 'renderFunction') {\n if (swapDefaultSlots) {\n return template.render(h, defaultRendering, defaultSlots, props, events);\n }\n return template.render(h, defaultRendering, props, events, defaultSlots);\n }\n else {\n return h(template.render, componentOptions, gh ? function () { return [defaultSlots]; } : [defaultSlots]);\n }\n}\n/**\n * @hidden\n */\nexport function transformListeners(listeners) {\n if (!listeners) {\n return listeners;\n }\n var newListeners = {};\n var listenersKeys = Object.keys(listeners);\n for (var i = 0; i < listenersKeys.length; i++) {\n var currentKey = listenersKeys[i];\n newListeners['on' + currentKey.charAt(0).toUpperCase() + currentKey.slice(1)] =\n listeners[currentKey];\n }\n return newListeners;\n}\n","/**\n * @hidden\n */\nvar DISABLED_TABINDEX = -1;\n/**\n * @hidden\n */\nvar DEFAULT_TABINDEX = 0;\n/**\n * @hidden\n */\nexport var getTabIndex = function (tabIndex, disabled, useDefaultTabIndexWhenDisabled) {\n var parsedTabIndex = typeof tabIndex === 'string' ? parseInt(tabIndex, undefined) : tabIndex;\n if (parsedTabIndex === NaN) {\n return undefined;\n }\n return parsedTabIndex !== undefined\n ? parsedTabIndex\n : disabled ?\n (useDefaultTabIndexWhenDisabled ? undefined : DISABLED_TABINDEX)\n : DEFAULT_TABINDEX;\n};\n","import { canUseDOM } from './canUseDOM';\n/**\n * @hidden\n */\nexport function isRtl(element) {\n return Boolean(canUseDOM && element && getComputedStyle(element).direction === 'rtl');\n}\n/**\n * @hidden\n */\nexport function getDir(element, initialDir) {\n if (!initialDir && canUseDOM && element) {\n // Note: getComputedStyle forces reflow\n var rtlCandidate = window.getComputedStyle(element).direction;\n if (rtlCandidate) {\n // rerender is needed as DOM is read after first render\n return rtlCandidate;\n }\n }\n return initialDir;\n}\n","import * as licensing from '@progress/kendo-licensing';\n/**\n * @hidden\n */\nexport function validatePackage(packageMetadata) {\n if (typeof licensing !== 'undefined') {\n licensing.validatePackage(packageMetadata);\n }\n else {\n var message = \"License activation failed for \" + packageMetadata.name + \"\\n\";\n message += 'The @progress/kendo-licensing script is not loaded.\\n';\n message += \"See \" + packageMetadata.licensingDocsUrl + \" for more information.\\n\";\n console.warn(message);\n }\n}\n","// @ts-ignore\nimport { getTemplate } from '@progress/kendo-vue-common';\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\n/**\n * Represents the default `TabStripNavigationItem` component.\n */\n\nvar TabStripNavigationItem = {\n name: 'KendoTabStripNavigationItem',\n // @ts-ignore\n emits: {\n select: null\n },\n props: {\n active: Boolean,\n disabled: Boolean,\n index: Number,\n title: {\n type: String,\n default: 'Untitled'\n },\n titleRender: [String, Function, Object],\n first: {\n type: Boolean,\n default: undefined\n },\n last: {\n type: Boolean,\n default: undefined\n }\n },\n computed: {\n itemClasses: {\n get: function get() {\n var _a;\n\n var _b = this.$props,\n active = _b.active,\n disabled = _b.disabled,\n first = _b.first,\n last = _b.last;\n return _a = {}, _a['k-first'] = first, _a['k-last'] = last, _a['k-item'] = true, _a['k-state-disabled'] = disabled, _a['k-state-active'] = active, _a;\n }\n }\n },\n methods: {\n onClick: function onClick() {\n if (!this.$props.disabled) {\n this.$emit('select', this.$props.index);\n }\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n active = _a.active,\n _b = _a.title,\n title = _b === void 0 ? 'Untitled' : _b;\n var titleRender = this.$props.titleRender;\n var titleElement = getTemplate.call(this, {\n h: h,\n template: titleRender,\n defaultRendering: title,\n additionalProps: this.$props,\n additionalListeners: {\n select: this.onClick\n }\n });\n return h(\"li\", {\n \"aria-selected\": active,\n attrs: this.v3 ? undefined : {\n \"aria-selected\": active,\n role: 'tab'\n },\n role: 'tab',\n onClick: this.onClick,\n on: this.v3 ? undefined : {\n \"click\": this.onClick\n },\n \"class\": this.itemClasses\n }, [h(\"span\", {\n \"class\": \"k-link\"\n }, [titleElement])]);\n }\n};\nvar TabStripNavigationItemVue3 = TabStripNavigationItem;\nexport { TabStripNavigationItem, TabStripNavigationItemVue3 };","export var avatarShape;\n\n(function (avatarShape) {\n avatarShape[\"CIRCLE\"] = \"circle\";\n avatarShape[\"SQUARE\"] = \"square\";\n avatarShape[\"ROUNDED\"] = \"rounded\";\n avatarShape[\"RECTANGLE\"] = \"rectangle\";\n})(avatarShape || (avatarShape = {}));\n\nexport var avatarType;\n\n(function (avatarType) {\n avatarType[\"TEXT\"] = \"text\";\n avatarType[\"IMAGE\"] = \"image\";\n avatarType[\"ICON\"] = \"icon\";\n})(avatarType || (avatarType = {}));\n\nexport var avatarSize;\n\n(function (avatarSize) {\n avatarSize[\"SMALL\"] = \"small\";\n avatarSize[\"MEDIUM\"] = \"medium\";\n avatarSize[\"LARGE\"] = \"large\";\n})(avatarSize || (avatarSize = {}));\n\nexport var avatarFill;\n\n(function (avatarFill) {\n avatarFill[\"SOLID\"] = \"solid\";\n avatarFill[\"OUTLINE\"] = \"outline\";\n})(avatarFill || (avatarFill = {}));\n\nexport var avatarThemeColor;\n\n(function (avatarThemeColor) {\n avatarThemeColor[\"PRIMARY\"] = \"primary\";\n avatarThemeColor[\"SECONDARY\"] = \"secondary\";\n avatarThemeColor[\"TERTIARY\"] = \"tertiary\";\n avatarThemeColor[\"INFO\"] = \"info\";\n avatarThemeColor[\"SUCCESS\"] = \"success\";\n avatarThemeColor[\"WARNING\"] = \"warning\";\n avatarThemeColor[\"ERROR\"] = \"error\";\n avatarThemeColor[\"DARK\"] = \"dark\";\n avatarThemeColor[\"LIGHT\"] = \"light\";\n avatarThemeColor[\"INVERSE\"] = \"inverse\";\n avatarThemeColor[\"INHERIT\"] = \"inherit\";\n})(avatarThemeColor || (avatarThemeColor = {}));\n\nexport var cardOrientation;\n\n(function (cardOrientation) {\n cardOrientation[\"HORIZONTAL\"] = \"horizontal\";\n cardOrientation[\"VERTICAL\"] = \"vertical\";\n})(cardOrientation || (cardOrientation = {}));\n\nexport var cardType;\n\n(function (cardType) {\n cardType[\"DEFAULT\"] = \"default\";\n cardType[\"primary\"] = \"primary\";\n cardType[\"INFO\"] = \"info\";\n cardType[\"SUCCESS\"] = \"success\";\n cardType[\"WARNING\"] = \"warning\";\n cardType[\"ERROR\"] = \"error\";\n})(cardType || (cardType = {}));\n\nexport var cardActionsLayout;\n\n(function (cardActionsLayout) {\n cardActionsLayout[\"START\"] = \"start\";\n cardActionsLayout[\"CENTER\"] = \"center\";\n cardActionsLayout[\"END\"] = \"end\";\n cardActionsLayout[\"STRETCHED\"] = \"stretched\";\n})(cardActionsLayout || (cardActionsLayout = {}));","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nvar inject = allVue.inject;\nimport { TabStripNavigationItem } from './TabStripNavigationItem';\n/**\n * @hidden\n */\n\nvar times = function times(count) {\n return Array.apply(null, Array(count));\n};\n/**\n * Represents the default `TabStripNavigation` component.\n */\n\n\nvar TabStripNavigation = {\n name: 'KendoTabStripNavigation',\n // @ts-ignore\n emits: {\n select: null,\n keydown: null\n },\n props: {\n tabs: Array,\n selected: Number,\n tabIndex: Number,\n tabPosition: String\n },\n computed: {\n wrapperNavClasses: {\n get: function get() {\n return {\n 'k-tabstrip-items-wrapper': true,\n 'k-hstack': this.$props.tabPosition === 'top' || this.$props.tabPosition === 'bottom',\n 'k-vstack': this.$props.tabPosition === 'left' || this.$props.tabPosition === 'right'\n };\n }\n },\n navClasses: {\n get: function get() {\n return {\n 'k-tabstrip-items': true,\n 'k-reset': true\n };\n }\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n tabs = _a.tabs,\n selected = _a.selected;\n var tabsCount = tabs.length;\n\n var renderTabs = function renderTabs() {\n return times(tabsCount).map(function (_, index, array) {\n return (// @ts-ignore function children\n h(TabStripNavigationItem, {\n key: index,\n active: selected === index,\n attrs: this.v3 ? undefined : {\n active: selected === index,\n disabled: tabs[index].disabled,\n index: index,\n title: tabs[index].title,\n titleRender: tabs[index].titleRender,\n first: index === 0,\n last: index === array.length - 1\n },\n disabled: tabs[index].disabled,\n index: index,\n title: tabs[index].title,\n titleRender: tabs[index].titleRender,\n first: index === 0,\n last: index === array.length - 1,\n onSelect: this.onSelect,\n on: this.v3 ? undefined : {\n \"select\": this.onSelect\n }\n })\n );\n }, this);\n };\n\n return h(\"div\", {\n \"class\": this.wrapperNavClasses\n }, [h(\"ul\", {\n \"class\": this.navClasses,\n role: 'tablist',\n attrs: this.v3 ? undefined : {\n role: 'tablist',\n tabIndex: this.$props.tabIndex\n },\n tabIndex: this.$props.tabIndex,\n onKeydown: this.onKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.onKeyDown\n }\n }, [renderTabs.call(this)])]);\n },\n methods: {\n onKeyDown: function onKeyDown(e) {\n this.$emit('keydown', e);\n },\n onSelect: function onSelect(idx) {\n this.$emit('select', idx);\n }\n }\n};\nvar TabStripNavigationVue3 = TabStripNavigation;\nexport { TabStripNavigation, TabStripNavigationVue3 };","export var getTabs = function (curTabs, children) {\n var that = this;\n var foundTabs = [];\n children.forEach(function (child) {\n if (that.v3 && child.children && child.children.length) {\n foundTabs = getTabs.call(that, curTabs, child.children);\n }\n if (child && child.tag && child.tag.toLowerCase().indexOf('tab') !== -1 ||\n child.type && child.type.name && child.type.name.toLowerCase().indexOf('kendotabstriptab') !== -1) {\n foundTabs.push(child);\n }\n });\n return foundTabs;\n};\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nvar inject = allVue.inject;\nimport { Fade } from '@progress/kendo-vue-animation';\nimport { classNames, guid, getDefaultSlots } from '@progress/kendo-vue-common';\nimport { getTabs } from './utils';\n/**\n * Represents the default `TabStripContent` component.\n */\n\nvar TabStripContent = {\n name: 'KendoTabStripContent',\n props: {\n showAll: Boolean,\n animation: Boolean,\n tabs: Array,\n selected: Number\n },\n created: function created() {\n this.contentId = guid();\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n tabs = _a.tabs,\n selected = _a.selected,\n showAll = _a.showAll;\n var selectedTab = tabs && typeof selected === 'number' && tabs[selected];\n var defaultSlots = getDefaultSlots(this);\n var innerTabs = getTabs.call(this, [], defaultSlots);\n var tabStyles = selected < innerTabs.length && selected > -1;\n var contentClasses = classNames({\n 'k-content': tabStyles\n }, {\n 'k-state-active': tabStyles\n }, selectedTab && selectedTab.contentClassName);\n\n var renderChild = function renderChild(tab, idx) {\n var _this = this;\n\n var visible = idx === this.$props.selected;\n var animationStyle = {\n position: 'initial',\n display: visible ? undefined : 'none'\n };\n return (// @ts-ignore function children\n h(Fade, {\n appear: this.v3 ? true : visible,\n attrs: this.v3 ? undefined : {\n appear: this.v3 ? true : visible,\n enter: this.$props.animation,\n exit: this.$props.keepTabsMounted\n },\n key: idx,\n enter: this.$props.animation,\n exit: this.$props.keepTabsMounted,\n style: animationStyle\n }, this.v3 ? function () {\n return [h(\"div\", {\n role: 'tabpanel',\n attrs: _this.v3 ? undefined : {\n role: 'tabpanel',\n \"aria-expanded\": true,\n id: String(_this.contentId + idx)\n },\n \"aria-expanded\": true,\n id: String(_this.contentId + idx),\n key: idx\n }, [tab])];\n } : [h(\"div\", {\n role: 'tabpanel',\n attrs: _this.v3 ? undefined : {\n role: 'tabpanel',\n \"aria-expanded\": true,\n id: String(_this.contentId + idx)\n },\n \"aria-expanded\": true,\n id: String(_this.contentId + idx),\n key: idx\n }, [tab])])\n );\n };\n\n var renderContent = function renderContent() {\n return showAll && innerTabs.map(function (tab, idx) {\n return renderChild.call(this, tab, idx);\n }, this);\n };\n\n return h(\"div\", {\n \"class\": contentClasses,\n style: this.$props.style\n }, [renderContent.call(this)]);\n }\n};\nvar TabStripContentVue3 = TabStripContent;\nexport { TabStripContent, TabStripContentVue3 };","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-vue-layout',\n productName: 'Kendo UI for Vue',\n productCodes: ['KENDOUIVUE', 'KENDOUICOMPLETE'],\n publishDate: 1641561261,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning'\n};\n","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nvar inject = allVue.inject;\nimport { TabStripNavigation } from './TabStripNavigation';\nimport { TabStripContent } from './TabStripContent';\nimport { Keys, classNames, getDefaultSlots, validatePackage } from '@progress/kendo-vue-common';\nimport { packageMetadata } from '../package-metadata';\n/**\n * Represents the default `TabStrip` component.\n */\n\nvar TabStrip = {\n name: 'KendoTabStrip',\n // @ts-ignore\n emits: {\n select: null\n },\n props: {\n animation: {\n type: Boolean,\n default: true\n },\n selected: Number,\n tabContentStyle: Object,\n tabPosition: {\n type: String,\n default: 'top'\n },\n tabIndex: Number,\n dir: String\n },\n data: function data() {\n return {\n currentShowAll: true,\n currentTabs: []\n };\n },\n provide: function provide() {\n return {\n addRenderTitle: this.addRenderTitle,\n addTab: this.addTab,\n removeTab: this.removeTab\n };\n },\n created: function created() {\n var _a;\n\n var _this = this;\n\n this.keyBinding = (_a = {}, _a[Keys.left] = function () {\n return _this.prevNavigatableTab();\n }, _a[Keys.right] = function () {\n return _this.nextNavigatableTab();\n }, _a[Keys.down] = function () {\n return _this.nextNavigatableTab();\n }, _a[Keys.up] = function () {\n return _this.prevNavigatableTab();\n }, _a[Keys.home] = function () {\n return 0;\n }, _a[Keys.end] = function () {\n return _this.currentTabs.length - 1;\n }, _a);\n validatePackage(packageMetadata);\n },\n watch: {\n selected: function selected(_prevIndex, _nextIndex) {\n if (this.$props.animation) {\n this.currentShowAll = false;\n this.$nextTick(function () {\n this.currentShowAll = true;\n });\n }\n }\n },\n methods: {\n addRenderTitle: function addRenderTitle(currentId, titleTemplate) {\n var indexToUpdate = this.currentTabs.findIndex(function (e) {\n return e.id === currentId;\n });\n\n if (this.v3) {\n this.currentTabs[indexToUpdate].titleRender = titleTemplate;\n } else {\n this.currentTabs[indexToUpdate] = __assign(__assign({}, this.currentTabs[indexToUpdate]), {\n titleRender: titleTemplate\n });\n }\n },\n addTab: function addTab(newTab) {\n this.currentTabs.push(newTab);\n },\n removeTab: function removeTab(currentId) {\n var indexToRemove = this.currentTabs.findIndex(function (e) {\n return e.id === currentId;\n });\n this.currentTabs.splice(indexToRemove, 1);\n },\n onSelect: function onSelect(index) {\n if (this.$props.selected !== index) {\n this.$emit('select', {\n selected: index\n });\n }\n },\n onKeyDown: function onKeyDown(event) {\n var handler;\n\n switch (event.keyCode) {\n case Keys.left:\n handler = this.keyBinding[this.invertKeys(Keys.left, Keys.right)];\n break;\n\n case Keys.right:\n handler = this.keyBinding[this.invertKeys(Keys.right, Keys.left)];\n break;\n\n case Keys.up:\n handler = this.keyBinding[Keys.up];\n break;\n\n case Keys.down:\n handler = this.keyBinding[Keys.down];\n break;\n\n case Keys.home:\n handler = this.keyBinding[Keys.home];\n break;\n\n case Keys.end:\n handler = this.keyBinding[Keys.end];\n break;\n\n default:\n break;\n }\n\n if (handler) {\n event.preventDefault();\n this.onSelect(handler());\n }\n },\n invertKeys: function invertKeys(original, inverted) {\n var rtl = this.$el && getComputedStyle(this.$el).direction === 'rtl' || false;\n return rtl ? inverted : original;\n },\n firstNavigatableTab: function firstNavigatableTab() {\n var length = this.currentTabs.length;\n\n if (length) {\n for (var i = 0; i < length; i++) {\n if (!this.currentTabs[i].disabled) {\n return i;\n }\n }\n }\n },\n lastNavigatableTab: function lastNavigatableTab() {\n var length = this.currentTabs.length;\n\n if (length) {\n for (var i = length - 1; i > 0; i--) {\n if (!this.currentTabs[i].disabled) {\n return i;\n }\n }\n }\n },\n prevNavigatableTab: function prevNavigatableTab() {\n var length = this.currentTabs.length;\n var selected = this.$props.selected;\n var index = selected ? selected - 1 : -1;\n\n if (index < 0) {\n return this.lastNavigatableTab();\n }\n\n if (length) {\n for (var i = index; i > -1; i--) {\n if (!this.currentTabs[i].disabled) {\n return i;\n }\n\n if (i === 0) {\n return this.lastNavigatableTab();\n }\n }\n }\n },\n nextNavigatableTab: function nextNavigatableTab() {\n var length = this.currentTabs.length;\n var selected = this.$props.selected;\n var index = selected ? selected + 1 : 1;\n\n if (index >= length) {\n return this.firstNavigatableTab();\n }\n\n if (length) {\n for (var i = index; i < length; i++) {\n if (!this.currentTabs[i].disabled) {\n return i;\n }\n\n if (i + 1 === length) {\n return this.firstNavigatableTab();\n }\n }\n }\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var _a;\n\n var h = gh || createElement;\n\n var tabProps = __assign({}, this.$props);\n\n var tabPosition = tabProps.tabPosition,\n _b = tabProps.tabIndex,\n tabIndex = _b === void 0 ? 0 : _b;\n var bottom = tabPosition === 'bottom';\n var componentClasses = classNames('k-widget', 'k-header', 'k-floatwrap', 'k-tabstrip', (_a = {}, _a['k-tabstrip-left'] = tabPosition === 'left', _a['k-tabstrip-right'] = tabPosition === 'right', _a['k-tabstrip-bottom'] = tabPosition === 'bottom', _a['k-tabstrip-top'] = tabPosition === 'top', _a));\n\n var renderContent = function renderContent(currentTabProps) {\n var selected = currentTabProps.selected,\n tabContentStyle = currentTabProps.tabContentStyle;\n var defaultSlots = getDefaultSlots(this);\n var tabContentProps = {\n index: selected,\n animation: this.$props.animation,\n tabs: this.currentTabs,\n selected: selected,\n tabContentStyle: tabContentStyle,\n showAll: this.currentShowAll\n };\n return h(TabStripContent, __assign(__assign({}, tabContentProps), {\n attrs: this.v3 ? undefined : __assign({}, tabContentProps)\n }), this.v3 ? function () {\n return defaultSlots;\n } : [defaultSlots]);\n };\n\n return h(\"div\", {\n dir: this.$props.dir,\n attrs: this.v3 ? undefined : {\n dir: this.$props.dir\n },\n \"class\": componentClasses\n }, [!bottom && // @ts-ignore function children\n h(TabStripNavigation, {\n tabs: this.currentTabs,\n attrs: this.v3 ? undefined : {\n tabs: this.currentTabs,\n selected: tabProps.selected,\n tabContentStyle: tabProps.tabContentStyle,\n tabIndex: tabIndex\n },\n selected: tabProps.selected,\n tabContentStyle: tabProps.tabContentStyle,\n onSelect: this.onSelect,\n on: this.v3 ? undefined : {\n \"select\": this.onSelect,\n \"keydown\": this.onKeyDown\n },\n onKeydown: this.onKeyDown,\n tabIndex: tabIndex\n }), renderContent.call(this, tabProps), bottom && // @ts-ignore function children\n h(TabStripNavigation, {\n tabs: this.currentTabs,\n attrs: this.v3 ? undefined : {\n tabs: this.currentTabs,\n selected: tabProps.selected,\n tabContentStyle: tabProps.tabContentStyle,\n tabIndex: tabIndex\n },\n selected: tabProps.selected,\n tabContentStyle: tabProps.tabContentStyle,\n onSelect: this.onSelect,\n on: this.v3 ? undefined : {\n \"select\": this.onSelect,\n \"keydown\": this.onKeyDown\n },\n onKeydown: this.onKeyDown,\n tabIndex: tabIndex\n })]);\n }\n};\nvar TabStripVue3 = TabStrip;\nexport { TabStrip, TabStripVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nvar inject = allVue.inject;\nimport { guid, getDefaultSlots, templateRendering, getListeners } from '@progress/kendo-vue-common';\n/**\n * Represents the default `TabStripTab` component.\n */\n\nvar TabStripTab = {\n name: 'KendoTabStripTab',\n props: {\n disabled: Boolean,\n contentClassName: String,\n title: String,\n titleRender: [String, Function, Object]\n },\n inject: {\n addRenderTitle: {\n default: null\n },\n addTab: {\n default: null\n },\n removeTab: {\n default: null\n }\n },\n created: function created() {\n this.tabId = guid();\n this.addTab({\n title: this.$props.title,\n id: this.tabId,\n disabled: this.$props.disabled,\n contentClassName: this.$props.contentClassName\n });\n },\n destroyed: !!gh ? undefined : function () {\n this.removeTab(this.tabId);\n },\n // @ts-ignore\n unmounted: function unmounted() {\n this.removeTab(this.tabId);\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var titleRender = this.$props.titleRender ? templateRendering.call(this, this.$props.titleRender, getListeners.call(this)) : null;\n\n if (titleRender) {\n this.addRenderTitle(this.tabId, titleRender);\n }\n\n return h(\"div\", [getDefaultSlots(this)]);\n }\n};\nvar TabStripTabVue3 = TabStripTab;\nexport { TabStripTab, TabStripTabVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { cardType } from './interfaces/Enums';\nimport { cardOrientation } from './interfaces/Enums';\nimport { packageMetadata } from '../package-metadata';\nimport { getDefaultSlots, validatePackage } from '@progress/kendo-vue-common';\n/**\n * Represents the default `Card` component.\n */\n\nvar Card = {\n name: 'KendoCard',\n props: {\n dir: String,\n type: {\n type: String,\n default: cardType.DEFAULT,\n validator: function validator(value) {\n return ['default', 'primary', 'info', 'success', 'warning', 'error'].includes(value);\n }\n },\n orientation: {\n type: String,\n default: cardOrientation.VERTICAL,\n validator: function validator(value) {\n return ['horizontal', 'vertical'].includes(value);\n }\n }\n },\n created: function created() {\n validatePackage(packageMetadata);\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n computed: {\n wrapperClass: function wrapperClass() {\n var _a;\n\n var orientationClass = this.$props.orientation !== cardOrientation.HORIZONTAL ? 'vertical' : 'horizontal';\n return _a = {\n 'k-card': true\n }, _a[\"k-card-\" + this.$props.type] = this.$props.type !== cardType.DEFAULT, _a[\"k-card-\" + orientationClass] = true, _a;\n }\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlots = getDefaultSlots(this);\n return h(\"div\", {\n dir: this.$props.dir,\n attrs: this.v3 ? undefined : {\n dir: this.$props.dir\n },\n \"class\": this.wrapperClass\n }, [defaultSlots]);\n }\n};\nvar CardVue3 = Card;\nexport { Card, CardVue3 };","var _a;\n/**\n * @hidden\n */\nexport var optionalText = 'stepper.optionalText';\n/**\n * @hidden\n */\nexport var messages = (_a = {},\n _a[optionalText] = '(Optional)',\n _a);\n","var _Draggable;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport KendoDraggable from '@telerik/kendo-draggable';\nimport { getDefaultSlots } from './defaultSlots';\n/**\n * Represents the default `Draggable` component.\n */\n\nvar Draggable = (_Draggable = {\n // @ts-ignore\n emits: {\n press: null,\n drag: null,\n release: null\n },\n inheritAttrs: false,\n created: function created() {\n this.element = null;\n this.draggable = new KendoDraggable({\n press: this.press,\n drag: this.drag,\n release: this.release\n });\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n mounted: function mounted() {\n if (this.$el) {\n this.element = this.$el.nodeType === 3 ? this.$el.nextElementSibling : this.$el;\n this.draggable.bindTo(this.element);\n }\n },\n destroyed: !!gh ? undefined : function () {\n this.draggable.destroy();\n },\n // @ts-ignore\n unmounted: function unmounted() {\n this.draggable.destroy();\n },\n methods: {\n press: function press(event) {\n if (this.element) {\n this.$emit('press', event, this.element);\n }\n },\n drag: function drag(event) {\n if (this.element) {\n this.$emit('drag', event, this.element);\n }\n },\n release: function release(event) {\n if (this.element) {\n this.$emit('release', event, this.element);\n }\n }\n }\n}, _defineProperty(_Draggable, \"setup\", !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n}), _defineProperty(_Draggable, \"render\", function render(createElement) {\n // @ts-ignore\n var h = gh || createElement;\n return getDefaultSlots(this);\n}), _Draggable);\nexport { Draggable };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * Represents the default `CardHeader` component.\n */\n\nvar CardHeader = {\n name: 'KendoCardHeader',\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlots = getDefaultSlots(this);\n return h(\"div\", {\n \"class\": 'k-card-header'\n }, [defaultSlots]);\n }\n};\nvar CardHeaderVue3 = CardHeader;\nexport { CardHeader, CardHeaderVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * Represents the default `CardTitle` component.\n */\n\nvar CardTitle = {\n name: 'KendoCardTitle',\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlots = getDefaultSlots(this);\n return h(\"div\", {\n \"class\": 'k-card-title'\n }, [defaultSlots]);\n }\n};\nvar CardTitleVue3 = CardTitle;\nexport { CardTitle, CardTitleVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * Represents the default `CardBody` component.\n */\n\nvar CardBody = {\n name: 'KendoCardBody',\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlots = getDefaultSlots(this);\n return h(\"div\", {\n \"class\": 'k-card-body'\n }, [defaultSlots]);\n }\n};\nvar CardBodyVue3 = CardBody;\nexport { CardBody, CardBodyVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\nimport { cardActionsLayout, cardOrientation } from './interfaces/Enums';\n/**\n * Represents the default `CardActions` component.\n */\n\nvar CardActions = {\n name: 'KendoCardActions',\n props: {\n layout: {\n type: String,\n default: cardActionsLayout.START,\n validator: function validator(value) {\n return ['stretched', 'start', 'center', 'end'].includes(value);\n }\n },\n orientation: {\n type: String,\n default: cardOrientation.HORIZONTAL,\n validator: function validator(value) {\n return ['horizontal', 'vertical'].includes(value);\n }\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n computed: {\n wrapperClass: function wrapperClass() {\n var _a;\n\n return _a = {\n 'k-card-actions': true\n }, _a[\"k-card-actions-\" + this.$props.layout] = true, _a[\"k-card-actions-\" + (this.$props.orientation !== cardOrientation.HORIZONTAL ? 'vertical' : 'k-card-horizontal')] = true, _a;\n }\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlots = getDefaultSlots(this);\n return h(\"div\", {\n \"class\": this.wrapperClass\n }, [defaultSlots]);\n }\n};\nvar CardActionsVue3 = CardActions;\nexport { CardActions, CardActionsVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * Represents the default `CardImage` component.\n */\n\nvar CardImage = {\n name: 'KendoCardImage',\n props: {\n src: String\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlots = getDefaultSlots(this);\n return h(\"img\", {\n \"class\": 'k-card-image',\n src: this.$props.src,\n attrs: this.v3 ? undefined : {\n src: this.$props.src\n }\n });\n }\n};\nvar CardImageVue3 = CardImage;\nexport { CardImage, CardImageVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * Represents the default `CardSubtitle` component.\n */\n\nvar CardSubtitle = {\n name: 'KendoCardSubtitle',\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlots = getDefaultSlots(this);\n return h(\"div\", {\n \"class\": 'k-card-subtitle'\n }, [defaultSlots]);\n }\n};\nvar CardSubtitleVue3 = CardSubtitle;\nexport { CardSubtitle, CardSubtitleVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * Represents the default `CardFooter` component.\n */\n\nvar CardFooter = {\n name: 'KendoCardFooter',\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlots = getDefaultSlots(this);\n return h(\"div\", {\n \"class\": 'k-card-footer'\n }, [defaultSlots]);\n }\n};\nvar CardFooterVue3 = CardFooter;\nexport { CardFooter, CardFooterVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { avatarType, avatarShape, avatarSize, avatarFill, avatarThemeColor } from './interfaces/Enums';\nimport { packageMetadata } from '../package-metadata';\nimport { getDefaultSlots, validatePackage } from '@progress/kendo-vue-common';\n/**\n * Represents the default `Avatar` component.\n */\n\nvar Avatar = {\n name: 'KendoAvatar',\n props: {\n shape: {\n type: String,\n default: avatarShape.SQUARE,\n validator: function validator(value) {\n return ['circle', 'square', 'rounded', 'rectangle'].includes(value);\n }\n },\n type: {\n type: String,\n default: avatarType.TEXT,\n validator: function validator(value) {\n return ['text', 'image', 'icon'].includes(value);\n }\n },\n fill: {\n type: String,\n default: avatarFill.SOLID,\n validator: function validator(value) {\n return ['solid', 'outline'].includes(value);\n }\n },\n size: {\n type: String,\n default: avatarSize.MEDIUM,\n validator: function validator(value) {\n return ['small', 'medium', 'large'].includes(value);\n }\n },\n themeColor: {\n type: String,\n default: avatarThemeColor.PRIMARY,\n validator: function validator(value) {\n return ['primary', 'secondary', 'tertiary', 'info', 'success', 'warning', 'error', 'dark', 'light', 'inverse', 'inherit'].includes(value);\n }\n }\n },\n created: function created() {\n validatePackage(packageMetadata);\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n computed: {\n wrapperClass: function wrapperClass() {\n var _a;\n\n return _a = {\n 'k-avatar': true\n }, _a[\"k-avatar-\" + this.$props.fill] = true, _a[\"k-avatar-\" + this.$props.shape] = true, _a[\"k-avatar-\" + this.$props.themeColor] = true, _a['k-avatar-bordered'] = this.$props.border, _a['k-avatar-sm'] = this.$props.size === 'small', _a['k-avatar-md'] = this.$props.size === 'medium', _a['k-avatar-lg'] = this.$props.size === 'large', _a;\n }\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlots = getDefaultSlots(this);\n return h(\"div\", {\n \"class\": this.wrapperClass\n }, [h(\"span\", {\n \"class\": \"k-avatar-\" + this.$props.type\n }, [defaultSlots])]);\n }\n};\nvar AvatarVue3 = Avatar;\nexport { Avatar, AvatarVue3 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getTabIndex, getDefaultSlots } from '@progress/kendo-vue-common'; // tslint:enable:max-line-length\n\nvar DrawerItem = {\n name: 'KendoDrawerItem',\n // @ts-ignore\n emits: {\n click: null\n },\n props: {\n index: Number,\n text: String,\n icon: String,\n separator: Boolean,\n selected: Boolean,\n disabled: Boolean,\n targetItem: [Object, Array]\n },\n inject: {\n kendoDrawer: {\n default: null\n }\n },\n computed: {\n itemClassNames: function itemClassNames() {\n var _a = this.$props,\n disabled = _a.disabled,\n selected = _a.selected;\n return {\n 'k-drawer-item': true,\n 'k-state-selected': selected,\n 'k-state-disabled': disabled\n };\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n var _a = this.$props,\n text = _a.text,\n icon = _a.icon,\n separator = _a.separator,\n disabled = _a.disabled,\n selected = _a.selected,\n tabIndex = _a.tabIndex;\n var _b = this.kendoDrawer,\n expanded = _b.expanded,\n mini = _b.mini,\n item = _b.item;\n return separator ? h(\"li\", {\n \"class\": 'k-drawer-item k-drawer-separator',\n role: \"presentation\",\n attrs: this.v3 ? undefined : {\n role: \"presentation\"\n }\n }) : h(\"li\", {\n \"class\": this.itemClassNames,\n role: \"option\",\n attrs: this.v3 ? undefined : {\n role: \"option\",\n \"aria-selected\": selected,\n \"aria-disabled\": disabled,\n tabIndex: getTabIndex(tabIndex, disabled)\n },\n \"aria-selected\": selected,\n \"aria-disabled\": disabled,\n onClick: this.handleClick,\n on: this.v3 ? undefined : {\n \"click\": this.handleClick\n },\n tabIndex: getTabIndex(tabIndex, disabled)\n }, [!item ? [icon && h(\"span\", {\n \"class\": 'k-icon ' + icon\n }), !expanded && mini ? null : h(\"span\", {\n \"class\": 'k-item-text'\n }, [text])] : defaultSlot]);\n },\n methods: {\n focus: function focus(e) {\n if (this.$el) {\n this.$el.focus(e);\n }\n },\n handleClick: function handleClick() {\n if (!this.disabled) {\n var handle = {\n element: this.$el,\n focus: this.focus,\n props: __assign(__assign({}, this.$props), this.$attrs)\n };\n this.$emit('click', handle, this.$props.index);\n }\n }\n }\n};\nvar DrawerItemVue3 = DrawerItem;\nexport { DrawerItem, DrawerItemVue3 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { DrawerItem } from './DrawerItem';\nimport { getDefaultSlots, templateRendering, getListeners, getTemplate } from '@progress/kendo-vue-common';\n/**\n * @hidden\n */\n\nvar DEFAULT_EXPANDED_WIDTH = 240;\n/**\n * @hidden\n */\n\nvar DEFAULT_MINI_WIDTH = 50;\n/**\n * @hidden\n */\n\nvar DEFAULT_ANIMATION = {\n type: 'slide',\n duration: 200\n};\n/**\n * @hidden\n */\n\nvar NO_ANIMATION = {\n type: 'slide',\n duration: 0\n}; // tslint:enable:max-line-length\n\nvar DrawerNavigation = {\n name: 'KendoDrawerNavigation',\n props: {\n item: [Object],\n tabIndex: Number\n },\n inject: {\n kendoDrawer: {\n default: null\n }\n },\n computed: {\n navigationClassNames: function navigationClassNames() {\n var position = this.kendoDrawer.position;\n return {\n 'k-widget k-drawer': true,\n 'k-drawer-start': position === 'start',\n 'k-drawer-end': position === 'end'\n };\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n var _a = this.kendoDrawer,\n animation = _a.animation,\n expanded = _a.expanded,\n mode = _a.mode,\n position = _a.position,\n mini = _a.mini,\n dir = _a.dir,\n width = _a.width,\n miniWidth = _a.miniWidth,\n items = _a.items;\n var customSettings = typeof animation !== 'boolean' ? animation : animation === false ? NO_ANIMATION : DEFAULT_ANIMATION;\n var navWidth = width ? width : DEFAULT_EXPANDED_WIDTH;\n var navMiniWidth = miniWidth ? miniWidth : DEFAULT_MINI_WIDTH;\n var expandPush = {\n opacity: 1,\n flexBasis: navWidth + 'px',\n WebkitTransition: 'all ' + (customSettings && customSettings.duration) + 'ms',\n transition: 'all ' + (customSettings && customSettings.duration) + 'ms'\n };\n var expandOverlay = {\n opacity: 1,\n transform: 'translateX(0px)',\n WebkitTransition: 'all ' + (customSettings && customSettings.duration) + 'ms',\n transition: 'all ' + (customSettings && customSettings.duration) + 'ms'\n };\n var collapsePush = {\n opacity: !mini ? 0 : 1,\n flexBasis: !mini ? 0 : navMiniWidth + 'px',\n WebkitTransition: 'all ' + (customSettings && customSettings.duration) + 'ms',\n transition: 'all ' + (customSettings && customSettings.duration) + 'ms'\n };\n var collapseOverlay = {\n opacity: 0,\n transform: 'translateX(-100%)',\n WebkitTransition: 'all ' + (customSettings && customSettings.duration) + 'ms',\n transition: 'all ' + (customSettings && customSettings.duration) + 'ms'\n };\n var collapseOverlayRtl = {\n opacity: 0,\n transform: 'translateX(100%)',\n WebkitTransition: 'all ' + (customSettings && customSettings.duration) + 'ms',\n transition: 'all ' + (customSettings && customSettings.duration) + 'ms'\n };\n var collapseOverlayMini = {\n transform: 'translateX(0%)',\n WebkitTransitionDuration: (customSettings && customSettings.duration) + 'ms',\n transitionDuration: (customSettings && customSettings.duration) + 'ms'\n };\n var drawerAnimation = expanded ? mode === 'push' ? expandPush : expandOverlay : mode === 'push' ? collapsePush : dir === 'ltr' && position === 'start' || dir === 'rtl' && position === 'end' ? mini ? collapseOverlayMini : collapseOverlay : mini ? collapseOverlayMini : collapseOverlayRtl;\n var drawerItems = items && h(\"ul\", {\n \"class\": 'k-drawer-items',\n role: \"listbox\",\n attrs: this.v3 ? undefined : {\n role: \"listbox\",\n title: \"drawer-list\",\n \"aria-expanded\": expanded\n },\n title: \"drawer-list\",\n \"aria-expanded\": expanded\n }, [items.map(function (element, index) {\n var item = this.$props.item;\n\n if (item && !item.type && !item.render) {\n item = templateRendering.call(this, this.$props.item, getListeners.call(this));\n }\n\n var itemDefaultRendering = // @ts-ignore\n h(DrawerItem, {\n key: index,\n index: index,\n attrs: this.v3 ? undefined : {\n index: index,\n text: element.text,\n icon: element.icon,\n separator: element.separator,\n selected: element.selected,\n targetItem: element.targetItem\n },\n onClick: this.onSelect,\n on: this.v3 ? undefined : {\n \"click\": this.onSelect\n },\n text: element.text,\n icon: element.icon,\n separator: element.separator,\n selected: element.selected,\n targetItem: element.targetItem\n });\n var itemRendering = getTemplate.call(this, {\n h: h,\n template: item,\n defaultRendering: itemDefaultRendering,\n additionalProps: __assign(__assign({}, element), {\n index: index\n }),\n additionalListeners: {\n click: this.onSelect\n }\n });\n return itemRendering;\n }, this)]);\n var drawerNavigation = h(\"div\", {\n style: drawerAnimation,\n \"class\": this.navigationClassNames\n }, [h(\"div\", {\n \"class\": 'k-drawer-wrapper',\n style: !expanded && mini && mode === 'overlay' ? {\n width: navMiniWidth + 'px'\n } : {\n width: navWidth + 'px'\n }\n }, [drawerItems || defaultSlot])]);\n return drawerNavigation;\n },\n methods: {\n focus: function focus(e) {\n if (this.$el) {\n this.$el.focus(e);\n }\n },\n onSelect: function onSelect(e, index) {\n this.$emit('select', e, index);\n }\n }\n};\nvar DrawerNavigationVue3 = DrawerNavigation;\nexport { DrawerNavigation, DrawerNavigationVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { DrawerNavigation } from './DrawerNavigation';\nimport { getDir, validatePackage, getDefaultSlots, templateRendering, getListeners } from '@progress/kendo-vue-common';\nimport { packageMetadata } from '../package-metadata'; // tslint:enable:max-line-length\n\nvar Drawer = {\n name: 'KendoDrawer',\n props: {\n animation: {\n type: [Object, Boolean],\n default: true\n },\n expanded: {\n type: Boolean,\n default: false\n },\n dir: {\n type: String,\n default: 'ltr'\n },\n item: [String, Object, Function],\n mode: {\n type: String,\n default: 'overlay',\n validator: function validator(value) {\n return ['overlay', 'push'].includes(value);\n }\n },\n position: {\n type: String,\n default: 'start',\n validator: function validator(value) {\n return ['start', 'end'].includes(value);\n }\n },\n items: Array,\n mini: {\n type: Boolean,\n default: false\n },\n tabIndex: Number,\n width: {\n type: Number,\n default: 240\n },\n miniWidth: {\n type: Number,\n default: 50\n }\n },\n created: function created() {\n validatePackage(packageMetadata);\n },\n data: function data() {\n var _a = this.$props,\n expanded = _a.expanded,\n mode = _a.mode,\n position = _a.position,\n animation = _a.animation,\n mini = _a.mini,\n width = _a.width,\n miniWidth = _a.miniWidth,\n items = _a.items,\n item = _a.item;\n var itemRender = item ? templateRendering.call(this, item, getListeners.call(this)) : undefined;\n return {\n currentDir: 'ltr',\n drawer: {\n expanded: expanded,\n mode: mode,\n dir: this.currentDir,\n position: position,\n animation: animation,\n mini: mini,\n width: width,\n miniWidth: miniWidth,\n items: items,\n item: itemRender\n }\n };\n },\n mounted: function mounted() {\n this.currentDir = getDir(this.$el, this.$props.dir);\n },\n updated: function updated() {\n var _a = this.$props,\n expanded = _a.expanded,\n mode = _a.mode,\n position = _a.position,\n animation = _a.animation,\n mini = _a.mini,\n width = _a.width,\n miniWidth = _a.miniWidth,\n items = _a.items,\n item = _a.item;\n var itemRender = item ? templateRendering.call(this, item, getListeners.call(this)) : undefined;\n this.drawer.expanded = expanded;\n this.drawer.mode = mode;\n this.drawer.dir = this.currentDir;\n this.drawer.position = position;\n this.drawer.animation = animation;\n this.drawer.mini = mini;\n this.drawer.width = width;\n this.drawer.miniWidth = miniWidth;\n this.drawer.items = items;\n this.drawer.item = itemRender;\n },\n provide: function provide() {\n return {\n kendoDrawer: this.drawer\n };\n },\n computed: {\n drawerClassNames: function drawerClassNames() {\n var _a = this.$props,\n expanded = _a.expanded,\n mode = _a.mode,\n mini = _a.mini;\n return {\n 'k-drawer-container': true,\n 'k-drawer-expanded': expanded,\n 'k-drawer-overlay': mode === 'overlay',\n 'k-drawer-push': mode === 'push',\n 'k-drawer-mini': mini\n };\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n var _a = this.$props,\n items = _a.items,\n tabIndex = _a.tabIndex,\n mode = _a.mode,\n expanded = _a.expanded,\n item = _a.item;\n var itemRender = item ? templateRendering.call(this, item, getListeners.call(this)) : undefined;\n return h(\"div\", {\n \"class\": this.drawerClassNames,\n dir: this.currentDir,\n attrs: this.v3 ? undefined : {\n dir: this.currentDir,\n tabIndex: tabIndex\n },\n tabIndex: tabIndex\n }, [mode === 'overlay' && expanded && h(\"div\", {\n \"class\": \"k-overlay\",\n onClick: this.onOverlayClick,\n on: this.v3 ? undefined : {\n \"click\": this.onOverlayClick\n }\n }), items && // @ts-ignore\n h(DrawerNavigation, {\n onSelect: this.handleSelect,\n on: this.v3 ? undefined : {\n \"select\": this.handleSelect\n },\n item: itemRender,\n attrs: this.v3 ? undefined : {\n item: itemRender\n }\n }), defaultSlot]);\n },\n methods: {\n focus: function focus() {\n if (this.$el) {\n this.$el.focus();\n }\n },\n handleSelect: function handleSelect(itemTarget, itemIndex) {\n if (this.$props.items) {\n this.$emit('select', {\n itemTarget: itemTarget,\n itemIndex: itemIndex,\n component: this\n });\n }\n },\n onOverlayClick: function onOverlayClick(e) {\n this.$emit('overlayclick', e);\n }\n }\n};\nvar DrawerVue3 = Drawer;\nexport { Drawer, DrawerVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getDefaultSlots } from '@progress/kendo-vue-common'; // tslint:enable:max-line-length\n\nvar DrawerContent = {\n name: 'KendoDrawerContent',\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n return h(\"div\", {\n \"class\": 'k-drawer-content'\n }, [defaultSlot]);\n }\n};\nvar DrawerContentVue3 = DrawerContent;\nexport { DrawerContent, DrawerContentVue3 };","/**\n * @hidden\n */\nexport var DEFAULT_ANIMATION_DURATION = 400;\n/**\n * @hidden\n */\nexport var NO_ANIMATION = 0;\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar inject = allVue.inject;\nimport { focusFirstFocusableChild, getDefaultSlots } from '@progress/kendo-vue-common';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { DEFAULT_ANIMATION_DURATION, NO_ANIMATION } from './contants';\nimport { messages, optionalText } from './messages'; // tslint:enable:max-line-length\n\nvar Step = {\n name: 'KendoStep',\n props: {\n current: Boolean,\n disabled: Boolean,\n icon: String,\n index: Number,\n isValid: Boolean,\n focused: Boolean,\n label: String,\n optional: Boolean,\n tabIndex: {\n type: Number,\n default: 0\n },\n text: String,\n animationDuration: [Boolean, Number],\n isVertical: Boolean,\n item: [String, Object, Boolean, Function],\n linear: Boolean,\n mode: String,\n numOfSteps: Number,\n value: Number,\n successIcon: String,\n errorIcon: String\n },\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n computed: {\n itemClassNames: function itemClassNames() {\n var _a = this.$props,\n current = _a.current,\n disabled = _a.disabled,\n focused = _a.focused,\n index = _a.index,\n isValid = _a.isValid,\n optional = _a.optional;\n return {\n 'k-step': true,\n 'k-step-first': index === 0,\n 'k-step-last': this.numOfSteps && index === this.numOfSteps - 1,\n 'k-step-done': index < this.value,\n 'k-step-current': current,\n 'k-step-optional': optional,\n 'k-step-disabled': disabled,\n 'k-step-focus': focused,\n 'k-step-error': isValid !== undefined && !isValid,\n 'k-step-success': isValid\n };\n },\n itemStyles: function itemStyles() {\n var index = this.$props.index;\n var allowClick = !this.linear || index === this.value - 1 || index === this.value || index === this.value + 1;\n return {\n maxWidth: !this.isVertical ? \"calc(100% / \" + this.numOfSteps + \")\" : undefined,\n pointerEvents: !allowClick ? 'none' : undefined\n };\n }\n },\n watch: {\n focused: function focused(newValue) {\n this.aElement = this.$refs.aElement;\n\n if (this.aElement && newValue) {\n this.aElement.focus();\n }\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlots = getDefaultSlots(this);\n var _a = this.$props,\n current = _a.current,\n disabled = _a.disabled,\n focused = _a.focused,\n icon = _a.icon,\n index = _a.index,\n isValid = _a.isValid,\n label = _a.label,\n optional = _a.optional,\n tabIndex = _a.tabIndex,\n text = _a.text,\n animationDuration = _a.animationDuration,\n item = _a.item,\n linear = _a.linear,\n mode = _a.mode,\n value = _a.value,\n successIcon = _a.successIcon,\n errorIcon = _a.errorIcon;\n var allowClick = !linear || index === value - 1 || index === value || index === value + 1;\n var isInLabel = mode === 'labels' || Boolean(icon) && Boolean(label);\n var localizationService = provideLocalizationService(this);\n\n var localizeMessage = function localizeMessage(message) {\n return localizationService.toLanguageString(message, messages[message]);\n };\n\n var optionalMessage = localizeMessage(optionalText);\n var progressAnimation = typeof animationDuration === 'number' ? animationDuration : animationDuration !== false ? DEFAULT_ANIMATION_DURATION : NO_ANIMATION;\n var validationIconClasses = isValid ? successIcon ? \"\" + successIcon : 'k-icon k-i-check' : errorIcon ? \"\" + errorIcon : 'k-icon k-i-warning';\n var validationIcons = h(\"span\", {\n \"class\": 'k-step-indicator-icon ' + validationIconClasses,\n \"aria-hidden\": \"true\",\n attrs: this.v3 ? undefined : {\n \"aria-hidden\": \"true\"\n }\n });\n\n var stepIndicator = function stepIndicator() {\n return mode !== 'labels' ? h(\"span\", {\n \"class\": \"k-step-indicator\",\n \"aria-hidden\": true,\n attrs: this.v3 ? undefined : {\n \"aria-hidden\": true\n },\n style: {\n transitionDuration: progressAnimation + 'ms'\n }\n }, [icon ? !isInLabel && isValid !== undefined ? validationIcons : h(\"span\", {\n \"class\": \"k-step-indicator-icon k-icon \" + icon\n }) : isValid !== undefined ? validationIcons : h(\"span\", {\n \"class\": \"k-step-indicator-text\"\n }, [text ? text : index + 1])]) : null;\n };\n\n var stepLabel = function stepLabel() {\n return h(\"span\", {\n \"class\": \"k-step-label\"\n }, [label && h(\"span\", {\n \"class\": \"k-step-text\"\n }, [label]), isInLabel && isValid !== undefined && validationIcons, optional && h(\"span\", {\n \"class\": \"k-step-label-optional\"\n }, [optionalMessage])]);\n };\n\n return h(\"li\", {\n \"class\": this.itemClassNames,\n style: this.itemStyles\n }, [h(\"a\", {\n ref: \"aElement\",\n \"class\": \"k-step-link\",\n title: label ? label : undefined,\n attrs: this.v3 ? undefined : {\n title: label ? label : undefined,\n tabIndex: focused ? tabIndex : -1,\n \"aria-current\": current ? 'step' : undefined,\n \"aria-disabled\": disabled || !allowClick || undefined,\n \"aria-invalid\": isValid !== undefined && !isValid || undefined\n },\n onClick: this.handleClick,\n on: this.v3 ? undefined : {\n \"click\": this.handleClick,\n \"focusin\": this.handleFocus\n },\n onFocusin: this.handleFocus,\n tabIndex: focused ? tabIndex : -1,\n \"aria-current\": current ? 'step' : undefined,\n \"aria-disabled\": disabled || !allowClick || undefined,\n \"aria-invalid\": isValid !== undefined && !isValid || undefined\n }, [!item ? [stepIndicator.call(this), stepLabel.call(this)] : defaultSlots])]);\n },\n methods: {\n focus: function focus() {\n if (this.$el) {\n focusFirstFocusableChild(this.$el);\n }\n },\n handleClick: function handleClick(event) {\n if (!this.disabled) {\n this.$emit('change', {\n event: event,\n value: this.index,\n component: this\n });\n }\n },\n handleFocus: function handleFocus(event) {\n if (!this.disabled) {\n this.$emit('focus', event);\n }\n }\n }\n};\nvar StepVue3 = Step;\nexport { Step, StepVue3 };","/**\n * @hidden\n */\nexport var classNames = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return args\n .filter(function (arg) { return arg !== true && !!arg; })\n .map(function (arg) {\n return Array.isArray(arg)\n ? classNames.apply(void 0, arg) : typeof arg === 'object'\n ? Object\n .keys(arg)\n .map(function (key, idx) { return arg[idx] || (arg[key] && key) || null; })\n .filter(function (el) { return el !== null; })\n .join(' ')\n : arg;\n })\n .filter(function (arg) { return !!arg; })\n .join(' ');\n};\n","/**\n * @hidden\n */\nvar canUseDOM = Boolean(\n// from fbjs\ntypeof window !== 'undefined' &&\n window.document &&\n window.document.createElement);\nexport { canUseDOM };\n","/**\n * @hidden\n */\nexport function getDefaultSlots(component) {\n var defaultSlots = component.$slots.default;\n return (component.v3 && defaultSlots && typeof defaultSlots === 'function') ? defaultSlots() : defaultSlots;\n}\n","import { FIELD_REGEX } from './constants';\nvar getterCache = {};\ngetterCache.undefined = function () { return undefined; };\n/**\n * @hidden\n */\nexport function getter(field) {\n if (getterCache[field]) {\n return getterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n getterCache[field] = function (obj) {\n var result = obj;\n for (var idx = 0; idx < fields.length && result; idx++) {\n result = result[fields[idx]];\n }\n return result;\n };\n return getterCache[field];\n}\n","import { FIELD_REGEX } from './constants';\nvar setterCache = {};\nsetterCache.undefined = function (obj) { return obj; };\n/**\n * @hidden\n */\nexport function setter(field) {\n if (setterCache[field]) {\n return setterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n setterCache[field] = function (obj, value) {\n var root = obj;\n var depth = fields.length - 1;\n for (var idx = 0; idx < depth && root; idx++) {\n root = root[fields[idx]] = root[fields[idx]] || {};\n }\n root[fields[depth]] = value;\n };\n return setterCache[field];\n}\n","/**\n * @hidden\n */\nexport function hasListener(eventName) {\n if (this.v3) {\n return Object.keys(this.$attrs).map(function (name) { return name.toLowerCase(); })\n .some(function (event) { return event.endsWith(eventName.toLowerCase()); });\n }\n else {\n return this.$listeners[eventName];\n }\n}\n/**\n * @hidden\n */\nexport function getListeners() {\n if (this.v3) {\n var listeners = {};\n for (var key in (this.$attrs)) {\n if (key.startsWith('on')) {\n listeners[key] = this.$attrs[key];\n }\n }\n return listeners;\n }\n else {\n return this.$listeners;\n }\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\n/**\n * @hidden\n */\nexport function templateRendering(template, listeners) {\n if (!template) {\n return undefined;\n }\n var scopedSlot = gh ?\n this.$slots[template] ||\n (template.toLowerCase ? this.$slots[template.toLowerCase()]\n : null) :\n this.$scopedSlots[template] ||\n (template.toLowerCase ? this.$scopedSlots[template.toLowerCase()]\n : null);\n // @ts-ignore\n if (typeof template === 'string' && scopedSlot) {\n // @ts-ignore\n return { type: 'slot', render: scopedSlot, listeners: listeners };\n }\n if (typeof template === 'string' || typeof template === 'object' ||\n (typeof template === 'function' && template.component)) {\n return { type: 'component', render: template, listeners: listeners };\n }\n return { type: 'renderFunction', render: template, listeners: listeners };\n}\n/**\n * @hidden\n */\nexport function getTemplate(_a) {\n var h = _a.h, template = _a.template, defaultRendering = _a.defaultRendering, defaultSlots = _a.defaultSlots, additionalProps = _a.additionalProps, additionalListeners = _a.additionalListeners, swapDefaultSlots = _a.swapDefaultSlots;\n if (!template) {\n return defaultRendering;\n }\n var events;\n var props;\n var componentOptions;\n if (gh) {\n var passedProps = defaultRendering ? defaultRendering.props : {};\n events = __assign(__assign({}, transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, passedProps), additionalProps), events);\n componentOptions = __assign(__assign({}, props), events);\n }\n else {\n var hasComponentOptions = defaultRendering && defaultRendering.componentOptions;\n var defaultListeners = hasComponentOptions ?\n defaultRendering.componentOptions.listeners : {};\n var defaultProps = hasComponentOptions ?\n defaultRendering.componentOptions.propsData : {};\n events = __assign(__assign(__assign(__assign({}, defaultListeners), additionalListeners), transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, defaultProps), additionalProps), events);\n componentOptions = { props: props, on: events };\n }\n if (template.type === 'slot') {\n var slotTemplate = template.render({ props: props, listeners: events, methods: events,\n defaultSlots: defaultSlots });\n return slotTemplate ? slotTemplate[0] : undefined;\n }\n else if (template.type === 'renderFunction') {\n if (swapDefaultSlots) {\n return template.render(h, defaultRendering, defaultSlots, props, events);\n }\n return template.render(h, defaultRendering, props, events, defaultSlots);\n }\n else {\n return h(template.render, componentOptions, gh ? function () { return [defaultSlots]; } : [defaultSlots]);\n }\n}\n/**\n * @hidden\n */\nexport function transformListeners(listeners) {\n if (!listeners) {\n return listeners;\n }\n var newListeners = {};\n var listenersKeys = Object.keys(listeners);\n for (var i = 0; i < listenersKeys.length; i++) {\n var currentKey = listenersKeys[i];\n newListeners['on' + currentKey.charAt(0).toUpperCase() + currentKey.slice(1)] =\n listeners[currentKey];\n }\n return newListeners;\n}\n","/**\n * @hidden\n */\nvar DISABLED_TABINDEX = -1;\n/**\n * @hidden\n */\nvar DEFAULT_TABINDEX = 0;\n/**\n * @hidden\n */\nexport var getTabIndex = function (tabIndex, disabled, useDefaultTabIndexWhenDisabled) {\n var parsedTabIndex = typeof tabIndex === 'string' ? parseInt(tabIndex, undefined) : tabIndex;\n if (parsedTabIndex === NaN) {\n return undefined;\n }\n return parsedTabIndex !== undefined\n ? parsedTabIndex\n : disabled ?\n (useDefaultTabIndexWhenDisabled ? undefined : DISABLED_TABINDEX)\n : DEFAULT_TABINDEX;\n};\n","import { canUseDOM } from './canUseDOM';\n/**\n * @hidden\n */\nexport function isRtl(element) {\n return Boolean(canUseDOM && element && getComputedStyle(element).direction === 'rtl');\n}\n/**\n * @hidden\n */\nexport function getDir(element, initialDir) {\n if (!initialDir && canUseDOM && element) {\n // Note: getComputedStyle forces reflow\n var rtlCandidate = window.getComputedStyle(element).direction;\n if (rtlCandidate) {\n // rerender is needed as DOM is read after first render\n return rtlCandidate;\n }\n }\n return initialDir;\n}\n","import * as licensing from '@progress/kendo-licensing';\n/**\n * @hidden\n */\nexport function validatePackage(packageMetadata) {\n if (typeof licensing !== 'undefined') {\n licensing.validatePackage(packageMetadata);\n }\n else {\n var message = \"License activation failed for \" + packageMetadata.name + \"\\n\";\n message += 'The @progress/kendo-licensing script is not loaded.\\n';\n message += \"See \" + packageMetadata.licensingDocsUrl + \" for more information.\\n\";\n console.warn(message);\n }\n}\n","/**\n * @hidden\n */\nexport var MIN_RATIO = 0.00001;\n/**\n * @hidden\n */\nexport var LABEL_DECIMALS = 3;\n/**\n * @hidden\n */\nexport var DEFAULT_ANIMATION_DURATION = 400;\n/**\n * @hidden\n */\nexport var NO_ANIMATION = 0;\n","import { LABEL_DECIMALS, MIN_RATIO } from './constants';\n/**\n * @hidden\n */\nexport var truncateNumber = function (value) {\n var numberParts = value.toString().split('.');\n return numberParts.length === 1 ? \"\" + numberParts[0] : numberParts[0] + \".\" + numberParts[1].substr(0, LABEL_DECIMALS);\n};\n/**\n * @hidden\n */\nexport var calculatePercentage = function (min, max, value) {\n var onePercent = Math.abs((max - min) / 100);\n return Math.abs((value - min) / onePercent);\n};\n/**\n * @hidden\n */\nexport var updateProgress = function (progressRef, progressWrapRef, percentage, isVertical) {\n var progressPercentage = Math.max(percentage, 0.01);\n var progressWrapPercentage = (100 / progressPercentage) * 100;\n if (progressRef && progressWrapRef) {\n progressRef.style.width = !isVertical ? progressPercentage + \"%\" : '100%';\n progressWrapRef.style.width = !isVertical ? progressWrapPercentage + \"%\" : '100%';\n progressRef.style.height = isVertical ? progressPercentage + \"%\" : '100%';\n progressWrapRef.style.height = isVertical ? progressWrapPercentage + \"%\" : '100%';\n }\n};\n/**\n * @hidden\n */\nexport var calculateRatio = function (min, max, value) {\n return Math.max((value - min) / (max - min), MIN_RATIO);\n};\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-vue-progressbars',\n productName: 'Kendo UI for Vue',\n productCodes: ['KENDOUIVUE', 'KENDOUICOMPLETE'],\n publishDate: 1641561239,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning'\n};\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { animate, cancelAnimation } from '@progress/kendo-vue-animation';\nimport { classNames, isRtl, getTabIndex, templateRendering, getListeners, getTemplate } from '@progress/kendo-vue-common';\nimport { calculatePercentage, updateProgress, truncateNumber } from '../common/utils';\nimport { DEFAULT_ANIMATION_DURATION, NO_ANIMATION } from '../common/constants';\nimport { validatePackage } from '@progress/kendo-vue-common';\nimport { packageMetadata } from '../package-metadata'; // tslint:enable:max-line-length\n\nvar ProgressBar = {\n name: 'KendoProgressBar',\n props: {\n animation: {\n type: [Boolean, Object],\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n reverse: {\n type: Boolean,\n default: false\n },\n label: String,\n labelRender: [String, Object, Function],\n labelVisible: {\n type: Boolean,\n default: true\n },\n labelPlacement: {\n type: String,\n default: undefined,\n validator: function validator(value) {\n return ['start', 'center', 'end'].includes(value);\n }\n },\n dir: {\n type: String,\n default: undefined\n },\n max: {\n type: Number,\n default: 100\n },\n min: {\n type: Number,\n default: 0\n },\n value: {\n type: Number,\n default: 0\n },\n orientation: {\n type: String,\n default: 'horizontal',\n validator: function validator(value) {\n return ['horizontal', 'vertical'].includes(value);\n }\n },\n tabIndex: Number,\n emptyStyle: Object,\n emptyClassName: String,\n progressStyle: Object,\n progressClassName: String\n },\n created: function created() {\n validatePackage(packageMetadata);\n this.currentDir = this.$props.dir;\n },\n mounted: function mounted() {\n this._progressStatus = this.v3 ? this.progressStatusRef : this.$refs.progressStatus;\n this._progressStatusWrap = this.v3 ? this.progressStatusWrapRef : this.$refs.progressStatusWrap;\n this.currentDir = this.$props.dir !== undefined ? this.$props.dir : isRtl(this.$el) ? 'rtl' : 'ltr';\n this.animationFrame = animate({\n duration: this.animationDuration,\n onStart: this.handleStart,\n onUpdate: this.handleUpdate,\n onEnd: this.handleEnd\n });\n },\n destroyed: !!gh ? undefined : function () {\n cancelAnimation(this.animationFrame);\n },\n // @ts-ignore\n unmounted: function unmounted() {\n cancelAnimation(this.animationFrame);\n },\n data: function data() {\n return {\n currentDir: undefined\n };\n },\n watch: {\n value: function value(_newValue, oldValue) {\n this.prevValue = oldValue;\n this.animationFrame = animate({\n duration: this.animationDuration,\n onStart: this.handleStart,\n onUpdate: this.handleUpdate,\n onEnd: this.handleEnd\n });\n }\n },\n computed: {\n wrapperClass: function wrapperClass() {\n var _a = this.$props,\n disabled = _a.disabled,\n reverse = _a.reverse,\n orientation = _a.orientation,\n value = _a.value;\n var isVertical = orientation === 'vertical';\n var indeterminateProp = value === null;\n return {\n 'k-widget k-progressbar': true,\n 'k-progressbar-horizontal': !isVertical,\n 'k-progressbar-vertical': isVertical,\n 'k-progressbar-reverse': reverse,\n 'k-progressbar-indeterminate': indeterminateProp,\n 'k-state-disabled': disabled\n };\n },\n isVertical: function isVertical() {\n return this.orientation === 'vertical';\n },\n animationDuration: function animationDuration() {\n var animation = this.$props.animation;\n return typeof animation !== 'boolean' && animation !== undefined ? animation.duration : animation ? DEFAULT_ANIMATION_DURATION : NO_ANIMATION;\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var _a = this.$props,\n disabled = _a.disabled,\n labelVisible = _a.labelVisible,\n labelPlacement = _a.labelPlacement,\n max = _a.max,\n min = _a.min,\n tabIndex = _a.tabIndex,\n emptyStyle = _a.emptyStyle,\n emptyClassName = _a.emptyClassName,\n progressStyle = _a.progressStyle,\n progressClassName = _a.progressClassName;\n var value = this.$props.value || 0;\n var indeterminateProp = this.$props.value === null;\n var formattedLabel = truncateNumber(value);\n var labelProps = {\n value: value\n };\n var label = this.$props.labelRender ? templateRendering.call(this, this.$props.labelRender, getListeners.call(this)) : undefined;\n var labelDefaultRendering = h('span', {\n 'class': 'k-progress-status'\n }, formattedLabel);\n var toggleButtonRendering = getTemplate.call(this, {\n h: h,\n template: label,\n defaultRendering: labelDefaultRendering,\n additionalProps: labelProps\n });\n var renderLabel = labelVisible ? this.$props.label ? h(\"span\", {\n \"class\": 'k-progress-status'\n }, [this.$props.label]) : toggleButtonRendering : undefined;\n var positionClasses = classNames('k-progress-status-wrap', {\n 'k-progress-start': labelPlacement === 'start',\n 'k-progress-center': labelPlacement === 'center',\n 'k-progress-end': labelPlacement === 'end' || labelPlacement === undefined\n });\n return h(\"div\", {\n \"class\": this.wrapperClass,\n dir: this.currentDir,\n attrs: this.v3 ? undefined : {\n dir: this.currentDir,\n tabindex: getTabIndex(tabIndex, disabled),\n role: 'progressbar',\n \"aria-valuemin\": min,\n \"aria-valuemax\": max,\n \"aria-valuenow\": indeterminateProp ? undefined : value,\n \"aria-disabled\": disabled\n },\n tabindex: getTabIndex(tabIndex, disabled),\n role: 'progressbar',\n \"aria-valuemin\": min,\n \"aria-valuemax\": max,\n \"aria-valuenow\": indeterminateProp ? undefined : value,\n \"aria-disabled\": disabled\n }, [h(\"span\", {\n \"class\": positionClasses + (emptyClassName ? ' ' + emptyClassName : ''),\n style: emptyStyle\n }, [renderLabel]), h(\"div\", {\n \"class\": 'k-state-selected',\n style: progressStyle,\n ref: this.v3 ? function (el) {\n _this.progressStatusRef = el;\n } : 'progressStatus'\n }, [h(\"span\", {\n \"class\": positionClasses + (progressClassName ? ' ' + progressClassName : ''),\n ref: this.v3 ? function (el) {\n _this.progressStatusWrapRef = el;\n } : 'progressStatusWrap'\n }, [renderLabel])])]);\n },\n methods: {\n focus: function focus() {\n if (this.$el) {\n this.$el.focus();\n }\n },\n progressStatusElement: function progressStatusElement() {\n return this._progressStatus;\n },\n progressStatusWrapElement: function progressStatusWrapElement() {\n return this._progressStatusWrap;\n },\n handleStart: function handleStart() {\n var percentage = calculatePercentage(this.min, this.max, this.prevValue);\n updateProgress(this._progressStatus, this._progressStatusWrap, percentage, this.isVertical);\n },\n handleUpdate: function handleUpdate(progress) {\n var percentage = calculatePercentage(this.min, this.max, this.prevValue + (this.value - this.prevValue) * progress);\n updateProgress(this._progressStatus, this._progressStatusWrap, percentage, this.isVertical);\n },\n handleEnd: function handleEnd() {\n var percentage = calculatePercentage(this.min, this.max, this.value);\n updateProgress(this._progressStatus, this._progressStatusWrap, percentage, this.isVertical);\n }\n }\n};\nvar ProgressBarVue3 = ProgressBar;\nexport { ProgressBar, ProgressBarVue3 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { focusFirstFocusableChild, Keys, getDefaultSlots } from '@progress/kendo-vue-common';\nimport { Step } from './Step';\nimport { ProgressBar } from '@progress/kendo-vue-progressbars';\nimport { DEFAULT_ANIMATION_DURATION, NO_ANIMATION } from './contants';\nimport { validatePackage, isRtl, templateRendering, getListeners, getTemplate } from '@progress/kendo-vue-common';\nimport { packageMetadata } from '../package-metadata'; // tslint:enable:max-line-length\n\nvar Stepper = {\n name: 'KendoStepper',\n model: {\n event: 'changemodel'\n },\n props: {\n animationDuration: {\n type: [Boolean, Number],\n default: 400\n },\n dir: String,\n disabled: Boolean,\n item: {\n type: [String, Object, Function, Boolean],\n default: undefined\n },\n items: Array,\n linear: Boolean,\n mode: {\n type: String,\n default: 'steps',\n validator: function validator(value) {\n return ['steps', 'labels'].includes(value);\n }\n },\n orientation: {\n type: String,\n default: 'horizontal',\n validator: function validator(value) {\n return ['horizontal', 'vertical'].includes(value);\n }\n },\n value: {\n type: Number,\n default: 0\n },\n modelValue: Number,\n successIcon: String,\n errorIcon: String\n },\n created: function created() {\n validatePackage(packageMetadata);\n this.focusedIdx = this.computedValue !== undefined ? this.computedValue : 0;\n },\n mounted: function mounted() {\n this.currentDir = this.$props.dir !== undefined ? this.$props.dir : isRtl(this.$el) ? 'rtl' : 'ltr';\n },\n data: function data() {\n return {\n currentDir: 'ltr',\n focusedIdx: 0,\n stepper: {}\n };\n },\n watch: {\n value: function value(newValue) {\n this.focusedIdx = newValue;\n }\n },\n computed: {\n computedValue: function computedValue() {\n return this.$props.modelValue !== undefined ? this.$props.modelValue : this.$props.value;\n },\n isVertical: function isVertical() {\n return this.$props.orientation === 'vertical';\n },\n numOfSteps: function numOfSteps() {\n var items = this.$props.items;\n return items ? items.length : 0;\n },\n stepperClasses: function stepperClasses() {\n return {\n 'k-stepper': true,\n 'k-stepper-linear': this.$props.linear\n };\n },\n stepperStyles: function stepperStyles() {\n return {\n display: 'grid',\n gridTemplateColumns: !this.isVertical ? 'repeat(' + this.numOfSteps * 2 + ', 1fr)' : undefined,\n gridTemplateRows: this.isVertical ? 'repeat(' + this.numOfSteps * 4 + ', 1fr)' : undefined\n };\n },\n listClasses: function listClasses() {\n return {\n 'k-step-list': true,\n 'k-step-list-horizontal': !this.isVertical,\n 'k-step-list-vertical': this.isVertical\n };\n },\n listStyles: function listStyles() {\n return {\n gridColumnStart: !this.isVertical ? 1 : '',\n gridColumnEnd: !this.isVertical ? -1 : '',\n gridRowStart: this.isVertical ? 1 : '',\n gridRowEnd: this.isVertical ? -1 : ''\n };\n },\n progressbarStyles: function progressbarStyles() {\n return {\n gridColumnStart: !this.isVertical ? 2 : '',\n gridColumnEnd: !this.isVertical ? this.numOfSteps * 2 : '',\n gridRowStart: this.isVertical ? 2 : '',\n gridRowEnd: this.isVertical ? this.numOfSteps * 4 - 2 : ''\n };\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n var _a = this.$props,\n animationDuration = _a.animationDuration,\n disabled = _a.disabled,\n items = _a.items,\n orientation = _a.orientation;\n var value = this.computedValue;\n var animation = typeof animationDuration === 'number' ? animationDuration : animationDuration !== false ? DEFAULT_ANIMATION_DURATION : NO_ANIMATION;\n var steps = items && items.map(function (element, index) {\n var step = this.$props.item ? templateRendering.call(this, this.$props.item, getListeners.call(this)) : undefined;\n var stepDefaultRendering = // @ts-ignore\n h(Step, {\n key: index,\n index: index,\n attrs: this.v3 ? undefined : {\n index: index,\n disabled: disabled || element.disabled,\n focused: index === this.focusedIdx,\n current: index === value,\n icon: element.icon,\n label: element.label,\n optional: element.optional,\n text: element.text,\n isValid: element.isValid,\n tabIndex: element.tabIndex,\n animationDuration: this.animationDuration,\n isVertical: this.isVertical,\n item: this.item,\n linear: this.linear,\n mode: this.mode,\n numOfSteps: this.numOfSteps,\n value: value,\n successIcon: this.successIcon,\n errorIcon: this.errorIcon\n },\n disabled: disabled || element.disabled,\n focused: index === this.focusedIdx,\n current: index === value,\n onChange: this.handleChange,\n on: this.v3 ? undefined : {\n \"change\": this.handleChange,\n \"focus\": this.handleFocus\n },\n onFocus: this.handleFocus,\n \"class\": element.class,\n style: element.style,\n icon: element.icon,\n label: element.label,\n optional: element.optional,\n text: element.text,\n isValid: element.isValid,\n tabIndex: element.tabIndex,\n animationDuration: this.animationDuration,\n isVertical: this.isVertical,\n item: this.item,\n linear: this.linear,\n mode: this.mode,\n numOfSteps: this.numOfSteps,\n value: value,\n successIcon: this.successIcon,\n errorIcon: this.errorIcon\n });\n var stepRendering = getTemplate.call(this, {\n h: h,\n template: step,\n defaultRendering: stepDefaultRendering,\n additionalProps: __assign(__assign({}, element), {\n disabled: disabled || element.disabled,\n focused: index === this.focusedIdx,\n current: index === value,\n value: value\n }),\n additionalListeners: {\n change: this.handleChange,\n focus: this.handleFocus\n }\n });\n return stepRendering;\n }, this);\n return h(\"nav\", {\n \"class\": this.stepperClasses,\n style: this.stepperStyles,\n dir: this.currentDir,\n attrs: this.v3 ? undefined : {\n dir: this.currentDir\n },\n onKeydown: this.handleKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.handleKeyDown\n }\n }, [h(\"ol\", {\n \"class\": this.listClasses,\n style: this.listStyles\n }, [steps ? steps : defaultSlot]), // @ts-ignore\n h(ProgressBar, {\n style: this.progressbarStyles,\n animation: {\n duration: animation\n },\n attrs: this.v3 ? undefined : {\n animation: {\n duration: animation\n },\n \"aria-hidden\": true,\n max: this.numOfSteps - 1,\n labelVisible: false,\n orientation: orientation,\n reverse: orientation === 'vertical',\n value: value,\n disabled: disabled,\n tabIndex: -1\n },\n \"aria-hidden\": true,\n max: this.numOfSteps - 1,\n labelVisible: false,\n orientation: orientation,\n reverse: orientation === 'vertical',\n value: value,\n disabled: disabled,\n tabIndex: -1\n })]);\n },\n methods: {\n focus: function focus() {\n if (this.$el) {\n focusFirstFocusableChild(this.$el);\n }\n },\n dispatchChangeEvent: function dispatchChangeEvent(event, val) {\n var prevIdx = val === this.computedValue - 1;\n var currIdx = val === this.computedValue;\n var nextIdx = val === this.computedValue + 1;\n var allowClick = !this.linear || prevIdx || currIdx || nextIdx;\n\n if (this.computedValue !== val && !this.disabled && allowClick) {\n this.focusedIdx = val;\n this.$emit('change', {\n component: this,\n event: event,\n value: val\n });\n this.$emit('changemodel', val);\n this.$emit('update:modelValue', val);\n }\n },\n handleChange: function handleChange(event) {\n var currentValue = event.value;\n this.dispatchChangeEvent(event, currentValue);\n },\n handleFocus: function handleFocus(event) {\n if (!this.disabled) {\n this.$emit('focus', event, undefined);\n }\n },\n handleEnter: function handleEnter(event) {\n var newEvent = {\n component: this,\n event: event,\n value: this.focusedIdx\n };\n this.dispatchChangeEvent(newEvent, this.focusedIdx);\n },\n handleKeyDown: function handleKeyDown(event) {\n var isCurrentRtl = this.currentDir === 'rtl';\n var currIndex = this.focusedIdx;\n var maxNavIndex = this.items.length - 1;\n\n switch (event.keyCode) {\n case Keys.left:\n event.preventDefault();\n\n if (!isCurrentRtl && currIndex > 0) {\n this.focusedIdx = currIndex - 1;\n }\n\n if (isCurrentRtl && currIndex < maxNavIndex) {\n this.focusedIdx = currIndex + 1;\n }\n\n break;\n\n case Keys.right:\n event.preventDefault();\n\n if (!isCurrentRtl && currIndex < maxNavIndex) {\n this.focusedIdx = currIndex + 1;\n }\n\n if (isCurrentRtl && currIndex > 0) {\n this.focusedIdx = currIndex - 1;\n }\n\n break;\n\n case Keys.up:\n event.preventDefault();\n\n if (!isCurrentRtl && currIndex > 0) {\n this.focusedIdx = currIndex - 1;\n }\n\n if (isCurrentRtl && currIndex > 0) {\n this.focusedIdx = currIndex - 1;\n }\n\n break;\n\n case Keys.down:\n event.preventDefault();\n\n if (!isCurrentRtl && currIndex < maxNavIndex) {\n this.focusedIdx = currIndex + 1;\n }\n\n if (isCurrentRtl && currIndex < maxNavIndex) {\n this.focusedIdx = currIndex + 1;\n }\n\n break;\n\n case Keys.home:\n event.preventDefault();\n this.focusedIdx = 0;\n break;\n\n case Keys.end:\n event.preventDefault();\n this.focusedIdx = maxNavIndex;\n break;\n\n case Keys.space:\n case Keys.enter:\n event.preventDefault();\n\n if (!this.items[currIndex].disabled) {\n this.handleEnter(event);\n }\n\n break;\n\n default:\n }\n }\n }\n};\nvar StepperVue3 = Stepper;\nexport { Stepper, StepperVue3 };","/**\n * @hidden\n */\nexport var EMPTY_ID = '';\n/**\n * @hidden\n */\nexport var ZERO_LEVEL_ZERO_ITEM_ID = '0';\n/**\n * @hidden\n */\nexport var SEPARATOR = '_';\n/**\n * @hidden\n */\nexport function getItemById(itemId, items) {\n if (isIdZeroLevel(itemId)) {\n return items[Number(itemId)];\n }\n else {\n var rootParentItem = items[Number(getRootParentId(itemId))];\n return rootParentItem.items ?\n getItemById(getIdWithoutRootParentId(itemId), rootParentItem.items) : undefined;\n }\n}\n/**\n * @hidden\n */\nexport function getRootParentId(itemId) {\n return isIdEmptyOrZeroLevel(itemId) ? itemId : itemId.split(SEPARATOR)[0];\n}\n/**\n * @hidden\n */\nexport function getIdWithoutRootParentId(itemId) {\n if (isIdEmptyOrZeroLevel(itemId)) {\n return itemId;\n }\n else {\n var firstSeparatorIndex = itemId.indexOf(SEPARATOR);\n return itemId.substring(firstSeparatorIndex + 1);\n }\n}\n/**\n * @hidden\n */\nexport function getFirstChildId(itemId) {\n return createId('0', itemId);\n}\n/**\n * @hidden\n */\nexport function shouldOpenItem(itemId, lastItemIdToBeOpened) {\n if (lastItemIdToBeOpened.indexOf(itemId) === 0) {\n return lastItemIdToBeOpened.length === itemId.length ||\n lastItemIdToBeOpened.charAt(itemId.length) === SEPARATOR;\n }\n else {\n return false;\n }\n}\n/**\n * @hidden\n */\nexport function createId(childId, parentId) {\n return parentId ? parentId + SEPARATOR + childId : childId;\n}\n/**\n * @hidden\n */\nexport function getDirectParentId(itemId) {\n var lastSeparatorIndex = itemId.lastIndexOf(SEPARATOR);\n return lastSeparatorIndex < 0 ? EMPTY_ID : itemId.substring(0, lastSeparatorIndex);\n}\n/**\n * @hidden\n */\nexport function isIdEmptyOrZeroLevel(itemId) {\n return itemId === EMPTY_ID || itemId.indexOf(SEPARATOR) < 0;\n}\n/**\n * @hidden\n */\nexport function isIdZeroLevel(itemId) {\n return itemId !== EMPTY_ID && itemId.indexOf(SEPARATOR) < 0;\n}\n/**\n * @hidden\n */\nexport function isIdFirstLevel(itemId) {\n return getSeparatorOccurances(itemId) === 1;\n}\n/**\n * @hidden\n */\nexport function isFirstItemFromSiblings(itemId) {\n return getShortId(itemId) === ZERO_LEVEL_ZERO_ITEM_ID;\n}\n/**\n * @hidden\n */\nexport function getShortId(itemId) {\n var lastSeparatorIndex = itemId.lastIndexOf(SEPARATOR);\n return lastSeparatorIndex < 0 ? itemId : itemId.substring(lastSeparatorIndex + 1);\n}\n/**\n * @hidden\n */\nexport function getDirectSiblingIdForLevelZero(next, shortItemId, siblingsCount) {\n if (!isIdZeroLevel(shortItemId)) {\n return shortItemId;\n }\n return next ?\n Number(shortItemId) < siblingsCount - 1 ? (Number(shortItemId) + 1).toString() : '0' :\n Number(shortItemId) > 0 ? (Number(shortItemId) - 1).toString() : (siblingsCount - 1).toString();\n}\nfunction getSeparatorOccurances(itemId) {\n return itemId.split(SEPARATOR).length - 1;\n}\n","import { templateRendering, getListeners } from '@progress/kendo-vue-common';\nimport { createId, ZERO_LEVEL_ZERO_ITEM_ID } from './itemsIdsUtils';\n/**\n * @hidden\n */\nexport function prepareInputItemsForInternalWork(models) {\n if (models && models.length > 0) {\n return {\n items: convertInputModelsToInternalOnesHelper.call(this, models),\n inputItems: models\n };\n }\n else {\n return { items: [], inputItems: [] };\n }\n}\nfunction copyInputItemWithoutChildren(inputModel) {\n var result = {};\n var text = inputModel.text, url = inputModel.url, icon = inputModel.icon, disabled = inputModel.disabled, cssClass = inputModel.cssClass, cssStyle = inputModel.cssStyle, render = inputModel.render, linkRender = inputModel.linkRender, contentRender = inputModel.contentRender, data = inputModel.data;\n if (text !== undefined) {\n result.text = text;\n }\n if (url !== undefined) {\n result.url = url;\n }\n if (icon !== undefined) {\n result.icon = icon;\n }\n if (disabled !== undefined) {\n result.disabled = disabled;\n }\n if (cssClass !== undefined) {\n result.cssClass = cssClass;\n }\n if (cssStyle !== undefined) {\n result.cssStyle = cssStyle;\n }\n if (render !== undefined) {\n result.render = templateRendering.call(this, render, getListeners.call(this));\n }\n if (linkRender !== undefined) {\n result.linkRender = templateRendering.call(this, linkRender, getListeners.call(this));\n }\n if (contentRender !== undefined) {\n result.contentRender = templateRendering.call(this, contentRender, getListeners.call(this));\n }\n if (data !== undefined) {\n result.data = data;\n }\n return result;\n}\nfunction convertInputModelsToInternalOnesHelper(inputModels, parentId) {\n var result = [];\n for (var index = 0; index < inputModels.length; index++) {\n var inputModel = inputModels[index];\n var internalModel = copyInputItemWithoutChildren.call(this, inputModel);\n internalModel.id = createId(index.toString(), parentId);\n internalModel.isLastFromSiblings = index === inputModels.length - 1;\n internalModel.items = copyOrCreateModelChildren.call(this, inputModel, internalModel);\n result.push(internalModel);\n }\n return result;\n}\nfunction copyOrCreateModelChildren(inputModel, internalModel) {\n if (inputModel.contentRender) {\n return [{\n contentParentItemId: internalModel.id,\n id: createId(ZERO_LEVEL_ZERO_ITEM_ID, internalModel.id),\n isLastFromSiblings: true,\n contentRender: templateRendering.call(this, inputModel.contentRender, getListeners.call(this)),\n items: []\n }];\n }\n else if (inputModel.items) {\n return convertInputModelsToInternalOnesHelper.call(this, inputModel.items, internalModel.id);\n }\n else {\n return [];\n }\n}\n","import { Keys } from '@progress/kendo-vue-common';\nimport { getFirstChildId, isIdZeroLevel, getRootParentId, isIdFirstLevel, getDirectParentId, getShortId, createId, getDirectSiblingIdForLevelZero, getItemById as getItemByIdUtil } from './itemsIdsUtils';\nvar NO_WHITESPACE_REGEX = /\\S/;\n/**\n * @hidden\n * Returns the `itemId` (string) for applicable key codes even when the id has not changed.\n * For key codes that are not applicable, returns `undefined`.\n */\nexport function getNewItemIdUponKeyboardNavigation(sourceItems, sourceItemId, keyCode, key, isMenuVertical, isDirectionRightToLeft) {\n var sourceItem = getItemById();\n switch (keyCode) {\n case Keys.left:\n return getIdUponLeftKey();\n case Keys.right:\n return getIdUponRightKey();\n case Keys.up:\n return getIdUponUpKey();\n case Keys.down:\n return getIdUponDownKey();\n case Keys.enter:\n case Keys.space:\n return getIdUponEnterAndSpaceKeys();\n case Keys.home:\n return getIdUponHomeKey();\n case Keys.end:\n return getIdUponEndKey();\n case Keys.esc:\n return getIdUponEscKey();\n default:\n return isSearchableKey() ? getIdUponSearchByChar() : sourceItemId;\n }\n function getIdUponLeftKey() {\n if (isMenuVertical) {\n return isDirectionRightToLeft ? getIdUponRightKeyForVerticalMenu() : getIdUponLeftKeyForVerticalMenu();\n }\n else {\n return isDirectionRightToLeft ?\n getIdUponRightKeyForHorizontalMenu() : getIdUponLeftKeyForHorizontalMenu();\n }\n }\n function getIdUponRightKey() {\n if (isMenuVertical) {\n return isDirectionRightToLeft ? getIdUponLeftKeyForVerticalMenu() : getIdUponRightKeyForVerticalMenu();\n }\n else {\n return isDirectionRightToLeft ?\n getIdUponLeftKeyForHorizontalMenu() : getIdUponRightKeyForHorizontalMenu();\n }\n }\n function getIdUponDownKey() {\n if (isMenuVertical) {\n return getNextSiblingId();\n }\n else {\n if (isIdZeroLevel(sourceItemId)) {\n return getFirstChildIdForEnabledItemOrGetSameId();\n }\n else {\n return getNextSiblingId();\n }\n }\n }\n function getIdUponUpKey() {\n if (isMenuVertical) {\n return getPrevSiblingId();\n }\n else {\n if (isIdZeroLevel(sourceItemId)) {\n return getLastChildIdForEnabledItemOrGetSameId();\n }\n else {\n return getPrevSiblingId();\n }\n }\n }\n function getIdUponEnterAndSpaceKeys() {\n if (sourceItem.disabled) {\n return sourceItemId;\n }\n else {\n return hasChildren() ? getFirstChildId(sourceItemId) : getRootParentId(sourceItemId);\n }\n }\n function getIdUponHomeKey() {\n return getSiblings()[0].id;\n }\n function getIdUponEndKey() {\n var siblings = getSiblings();\n return siblings[siblings.length - 1].id;\n }\n function getIdUponEscKey() {\n return isIdZeroLevel(sourceItemId) ? sourceItemId : getDirectParentId(sourceItemId);\n }\n function getIdUponSearchByChar() {\n var searchChar = key.toLowerCase();\n var siblings = getSiblings();\n var currentItemIndex = Number(getShortId(sourceItemId));\n var itemsToSearch = siblings.slice(currentItemIndex + 1).concat(siblings.slice(0, currentItemIndex + 1));\n var matchedSibling = itemsToSearch.find(function (item) {\n return (item.text || '').toLowerCase().startsWith(searchChar);\n });\n return matchedSibling ? matchedSibling.id : sourceItemId;\n }\n // #region Left Key Internals\n function getIdUponLeftKeyForHorizontalMenu() {\n if (isIdZeroLevel(sourceItemId)) {\n return getPrevSiblingId();\n }\n else if (isIdFirstLevel(sourceItemId)) {\n return getFirstChildIdForEnabledItemOrGetSameId(getPrevSiblingId(getRootParentId(sourceItemId)));\n }\n else {\n return getDirectParentId(sourceItemId);\n }\n }\n function getIdUponLeftKeyForVerticalMenu() {\n if (isIdZeroLevel(sourceItemId)) {\n return getLastChildIdForEnabledItemOrGetSameId();\n }\n else {\n return getDirectParentId(sourceItemId);\n }\n }\n // #endregion\n // #region Right Key Internals\n function getIdUponRightKeyForHorizontalMenu() {\n if (isIdZeroLevel(sourceItemId)) {\n return getNextSiblingId();\n }\n else {\n return getFirstChildIdForEnabledItemOrGetSameId(hasChildren() ? sourceItemId : getNextSiblingId(getRootParentId(sourceItemId)));\n }\n }\n function getIdUponRightKeyForVerticalMenu() {\n return getFirstChildIdForEnabledItemOrGetSameId(isIdZeroLevel(sourceItemId) || hasChildren() ?\n sourceItemId : getNextSiblingId(getRootParentId(sourceItemId)));\n }\n // #endregion\n // #region Utils\n function getFirstChildIdForEnabledItemOrGetSameId(itemId) {\n return getFirstOrLastChildIdForEnabledItemOrGetSameId(true, itemId);\n }\n function getLastChildIdForEnabledItemOrGetSameId(itemId) {\n return getFirstOrLastChildIdForEnabledItemOrGetSameId(false, itemId);\n }\n function isSearchableKey() {\n return key.length === 1 && NO_WHITESPACE_REGEX.test(key);\n }\n function getItemById(itemId, items) {\n if (itemId === undefined) {\n itemId = sourceItemId;\n }\n if (items === undefined) {\n items = sourceItems;\n }\n return getItemByIdUtil(itemId, items);\n }\n function hasChildren(itemId) {\n return getItemById(itemId).items.length > 0;\n }\n function getPrevSiblingId(itemId) {\n return getSiblingId(false, itemId);\n }\n function getNextSiblingId(itemId) {\n return getSiblingId(true, itemId);\n }\n function getLastChildId(itemId) {\n var itemChildren = getItemById(itemId).items;\n return itemChildren[itemChildren.length - 1].id;\n }\n function getSiblings() {\n return isIdZeroLevel(sourceItemId) ?\n sourceItems : getItemById(getDirectParentId(sourceItemId), sourceItems).items;\n }\n function getFirstOrLastChildIdForEnabledItemOrGetSameId(getFirstChild, itemId) {\n if (itemId === undefined) {\n itemId = sourceItemId;\n }\n var item = getItemById(itemId);\n if (hasChildren(itemId) && !item.disabled) {\n return getFirstChild ? getFirstChildId(itemId) : getLastChildId(itemId);\n }\n else {\n return itemId;\n }\n }\n function getSiblingId(next, itemId) {\n if (itemId === undefined) {\n itemId = sourceItemId;\n }\n if (isIdZeroLevel(itemId)) {\n return getDirectSiblingIdForLevelZero(next, itemId, sourceItems.length);\n }\n else {\n var directParentId = getDirectParentId(itemId);\n var shortId = getShortId(itemId);\n var siblingsCount = getItemById(directParentId).items.length;\n return createId(getDirectSiblingIdForLevelZero(next, shortId, siblingsCount), directParentId);\n }\n }\n // #endregion\n}\n","/**\n * @hidden\n */\nexport function getHoverOpenDelay(props) {\n if (props.hoverOpenDelay !== undefined) {\n return props.hoverOpenDelay;\n }\n else {\n return props.openOnClick ? 0 : 100;\n }\n}\n/**\n * @hidden\n */\nexport function getHoverCloseDelay(props) {\n return props.hoverCloseDelay !== undefined ? props.hoverCloseDelay : 100;\n}\n","/**\n * @hidden\n */\nvar POPUP_ALIGN = {\n vertical: 'top',\n horizontal: 'left'\n};\n/**\n * @hidden\n */\nvar POPUP_ALIGN_RTL = {\n vertical: 'top',\n horizontal: 'right'\n};\n/**\n * @hidden\n */\nvar VERTICAL_COLLISION = {\n vertical: 'flip',\n horizontal: 'fit'\n};\n/**\n * @hidden\n */\nvar HORIZONTAL_COLLISION = {\n vertical: 'fit',\n horizontal: 'flip'\n};\n/**\n * @hidden\n */\nexport var POPUP_SETTINGS_RTL = {\n downward: {\n anchorAlign: {\n vertical: 'bottom',\n horizontal: 'right'\n },\n popupAlign: POPUP_ALIGN_RTL,\n collision: VERTICAL_COLLISION\n },\n leftward: {\n anchorAlign: {\n vertical: 'top',\n horizontal: 'left'\n },\n popupAlign: POPUP_ALIGN_RTL,\n collision: HORIZONTAL_COLLISION\n }\n};\n/**\n * @hidden\n */\nexport var POPUP_SETTINGS = {\n downward: {\n anchorAlign: {\n vertical: 'bottom',\n horizontal: 'left'\n },\n popupAlign: POPUP_ALIGN,\n collision: VERTICAL_COLLISION\n },\n rightward: {\n anchorAlign: {\n vertical: 'top',\n horizontal: 'right'\n },\n popupAlign: POPUP_ALIGN,\n collision: HORIZONTAL_COLLISION\n }\n};\n","import { POPUP_SETTINGS, POPUP_SETTINGS_RTL } from '../consts';\nimport { isIdZeroLevel } from './itemsIdsUtils';\n/**\n * @hidden\n */\nexport function getPopupSettings(itemId, isMenuVertical, isDirectionRightToLeft) {\n var childrenPosition = getChildrenPosition(itemId, isMenuVertical, isDirectionRightToLeft);\n if (isDirectionRightToLeft) {\n return childrenPosition === 'downward' ? POPUP_SETTINGS_RTL.downward : POPUP_SETTINGS_RTL.leftward;\n }\n else {\n return childrenPosition === 'downward' ? POPUP_SETTINGS.downward : POPUP_SETTINGS.rightward;\n }\n}\n/**\n * @hidden\n */\nexport function getChildrenPosition(itemId, isMenuVertical, isDirectionRightToLeft) {\n if (isIdZeroLevel(itemId)) {\n if (isMenuVertical) {\n return isDirectionRightToLeft ? 'leftward' : 'rightward';\n }\n else {\n return 'downward';\n }\n }\n else {\n return isDirectionRightToLeft ? 'leftward' : 'rightward';\n }\n}\n/**\n * @hidden\n */\nexport function convertBoolDirectionToString(isDirectionRightToLeft) {\n return isDirectionRightToLeft ? 'rtl' : 'ltr';\n}\n/**\n * @hidden\n */\nexport function getDOMElementId(menuGuid, itemId) {\n return menuGuid + \"_\" + itemId;\n}\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getDefaultSlots } from '@progress/kendo-vue-common'; // tslint:enable:max-line-length\n\nvar MenuItemLink = {\n name: 'KendoMenuItemLink',\n props: {\n opened: Boolean,\n url: String\n },\n computed: {\n menuItemClassName: function menuItemClassName() {\n return {\n 'k-link': true,\n 'k-menu-link': true,\n 'k-state-active': this.$props.opened\n };\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n\n if (this.$props.url) {\n return h(\"a\", {\n \"class\": this.menuItemClassName,\n role: \"presentation\",\n attrs: this.v3 ? undefined : {\n role: \"presentation\",\n href: this.$props.url,\n tabIndex: -1\n },\n href: this.$props.url,\n tabIndex: -1\n }, [defaultSlot]);\n } else {\n return h(\"span\", {\n \"class\": this.menuItemClassName,\n role: \"presentation\",\n attrs: this.v3 ? undefined : {\n role: \"presentation\"\n }\n }, [defaultSlot]);\n }\n }\n};\nvar MenuItemLinkVue3 = MenuItemLink;\nexport { MenuItemLink, MenuItemLinkVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { getChildrenPosition } from '../utils/misc';\n/**\n * @hidden\n */\n\nexport var downArrowClass = 'k-i-arrow-60-down';\n/**\n * @hidden\n */\n\nexport var rightArrowClass = 'k-i-arrow-60-right';\n/**\n * @hidden\n */\n\nexport var leftArrowClass = 'k-i-arrow-60-left'; // tslint:enable:max-line-length\n\nvar MenuItemArrow = {\n name: 'KendoMenuItemArrow',\n props: {\n itemId: String,\n dir: String,\n verticalMenu: Boolean\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n return h(\"span\", {\n \"class\": this.getArrowClassName(),\n role: \"presentation\",\n attrs: this.v3 ? undefined : {\n role: \"presentation\"\n }\n });\n },\n methods: {\n getArrowClassName: function getArrowClassName() {\n var _a;\n\n var childrenPosition = getChildrenPosition(this.$props.itemId, this.$props.verticalMenu === true, this.$props.dir === 'rtl');\n return _a = {\n 'k-icon': true,\n 'k-menu-expand-arrow': true\n }, _a[downArrowClass] = childrenPosition === 'downward', _a[rightArrowClass] = childrenPosition === 'rightward', _a[leftArrowClass] = childrenPosition === 'leftward', _a;\n }\n }\n};\nvar MenuItemArrowVue3 = MenuItemArrow;\nexport { MenuItemArrow, MenuItemArrowVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nimport { classNames, guid, getTemplate } from '@progress/kendo-vue-common';\nimport { Popup } from '@progress/kendo-vue-popup';\nimport { shouldOpenItem, isFirstItemFromSiblings } from '../utils/itemsIdsUtils';\nimport { getPopupSettings, convertBoolDirectionToString, getDOMElementId } from '../utils/misc';\nimport { MenuItemLink } from './MenuItemLink';\nimport { MenuItemInternalsList } from './MenuItemInternalsList';\nimport { MenuItemArrow } from './MenuItemArrow'; // tslint:enable:max-line-length\n\nvar MenuItemInternal = {\n name: 'KendoMenuItemInternal',\n // @ts-ignore\n emits: {\n 'keydown': null,\n 'mouseover': null,\n 'mouseleave': null,\n 'blur': null,\n 'focus': null,\n 'click': null,\n 'mousedown': null\n },\n props: {\n item: Object,\n focusedItemId: String,\n lastItemIdToBeOpened: String,\n tabbableItemId: String,\n itemRender: [String, Object, Function],\n linkRender: [String, Object, Function],\n isMenuVertical: Boolean,\n isDirectionRightToLeft: Boolean,\n menuGuid: String,\n originalItemNeeded: Function\n },\n created: function created() {\n this.itemElement = null;\n this.prevFocusedItemId = this.$props.focusedItemId;\n this.isFirstRender = true;\n this._anchor = guid();\n },\n data: function data() {\n return {\n opened: false\n };\n },\n mounted: function mounted() {\n this.itemElement = this.v3 ? this.kendoAnchorRef : this.$refs[this._anchor];\n var focusedItemId = this.$props.focusedItemId;\n var currentItemId = this.$props.item.id; // If the menu item component has been just mounted due to\n // keyboard navigation and it is the selected one.\n\n if (focusedItemId && focusedItemId === currentItemId && this.itemElement) {\n this.itemElement.focus();\n }\n\n this.isFirstRender = false;\n },\n watch: {\n focusedItemId: function focusedItemId(_, oldValue) {\n this.prevFocusedItemId = oldValue;\n }\n },\n updated: function updated() {\n var focusedItemId = this.$props.focusedItemId;\n var currentItemId = this.$props.item.id;\n\n if (focusedItemId) {\n // If the item has been navigated to via the keyboard navigation\n // (Clicking and focusing an item also come here).\n if (this.prevFocusedItemId !== focusedItemId && focusedItemId === currentItemId // No need to focus the wrapping menu item DOM element\n // when a child DOM element was clicked.\n && !this.itemElement.contains(document.activeElement)) {\n this.itemElement.focus();\n }\n } else if (document.activeElement === this.itemElement) {\n this.itemElement.blur();\n }\n },\n computed: {\n currentItemRender: function currentItemRender() {\n return this.$props.item.render || this.$props.itemRender;\n },\n currentLinkRender: function currentLinkRender() {\n return this.$props.item.linkRender || this.$props.linkRender;\n },\n contentRender: function contentRender() {\n return this.$props.item.contentParentItemId ? this.$props.item.contentRender : null;\n },\n currentOpened: function currentOpened() {\n var props = this.$props;\n return props.item.items.length > 0 && shouldOpenItem(props.item.id, props.lastItemIdToBeOpened) && // HACK: Wait for the second render because otherwise the scenario of\n // popup inside popup throws an error (for example, hover of item with id '0_0').\n !this.isFirstRender;\n },\n popupClassName: function popupClassName() {\n return classNames({\n 'k-menu-popup': true,\n 'k-rtl': this.$props.isDirectionRightToLeft\n });\n },\n menuItemClassName: function menuItemClassName() {\n var _a;\n\n var item = this.$props.item;\n return _a = {\n 'k-item': true,\n 'k-menu-item': true,\n 'k-first': isFirstItemFromSiblings(item.id),\n 'k-last': item.isLastFromSiblings,\n 'k-state-disabled': item.disabled\n }, _a[item.cssClass ? item.cssClass : ''] = item.cssClass, _a;\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoAnchorRef = ref(null);\n return {\n v3: v3,\n kendoAnchorRef: kendoAnchorRef\n };\n },\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var item = this.$props.item;\n var itemId = item.id;\n\n var renderContent = function renderContent() {\n var parentItemId = this.$props.item.contentParentItemId;\n\n var contentRender = function contentRender(args) {\n return getTemplate.call(this, {\n h: h,\n template: this.contentRender,\n additionalProps: args\n });\n };\n\n return h(\"div\", {\n \"class\": \"k-content\",\n role: \"presentation\",\n attrs: this.v3 ? undefined : {\n role: \"presentation\"\n }\n }, [contentRender.call(this, {\n item: this.handleOriginalItemNeeded(parentItemId),\n itemId: parentItemId\n })]);\n };\n\n var renderMenuIconIfApplicable = function renderMenuIconIfApplicable() {\n return this.$props.item.icon ? h(\"span\", {\n \"class\": \"k-icon k-i-\" + this.$props.item.icon,\n role: \"presentation\",\n attrs: this.v3 ? undefined : {\n role: \"presentation\"\n },\n key: \"0\"\n }) : null;\n };\n\n var renderArrowIfApplicable = function renderArrowIfApplicable() {\n return this.$props.item.items.length > 0 ? // @ts-ignore\n h(MenuItemArrow, {\n itemId: this.$props.item.id,\n attrs: this.v3 ? undefined : {\n itemId: this.$props.item.id,\n verticalMenu: this.$props.isMenuVertical,\n dir: convertBoolDirectionToString(this.$props.isDirectionRightToLeft)\n },\n verticalMenu: this.$props.isMenuVertical,\n dir: convertBoolDirectionToString(this.$props.isDirectionRightToLeft),\n key: \"2\"\n }) : null;\n };\n\n var originalItem = this.$props.originalItemNeeded(item.id);\n\n var renderMenuItemLink = function renderMenuItemLink() {\n var _this2 = this;\n\n var defaultItemRender = item.text;\n var textOrItemRender = getTemplate.call(this, {\n h: h,\n template: this.currentItemRender,\n defaultRendering: defaultItemRender,\n additionalProps: {\n item: originalItem,\n itemId: item.id,\n key: '1'\n }\n });\n var defaultLink = // @ts-ignore function children\n h(MenuItemLink, {\n url: item.url,\n attrs: this.v3 ? undefined : {\n url: item.url,\n opened: this.currentOpened\n },\n opened: this.currentOpened\n }, this.v3 ? function () {\n return [[renderMenuIconIfApplicable.call(_this2), textOrItemRender, renderArrowIfApplicable.call(_this2)]];\n } : [[renderMenuIconIfApplicable.call(_this2), textOrItemRender, renderArrowIfApplicable.call(_this2)]]);\n return getTemplate.call(this, {\n h: h,\n template: this.currentLinkRender,\n defaultRendering: defaultLink,\n additionalProps: {\n item: originalItem,\n itemId: item.id,\n opened: this.currentOpened,\n dir: convertBoolDirectionToString(this.$props.isDirectionRightToLeft)\n }\n });\n };\n\n var renderPopupIfOpened = function renderPopupIfOpened() {\n var _this3 = this;\n\n var _a = getPopupSettings(itemId, this.$props.isMenuVertical, this.$props.isDirectionRightToLeft),\n anchorAlign = _a.anchorAlign,\n popupAlign = _a.popupAlign,\n collision = _a.collision;\n\n return (// @ts-ignore function children\n h(Popup, {\n anchor: this._anchor,\n attrs: this.v3 ? undefined : {\n anchor: this._anchor,\n show: this.currentOpened,\n popupClass: this.popupClassName,\n anchorAlign: anchorAlign,\n popupAlign: popupAlign,\n collision: collision,\n animate: false\n },\n show: this.currentOpened,\n popupClass: this.popupClassName,\n anchorAlign: anchorAlign,\n popupAlign: popupAlign,\n collision: collision,\n animate: false,\n key: \"1\"\n }, this.v3 ? function () {\n return [// @ts-ignore\n h(MenuItemInternalsList, {\n parentItemId: itemId,\n attrs: _this3.v3 ? undefined : {\n parentItemId: itemId,\n items: _this3.$props.item.items,\n menuGuid: _this3.$props.menuGuid,\n focusedItemId: _this3.$props.focusedItemId,\n lastItemIdToBeOpened: _this3.$props.lastItemIdToBeOpened,\n tabbableItemId: _this3.$props.tabbableItemId,\n itemRender: _this3.$props.itemRender,\n linkRender: _this3.$props.linkRender,\n isMenuVertical: _this3.$props.isMenuVertical,\n isDirectionRightToLeft: _this3.$props.isDirectionRightToLeft,\n originalItemNeeded: _this3.handleOriginalItemNeeded\n },\n items: _this3.$props.item.items,\n menuGuid: _this3.$props.menuGuid,\n focusedItemId: _this3.$props.focusedItemId,\n lastItemIdToBeOpened: _this3.$props.lastItemIdToBeOpened,\n tabbableItemId: _this3.$props.tabbableItemId,\n itemRender: _this3.$props.itemRender,\n linkRender: _this3.$props.linkRender,\n isMenuVertical: _this3.$props.isMenuVertical,\n isDirectionRightToLeft: _this3.$props.isDirectionRightToLeft,\n \"class\": \"k-group k-menu-group k-reset\",\n onMouseover: _this3.handleItemMouseOver,\n on: _this3.v3 ? undefined : {\n \"mouseover\": _this3.handleItemMouseOver,\n \"mouseleave\": _this3.handleItemMouseLeave,\n \"mousedown\": _this3.handleMouseDown,\n \"blur\": _this3.handleItemMouseBlur,\n \"focus\": _this3.handleItemMouseFocus,\n \"click\": _this3.handleClick,\n \"keydown\": _this3.handleKeyDown\n },\n onMouseleave: _this3.handleItemMouseLeave,\n onMousedown: _this3.handleMouseDown,\n onBlur: _this3.handleItemMouseBlur,\n onFocus: _this3.handleItemMouseFocus,\n onClick: _this3.handleClick,\n onKeydown: _this3.handleKeyDown,\n originalItemNeeded: _this3.handleOriginalItemNeeded\n })];\n } : [h(MenuItemInternalsList, {\n parentItemId: itemId,\n attrs: _this3.v3 ? undefined : {\n parentItemId: itemId,\n items: _this3.$props.item.items,\n menuGuid: _this3.$props.menuGuid,\n focusedItemId: _this3.$props.focusedItemId,\n lastItemIdToBeOpened: _this3.$props.lastItemIdToBeOpened,\n tabbableItemId: _this3.$props.tabbableItemId,\n itemRender: _this3.$props.itemRender,\n linkRender: _this3.$props.linkRender,\n isMenuVertical: _this3.$props.isMenuVertical,\n isDirectionRightToLeft: _this3.$props.isDirectionRightToLeft,\n originalItemNeeded: _this3.handleOriginalItemNeeded\n },\n items: _this3.$props.item.items,\n menuGuid: _this3.$props.menuGuid,\n focusedItemId: _this3.$props.focusedItemId,\n lastItemIdToBeOpened: _this3.$props.lastItemIdToBeOpened,\n tabbableItemId: _this3.$props.tabbableItemId,\n itemRender: _this3.$props.itemRender,\n linkRender: _this3.$props.linkRender,\n isMenuVertical: _this3.$props.isMenuVertical,\n isDirectionRightToLeft: _this3.$props.isDirectionRightToLeft,\n \"class\": \"k-group k-menu-group k-reset\",\n onMouseover: _this3.handleItemMouseOver,\n on: _this3.v3 ? undefined : {\n \"mouseover\": _this3.handleItemMouseOver,\n \"mouseleave\": _this3.handleItemMouseLeave,\n \"mousedown\": _this3.handleMouseDown,\n \"blur\": _this3.handleItemMouseBlur,\n \"focus\": _this3.handleItemMouseFocus,\n \"click\": _this3.handleClick,\n \"keydown\": _this3.handleKeyDown\n },\n onMouseleave: _this3.handleItemMouseLeave,\n onMousedown: _this3.handleMouseDown,\n onBlur: _this3.handleItemMouseBlur,\n onFocus: _this3.handleItemMouseFocus,\n onClick: _this3.handleClick,\n onKeydown: _this3.handleKeyDown,\n originalItemNeeded: _this3.handleOriginalItemNeeded\n })])\n );\n };\n\n return h(\"li\", {\n \"class\": this.menuItemClassName,\n style: item.cssStyle,\n tabIndex: itemId === this.$props.tabbableItemId ? 0 : -1,\n attrs: this.v3 ? undefined : {\n tabIndex: itemId === this.$props.tabbableItemId ? 0 : -1,\n role: \"menuitem\",\n \"aria-disabled\": item.disabled ? true : undefined,\n \"aria-haspopup\": item.items.length > 0 ? true : undefined,\n \"aria-expanded\": item.items.length > 0 ? this.currentOpened : undefined,\n \"aria-label\": item.text,\n \"aria-owns\": this.currentOpened ? getDOMElementId(this.$props.menuGuid, itemId) : undefined\n },\n onMouseover: this.onMouseOver,\n on: this.v3 ? undefined : {\n \"mouseover\": this.onMouseOver,\n \"mouseleave\": this.onMouseLeave,\n \"mousedown\": function mousedown(event) {\n return _this.handleMouseDown(event);\n },\n \"focusout\": function focusout() {\n return _this.handleBlur(itemId);\n },\n \"focusin\": function focusin() {\n return _this.handleFocus(itemId);\n },\n \"click\": function click(event) {\n return _this.handleClick(event, itemId);\n },\n \"keydown\": this.handleKeyDown\n },\n onMouseleave: this.onMouseLeave,\n onMousedown: function mousedown(event) {\n return _this.handleMouseDown(event);\n },\n onFocusout: function focusout() {\n return _this.handleBlur(itemId);\n },\n onFocusin: function focusin() {\n return _this.handleFocus(itemId);\n },\n onClick: function click(event) {\n return _this.handleClick(event, itemId);\n },\n onKeydown: this.handleKeyDown,\n role: \"menuitem\",\n \"aria-disabled\": item.disabled ? true : undefined,\n \"aria-haspopup\": item.items.length > 0 ? true : undefined,\n \"aria-expanded\": item.items.length > 0 ? this.currentOpened : undefined,\n \"aria-label\": item.text,\n \"aria-owns\": this.currentOpened ? getDOMElementId(this.$props.menuGuid, itemId) : undefined,\n ref: this.v3 ? function (el) {\n _this.kendoAnchorRef = el;\n } : this._anchor,\n key: \"0\"\n }, [this.contentRender ? renderContent.call(this) : renderMenuItemLink.call(this), renderPopupIfOpened.call(this)]);\n },\n methods: {\n handleKeyDown: function handleKeyDown(event) {\n this.$emit('keydown', event);\n },\n handleItemMouseOver: function handleItemMouseOver(event) {\n this.$emit('mouseover', event);\n },\n handleItemMouseLeave: function handleItemMouseLeave(event) {\n this.$emit('mouseleave', event);\n },\n handleItemMouseBlur: function handleItemMouseBlur(event) {\n this.$emit('blur', event);\n },\n handleItemMouseFocus: function handleItemMouseFocus(event) {\n this.$emit('focus', event);\n },\n handleClick: function handleClick(event, itemId) {\n this.$emit('click', event, itemId);\n },\n handleBlur: function handleBlur(itemId) {\n this.$emit('blur', itemId);\n },\n handleFocus: function handleFocus(itemId) {\n this.$emit('focus', itemId);\n },\n handleMouseDown: function handleMouseDown(event) {\n this.$emit('mousedown', event);\n },\n handleOriginalItemNeeded: function handleOriginalItemNeeded(event) {\n return this.$props.originalItemNeeded(event);\n },\n onMouseOver: function onMouseOver(event) {\n this.$emit('mouseover', this.$props.item.id);\n event.stopPropagation();\n },\n onMouseLeave: function onMouseLeave(event) {\n this.$emit('mouseleave', this.$props.item.id);\n event.stopPropagation();\n }\n }\n};\nvar MenuItemInternalVue3 = MenuItemInternal;\nexport { MenuItemInternal, MenuItemInternalVue3 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { MenuItemInternal } from './MenuItemInternal';\nimport { getDOMElementId } from './../utils/misc'; // tslint:enable:max-line-length\n\nvar MenuItemInternalsList = {\n name: 'KendoMenuItemInternalsList',\n // @ts-ignore\n emits: {\n 'keydown': null,\n 'mouseover': null,\n 'mouseleave': null,\n 'blur': null,\n 'focus': null,\n 'click': null,\n 'mousedown': null\n },\n props: {\n items: Array,\n parentItemId: {\n type: String,\n default: undefined\n },\n focusedItemId: String,\n lastItemIdToBeOpened: String,\n tabbableItemId: String,\n itemRender: [String, Object, Function],\n linkRender: [String, Object, Function],\n isMenuVertical: Boolean,\n isDirectionRightToLeft: Boolean,\n menuGuid: String,\n originalItemNeeded: Function\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var parentItemId = this.$props.parentItemId;\n\n var renderChildItems = function renderChildItems() {\n return this.$props.items.length > 0 ? this.$props.items.map(function (item, index) {\n return (// @ts-ignore\n h(MenuItemInternal, {\n item: item,\n attrs: this.v3 ? undefined : {\n item: item,\n isMenuVertical: this.$props.isMenuVertical,\n isDirectionRightToLeft: this.$props.isDirectionRightToLeft,\n focusedItemId: this.$props.focusedItemId,\n lastItemIdToBeOpened: this.$props.lastItemIdToBeOpened,\n tabbableItemId: this.$props.tabbableItemId,\n itemRender: this.$props.itemRender,\n linkRender: this.$props.linkRender,\n menuGuid: this.$props.menuGuid,\n originalItemNeeded: this.handleOriginalItemNeeded\n },\n isMenuVertical: this.$props.isMenuVertical,\n isDirectionRightToLeft: this.$props.isDirectionRightToLeft,\n focusedItemId: this.$props.focusedItemId,\n lastItemIdToBeOpened: this.$props.lastItemIdToBeOpened,\n tabbableItemId: this.$props.tabbableItemId,\n itemRender: this.$props.itemRender,\n linkRender: this.$props.linkRender,\n menuGuid: this.$props.menuGuid,\n onMouseover: this.handleItemMouseOver,\n on: this.v3 ? undefined : {\n \"mouseover\": this.handleItemMouseOver,\n \"mouseleave\": this.handleItemMouseLeave,\n \"mousedown\": this.handleItemMouseDown,\n \"keydown\": this.handleKeyDown,\n \"blur\": this.handleItemMouseBlur,\n \"focus\": this.handleItemMouseFocus,\n \"click\": this.handleItemMouseClick\n },\n onMouseleave: this.handleItemMouseLeave,\n onMousedown: this.handleItemMouseDown,\n onKeydown: this.handleKeyDown,\n onBlur: this.handleItemMouseBlur,\n onFocus: this.handleItemMouseFocus,\n onClick: this.handleItemMouseClick,\n originalItemNeeded: this.handleOriginalItemNeeded,\n key: index\n })\n );\n }, this) : null;\n };\n\n return h(\"ul\", {\n role: parentItemId !== undefined ? 'menu' : 'menubar',\n attrs: this.v3 ? undefined : {\n role: parentItemId !== undefined ? 'menu' : 'menubar',\n id: parentItemId !== undefined ? getDOMElementId(this.$props.menuGuid, parentItemId) : undefined\n },\n id: parentItemId !== undefined ? getDOMElementId(this.$props.menuGuid, parentItemId) : undefined,\n onMouseover: this.onMouseOver,\n on: this.v3 ? undefined : {\n \"mouseover\": this.onMouseOver,\n \"mouseleave\": this.onMouseLeave\n },\n onMouseleave: this.onMouseLeave\n }, [renderChildItems.call(this)]);\n },\n methods: {\n handleKeyDown: function handleKeyDown(event) {\n this.$emit('keydown', event);\n },\n handleOriginalItemNeeded: function handleOriginalItemNeeded(event) {\n return this.$props.originalItemNeeded(event);\n },\n handleItemMouseOver: function handleItemMouseOver(event) {\n this.$emit('mouseover', event);\n },\n handleItemMouseLeave: function handleItemMouseLeave(event) {\n this.$emit('mouseleave', event);\n },\n handleItemMouseDown: function handleItemMouseDown(event) {\n this.$emit('mousedown', event);\n },\n handleItemMouseBlur: function handleItemMouseBlur(event) {\n this.$emit('blur', event);\n },\n handleItemMouseFocus: function handleItemMouseFocus(event) {\n this.$emit('focus', event);\n },\n handleItemMouseClick: function handleItemMouseClick(event, itemId) {\n this.$emit('click', event, itemId);\n },\n onMouseOver: function onMouseOver(event) {\n if (this.$props.parentItemId !== undefined) {\n this.$emit('mouseover', this.$props.parentItemId);\n event.stopPropagation();\n }\n },\n onMouseLeave: function onMouseLeave(event) {\n if (this.$props.parentItemId !== undefined) {\n this.$emit('mouseleave', this.$props.parentItemId);\n event.stopPropagation();\n }\n }\n }\n};\nvar MenuItemInternalsListVue3 = MenuItemInternalsList;\nexport { MenuItemInternalsList, MenuItemInternalsListVue3 };","/**\n * @hidden\n */\nvar DirectionHolder = /** @class */ (function () {\n function DirectionHolder() {\n // The phase changes in the following sequence:\n // NotInitialized -> Initialized -> NewValueReceived.\n this.phase = 'Initialized';\n }\n DirectionHolder.prototype.getIsDirectionRightToLeft = function () {\n return this.isDirectionRightToLeft;\n };\n DirectionHolder.prototype.setIsDirectionRightToLeft = function (value) {\n this.phase = this.phase === 'NotInitialized' ? 'Initialized' : 'NewValueReceived';\n this.previousIsDirectionRightToLeft = this.isDirectionRightToLeft;\n this.isDirectionRightToLeft = value;\n };\n DirectionHolder.prototype.hasDirectionChanged = function () {\n return this.phase === 'NewValueReceived' ?\n this.previousIsDirectionRightToLeft !== this.isDirectionRightToLeft : false;\n };\n return DirectionHolder;\n}());\nexport { DirectionHolder };\n","/**\n * @hidden\n */\nvar MouseOverHandler = /** @class */ (function () {\n function MouseOverHandler(openOnClick, resetMenu, openItem) {\n this.openOnClick = openOnClick;\n this.resetMenu = resetMenu;\n this.openItem = openItem;\n this.openOnClick = openOnClick;\n this.isMouseOverEnabled = openOnClick ? false : true;\n }\n Object.defineProperty(MouseOverHandler.prototype, \"OpenOnClick\", {\n set: function (value) {\n if (Boolean(value) !== Boolean(this.openOnClick)) {\n this.mouseDown = false;\n this.isMouseOverEnabled = value ? false : true;\n }\n this.openOnClick = value;\n },\n enumerable: false,\n configurable: true\n });\n MouseOverHandler.prototype.handleItemSelectedViaKeyboard = function () {\n if (this.openOnClick) {\n this.isMouseOverEnabled = false;\n this.resetMenu();\n }\n };\n Object.defineProperty(MouseOverHandler.prototype, \"IsMouseOverEnabled\", {\n get: function () {\n return this.isMouseOverEnabled;\n },\n enumerable: false,\n configurable: true\n });\n MouseOverHandler.prototype.handleItemMouseDown = function () {\n this.mouseDown = true;\n };\n MouseOverHandler.prototype.handleItemFocus = function () {\n // Keep opening on mouse over upon tabbing\n // and keyboard navigation. However, discard the event\n // upon click because a cycle occurs and the item does not open.\n if (this.openOnClick && !this.mouseDown) {\n this.isMouseOverEnabled = true;\n }\n this.mouseDown = false;\n };\n MouseOverHandler.prototype.handleItemClick = function (itemId, clickedItemIsWithDefaultClose) {\n if (this.openOnClick) {\n if (this.isMouseOverEnabled) {\n if (clickedItemIsWithDefaultClose) {\n this.isMouseOverEnabled = false;\n this.resetMenu();\n }\n }\n else {\n this.isMouseOverEnabled = true;\n this.openItem(itemId);\n }\n }\n };\n return MouseOverHandler;\n}());\nexport { MouseOverHandler };\n","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { templateRendering, getListeners } from '@progress/kendo-vue-common';\nimport { Keys, guid, validatePackage } from '@progress/kendo-vue-common';\nimport { getDirectParentId, isIdEmptyOrZeroLevel, EMPTY_ID, ZERO_LEVEL_ZERO_ITEM_ID, getRootParentId, getItemById } from '../utils/itemsIdsUtils';\nimport { prepareInputItemsForInternalWork } from '../utils/prepareInputItemsForInternalWork';\nimport { getNewItemIdUponKeyboardNavigation } from '../utils/getNewItemIdUponKeyboardNavigation';\nimport { getHoverOpenDelay, getHoverCloseDelay } from '../utils/hoverDelay';\nimport { MenuItemInternalsList } from './MenuItemInternalsList';\nimport { DirectionHolder } from '../utils/DirectionHolder';\nimport { MouseOverHandler } from '../utils/MouseOverHandler';\nimport { packageMetadata } from '../../package-metadata'; // tslint:enable:max-line-length\n\nvar Menu = {\n name: 'KendoMenu',\n props: {\n vertical: {\n type: Boolean,\n default: false\n },\n items: Array,\n dir: String,\n hoverOpenDelay: {\n type: Number,\n default: undefined\n },\n hoverCloseDelay: {\n type: Number,\n default: undefined\n },\n openOnClick: Boolean,\n itemRender: [String, Object, Function],\n linkRender: [String, Object, Function],\n customCloseItemIds: Array\n },\n created: function created() {\n validatePackage(packageMetadata);\n this.mouseOverHandler = new MouseOverHandler(this.$props.openOnClick, this.reset, this.onItemMouseOver); // private itemHoverRequest: any;\n // private itemLeaveRequest: any;\n // private menuWrapperEl: any;\n\n this.guid = guid();\n this.directionHolder = new DirectionHolder();\n this.inputItems = [];\n this.currentItems = []; // private mouseOverHandler: MouseOverHandler;\n },\n mounted: function mounted() {\n this.isFirstRender = false;\n },\n updated: function updated() {\n // Reset the Menu upon big UI changes\n // to avoid misleading the user and to\n // keep the component consistent.\n // if (Boolean(prevProps.vertical) !== Boolean(this.$props.vertical) ||\n // this.directionHolder.hasDirectionChanged()) {\n // this.reset();\n // }\n this.mouseOverHandler.OpenOnClick = this.$props.openOnClick;\n },\n destroyed: !!gh ? undefined : function () {\n this.clearItemHoverAndLeaveRequestsIfApplicable();\n },\n // @ts-ignore\n unmounted: function unmounted() {\n this.clearItemHoverAndLeaveRequestsIfApplicable();\n },\n data: function data() {\n return {\n focusedItemId: EMPTY_ID,\n hoveredItemId: EMPTY_ID,\n tabbableItemId: ZERO_LEVEL_ZERO_ITEM_ID,\n isFirstRender: true\n };\n },\n computed: {\n menuClassName: function menuClassName() {\n return {\n 'k-widget': true,\n 'k-reset': true,\n 'k-header': true,\n 'k-menu': true,\n 'k-menu-horizontal': !this.$props.vertical,\n 'k-menu-vertical': this.$props.vertical\n };\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n this.prepareItems();\n\n if (!this.isFirstRender) {\n this.directionHolder.setIsDirectionRightToLeft(this.checkIsDirectionRightToLeft());\n }\n\n var lastItemIdToBeOpened = this.hoveredItemId ? this.hoveredItemId : this.focusedItemId ? getDirectParentId(this.focusedItemId) : EMPTY_ID;\n return h(\"div\", {\n \"class\": this.getMenuWrapperClassName(),\n ref: function ref(el) {\n return _this.menuWrapperEl = el;\n }\n }, [// @ts-ignore\n h(MenuItemInternalsList, {\n \"class\": this.menuClassName,\n \"aria-orientation\": this.$props.vertical ? 'vertical' : undefined,\n attrs: this.v3 ? undefined : {\n \"aria-orientation\": this.$props.vertical ? 'vertical' : undefined,\n items: this.currentItems,\n isMenuVertical: this.$props.vertical,\n isDirectionRightToLeft: this.directionHolder.getIsDirectionRightToLeft(),\n focusedItemId: this.focusedItemId,\n lastItemIdToBeOpened: lastItemIdToBeOpened,\n tabbableItemId: this.tabbableItemId,\n itemRender: templateRendering.call(this, this.$props.itemRender, getListeners.call(this)),\n linkRender: templateRendering.call(this, this.$props.linkRender, getListeners.call(this)),\n menuGuid: this.guid,\n originalItemNeeded: this.getInputItem\n },\n items: this.currentItems,\n isMenuVertical: this.$props.vertical,\n isDirectionRightToLeft: this.directionHolder.getIsDirectionRightToLeft(),\n focusedItemId: this.focusedItemId,\n lastItemIdToBeOpened: lastItemIdToBeOpened,\n tabbableItemId: this.tabbableItemId,\n itemRender: templateRendering.call(this, this.$props.itemRender, getListeners.call(this)),\n linkRender: templateRendering.call(this, this.$props.linkRender, getListeners.call(this)),\n menuGuid: this.guid,\n onMouseleave: this.onItemMouseLeave,\n on: this.v3 ? undefined : {\n \"mouseleave\": this.onItemMouseLeave,\n \"mouseover\": this.onItemMouseOver,\n \"mousedown\": this.onItemMouseDown,\n \"keydown\": this.onKeyDown,\n \"focus\": this.onItemFocus,\n \"click\": this.onItemClick,\n \"blur\": this.onItemBlur\n },\n onMouseover: this.onItemMouseOver,\n onMousedown: this.onItemMouseDown,\n onKeydown: this.onKeyDown,\n onFocus: this.onItemFocus,\n onClick: this.onItemClick,\n onBlur: this.onItemBlur,\n originalItemNeeded: this.getInputItem\n })]);\n },\n methods: {\n reset: function reset() {\n this.clearItemHoverAndLeaveRequestsIfApplicable();\n this.focusedItemId = EMPTY_ID;\n this.hoveredItemId = EMPTY_ID;\n this.tabbableItemId = ZERO_LEVEL_ZERO_ITEM_ID;\n },\n onKeyDown: function onKeyDown(event) {\n // The focusedItemId may be empty when contentRender is used.\n // For example, content with input.\n if (this.focusedItemId !== EMPTY_ID) {\n var currentItem = getItemById(this.focusedItemId, this.currentItems);\n var newItemId = getNewItemIdUponKeyboardNavigation(this.currentItems, currentItem.id, event.keyCode, event.key, this.$props.vertical, this.directionHolder.getIsDirectionRightToLeft());\n\n if (currentItem.id !== newItemId) {\n event.preventDefault();\n this.setFocusedItemId(newItemId);\n }\n\n if ((event.keyCode === Keys.enter || event.keyCode === Keys.space) && !currentItem.disabled) {\n this.mouseOverHandler.handleItemSelectedViaKeyboard();\n this.dispatchSelectEventIfWired(event, currentItem.id);\n\n if (!event.defaultPrevented && currentItem.items.length === 0 && currentItem.url) {\n window.location.assign(currentItem.url);\n }\n }\n }\n },\n onItemMouseOver: function onItemMouseOver(itemId) {\n if (this.mouseOverHandler.IsMouseOverEnabled) {\n // The `over` event can get fired even without actually leaving the item.\n // For example, move the mouse little by little over the item content.\n this.clearItemHoverAndLeaveRequestsIfApplicable();\n var that_1 = this;\n this.itemHoverRequest = window.setTimeout(function () {\n that_1.setHoveredItemId(itemId);\n that_1.itemHoverRequest = null;\n }, getHoverOpenDelay(__assign({}, this.$props)));\n }\n },\n onItemMouseLeave: function onItemMouseLeave(itemId) {\n if (this.mouseOverHandler.IsMouseOverEnabled && this.isItemWithDefaultClose(itemId)) {\n // Both the `leave` and `hover` requests are cleared\n // to be defensive and consistent with the `over` handler.\n this.clearItemHoverAndLeaveRequestsIfApplicable();\n var that_2 = this;\n this.itemLeaveRequest = window.setTimeout(function () {\n that_2.setHoveredItemId(EMPTY_ID);\n that_2.itemLeaveRequest = null;\n }, getHoverCloseDelay(__assign({}, this.$props)));\n }\n },\n onItemMouseDown: function onItemMouseDown() {\n this.mouseOverHandler.handleItemMouseDown();\n },\n onItemFocus: function onItemFocus(itemId) {\n this.setFocusedItemId(itemId);\n this.mouseOverHandler.handleItemFocus();\n },\n onItemClick: function onItemClick(event, itemId) {\n var item = getItemById(itemId, this.currentItems);\n\n if (!item.disabled) {\n this.setFocusedItemId(itemId);\n this.mouseOverHandler.handleItemClick(itemId, this.isItemWithDefaultClose(itemId));\n this.dispatchSelectEventIfWired(event, itemId);\n\n if (!event.defaultPrevented && item.url) {\n window.location.assign(item.url);\n }\n }\n },\n onItemBlur: function onItemBlur(itemId) {\n if (this.isItemWithDefaultClose(itemId)) {\n this.setFocusedItemId(EMPTY_ID);\n }\n },\n getInputItem: function getInputItem(itemId) {\n return getItemById(itemId, this.inputItems);\n },\n setFocusedItemId: function setFocusedItemId(focusedItemId) {\n var tabbableItemId = focusedItemId === EMPTY_ID ? this.tabbableItemId : getRootParentId(focusedItemId);\n var hoveredItemId = focusedItemId === EMPTY_ID || isIdEmptyOrZeroLevel(this.hoveredItemId) && isIdEmptyOrZeroLevel(focusedItemId) ? this.hoveredItemId : EMPTY_ID;\n this.hoveredItemId = hoveredItemId;\n this.focusedItemId = focusedItemId;\n this.tabbableItemId = tabbableItemId;\n },\n setHoveredItemId: function setHoveredItemId(hoveredItemId) {\n if (isIdEmptyOrZeroLevel(hoveredItemId) && isIdEmptyOrZeroLevel(this.focusedItemId)) {\n this.hoveredItemId = hoveredItemId;\n } else {\n this.hoveredItemId = hoveredItemId;\n this.focusedItemId = EMPTY_ID;\n this.tabbableItemId = ZERO_LEVEL_ZERO_ITEM_ID;\n }\n },\n getMenuWrapperClassName: function getMenuWrapperClassName() {\n return {\n 'k-rtl': this.directionHolder.getIsDirectionRightToLeft()\n };\n },\n clearItemHoverAndLeaveRequestsIfApplicable: function clearItemHoverAndLeaveRequestsIfApplicable() {\n if (this.itemHoverRequest) {\n clearTimeout(this.itemHoverRequest);\n this.itemHoverRequest = null;\n }\n\n if (this.itemLeaveRequest) {\n clearTimeout(this.itemLeaveRequest);\n this.itemLeaveRequest = null;\n }\n },\n isItemWithDefaultClose: function isItemWithDefaultClose(itemId) {\n return !this.$props.customCloseItemIds || this.$props.customCloseItemIds.indexOf(itemId) === -1;\n },\n checkIsDirectionRightToLeft: function checkIsDirectionRightToLeft() {\n return this.$props.dir !== undefined ? this.$props.dir === 'rtl' : this.menuWrapperEl && getComputedStyle(this.menuWrapperEl).direction === 'rtl';\n },\n prepareItems: function prepareItems() {\n var _a = prepareInputItemsForInternalWork.call(this, this.$props.items),\n items = _a.items,\n inputItems = _a.inputItems;\n\n this.currentItems = items;\n this.inputItems = inputItems;\n },\n dispatchSelectEventIfWired: function dispatchSelectEventIfWired(event, itemId) {\n this.$emit('select', {\n event: event,\n compontent: this,\n item: this.getInputItem(itemId),\n itemId: itemId\n });\n }\n }\n};\nvar MenuVue3 = Menu;\nexport { Menu, MenuVue3 };","var _Draggable;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport KendoDraggable from '@telerik/kendo-draggable';\nimport { getDefaultSlots } from './defaultSlots';\n/**\n * Represents the default `Draggable` component.\n */\n\nvar Draggable = (_Draggable = {\n // @ts-ignore\n emits: {\n press: null,\n drag: null,\n release: null\n },\n inheritAttrs: false,\n created: function created() {\n this.element = null;\n this.draggable = new KendoDraggable({\n press: this.press,\n drag: this.drag,\n release: this.release\n });\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n mounted: function mounted() {\n if (this.$el) {\n this.element = this.$el.nodeType === 3 ? this.$el.nextElementSibling : this.$el;\n this.draggable.bindTo(this.element);\n }\n },\n destroyed: !!gh ? undefined : function () {\n this.draggable.destroy();\n },\n // @ts-ignore\n unmounted: function unmounted() {\n this.draggable.destroy();\n },\n methods: {\n press: function press(event) {\n if (this.element) {\n this.$emit('press', event, this.element);\n }\n },\n drag: function drag(event) {\n if (this.element) {\n this.$emit('drag', event, this.element);\n }\n },\n release: function release(event) {\n if (this.element) {\n this.$emit('release', event, this.element);\n }\n }\n }\n}, _defineProperty(_Draggable, \"setup\", !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n}), _defineProperty(_Draggable, \"render\", function render(createElement) {\n // @ts-ignore\n var h = gh || createElement;\n return getDefaultSlots(this);\n}), _Draggable);\nexport { Draggable };","import { parents, siblingContainer } from '@progress/kendo-popup-common';\n/**\n * @hidden\n */\n\nexport var eitherRect = function eitherRect(rect, offset) {\n if (!rect) {\n return {\n height: 0,\n left: offset.left,\n top: offset.top,\n width: 0\n };\n }\n\n return rect;\n};\n/**\n * @hidden\n */\n\nexport var replaceOffset = function replaceOffset(rect, offset) {\n if (!offset) {\n return rect;\n }\n\n var result = {\n height: rect.height,\n left: offset.left,\n top: offset.top,\n width: rect.width\n };\n return result;\n};\n/**\n * @hidden\n */\n\nexport var removeStackingOffset = function removeStackingOffset(rect, stackingOffset) {\n if (!stackingOffset) {\n return rect;\n }\n\n var result = {\n height: rect.height,\n left: rect.left - stackingOffset.left,\n top: rect.top - stackingOffset.top,\n width: rect.width\n };\n return result;\n};\n/**\n * @hidden\n */\n\nexport var isDifferentOffset = function isDifferentOffset(oldOffset, newOffset) {\n var oldLeft = oldOffset.left,\n oldTop = oldOffset.top;\n var newLeft = newOffset.left,\n newTop = newOffset.top;\n return Math.abs(oldLeft - newLeft) >= 1 || Math.abs(oldTop - newTop) >= 1;\n};\n/**\n * @hidden\n */\n\nexport var isDocumentAvailable = function isDocumentAvailable() {\n return typeof document !== 'undefined' && !!document.body;\n};\n/**\n * @hidden\n */\n\nexport var isWindowAvailable = function isWindowAvailable() {\n return typeof window !== 'undefined';\n};\n/**\n * @hidden\n */\n\nexport var hasBoundingRect = function hasBoundingRect(elem) {\n return !!elem.getBoundingClientRect;\n};\n/**\n * @hidden\n */\n\nexport var OVERFLOW_REGEXP = /auto|scroll/;\n/**\n * @hidden\n */\n\nvar overflowStyle = function overflowStyle(element) {\n var styles = window.getComputedStyle(element);\n return \"\" + styles.overflow + styles.overflowX + styles.overflowY;\n};\n/**\n * @hidden\n */\n\n\nexport var scrollableParents = function scrollableParents(element) {\n var parentElements = [];\n\n if (!isDocumentAvailable() || !isWindowAvailable()) {\n return parentElements;\n }\n\n var parent = element.parentElement;\n\n while (parent) {\n if (OVERFLOW_REGEXP.test(overflowStyle(parent))) {\n parentElements.push(parent);\n }\n\n parent = parent.parentElement;\n }\n\n parentElements.push(window);\n return parentElements;\n};\n/**\n * @hidden\n */\n\nexport var FRAME_DURATION = 1000 / 60; // 1000ms divided by 60fps\n\n/**\n * @hidden\n */\n\nexport var hasRelativeStackingContext = function hasRelativeStackingContext() {\n if (!isDocumentAvailable()) {\n return false;\n }\n\n var top = 10;\n var parent = document.createElement('div');\n parent.style.transform = 'matrix(10, 0, 0, 10, 0, 0)';\n parent.innerHTML = \"child
\";\n document.body.appendChild(parent);\n\n if (parent && parent.firstChild) {\n var firstChild = parent.firstChild;\n firstChild.style.position = 'fixed';\n firstChild.style.top = top + \"px\";\n }\n\n var isDifferent = parent.children[0].getBoundingClientRect().top !== top;\n document.body.removeChild(parent);\n return isDifferent;\n};\n/**\n * @hidden\n */\n\nexport var HAS_RELATIVE_STACKING_CONTEXT = hasRelativeStackingContext();\n/**\n * @hidden\n */\n\nexport var zIndex = function zIndex(anchor, container) {\n if (!anchor || !isDocumentAvailable() || !isWindowAvailable()) {\n return null;\n }\n\n var sibling = siblingContainer(anchor, container);\n\n if (!sibling) {\n return null;\n }\n\n var result = [anchor].concat(parents(anchor, sibling)).reduce(function (index, p) {\n var zIndexStyle = p.style.zIndex || window.getComputedStyle(p).zIndex;\n var current = parseInt(zIndexStyle, 10);\n return current > index ? current : index;\n }, 0);\n return result ? result + 1 : null;\n};\n/**\n * @hidden\n */\n\nexport var CollisionType = {\n fit: 'fit',\n flip: 'flip'\n};\n/**\n * @hidden\n */\n\nexport var AlignPoint = {\n left: 'left',\n center: 'center',\n right: 'right',\n bottom: 'bottom',\n top: 'top'\n};\n/**\n * @hidden\n */\n\nexport var throttle = function throttle(func, wait, options) {\n if (options === void 0) {\n options = {};\n }\n\n var timeout, context, args, result;\n var previous = 0;\n options = options || {};\n\n var later = function later() {\n previous = options.leading === false ? 0 : new Date().getTime();\n timeout = null;\n result = func.apply(context, args);\n\n if (!timeout) {\n context = args = null;\n }\n };\n\n var throttled = function throttled() {\n var now = new Date().getTime();\n\n if (!previous && options.leading === false) {\n previous = now;\n }\n\n var remaining = wait - (now - previous); // @ts-ignore\n\n context = this;\n args = arguments;\n\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n\n previous = now;\n result = func.apply(context, args);\n\n if (!timeout) {\n context = args = null;\n }\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n\n return result;\n };\n\n return throttled;\n};","import { eitherRect, removeStackingOffset } from '../util';\n/**\n * @hidden\n */\nvar AlignService = /** @class */ (function () {\n function AlignService(_dom) {\n this._dom = _dom;\n }\n AlignService.prototype.alignElement = function (settings) {\n var anchor = settings.anchor, element = settings.element, anchorAlign = settings.anchorAlign, elementAlign = settings.elementAlign, offset = settings.offset;\n var fixedMode = !this._dom.hasOffsetParent(element);\n var anchorRect = fixedMode ?\n this.absoluteRect(anchor, element, offset) :\n this.relativeRect(anchor, element, offset);\n return this._dom.align({\n anchorAlign: anchorAlign,\n anchorRect: anchorRect,\n elementAlign: elementAlign,\n elementRect: this._dom.offset(element)\n });\n };\n AlignService.prototype.absoluteRect = function (anchor, element, offset) {\n var dom = this._dom;\n var rect = eitherRect(dom.offset(anchor), offset);\n var stackingOffset = dom.stackingElementOffset(element);\n var removedOffset = removeStackingOffset(rect, stackingOffset);\n var stackingScroll = dom.stackingElementScroll(element);\n var withScroll = dom.addScroll(removedOffset, stackingScroll);\n var scrollPosition = this.elementScrollPosition(anchor, element);\n var result = dom.removeScroll(withScroll, scrollPosition);\n result.left += window.scrollX || window.pageXOffset;\n result.top += window.scrollY || window.pageYOffset;\n return result;\n };\n AlignService.prototype.elementScrollPosition = function (anchor, element) {\n return anchor ? { x: 0, y: 0 } : this._dom.scrollPosition(element);\n };\n AlignService.prototype.relativeRect = function (anchor, element, offset) {\n return eitherRect(this._dom.position(anchor, element), offset);\n };\n return AlignService;\n}());\nexport { AlignService };\n","import { align, applyLocationOffset, boundingOffset, getWindowViewPort, isBodyOffset, offset, positionWithScroll, restrictToView, addScroll, removeScroll, scrollPosition, siblingContainer } from '@progress/kendo-popup-common';\nimport { isDocumentAvailable, isWindowAvailable, HAS_RELATIVE_STACKING_CONTEXT, scrollableParents, zIndex } from '../util';\n/**\n * @hidden\n */\nvar DOMService = /** @class */ (function () {\n function DOMService() {\n }\n DOMService.prototype.addOffset = function (current, addition) {\n return {\n left: current.left + addition.left,\n top: current.top + addition.top\n };\n };\n DOMService.prototype.align = function (settings) {\n return align(settings);\n };\n DOMService.prototype.boundingOffset = function (el) {\n return boundingOffset(el);\n };\n DOMService.prototype.getWindow = function () {\n return isWindowAvailable() ? window : null;\n };\n DOMService.prototype.isBodyOffset = function (el) {\n return isBodyOffset(el);\n };\n DOMService.prototype.hasOffsetParent = function (el) {\n if (!el) {\n return false;\n }\n var offsetParentEl = el.offsetParent;\n return offsetParentEl &&\n !(offsetParentEl.nodeName === 'BODY' &&\n window.getComputedStyle(offsetParentEl).position === 'static');\n };\n DOMService.prototype.offset = function (el) {\n if (!el) {\n return null;\n }\n return offset(el);\n };\n DOMService.prototype.staticOffset = function (element) {\n if (!element) {\n return null;\n }\n var _a = element.style, left = _a.left, top = _a.top;\n element.style.left = '0px';\n element.style.top = '0px';\n var currentOffset = offset(element);\n element.style.left = left;\n element.style.top = top;\n return currentOffset;\n };\n DOMService.prototype.position = function (element, popup) {\n if (!element || !popup) {\n return null;\n }\n var parentSibling = siblingContainer(element, popup);\n return positionWithScroll(element, parentSibling);\n };\n DOMService.prototype.relativeOffset = function (el, currentLocation) {\n return applyLocationOffset(this.offset(el), currentLocation, this.isBodyOffset(el));\n };\n DOMService.prototype.addScroll = function (rect, scroll) {\n return addScroll(rect, scroll);\n };\n DOMService.prototype.removeScroll = function (rect, scroll) {\n return removeScroll(rect, scroll);\n };\n DOMService.prototype.restrictToView = function (settings) {\n return restrictToView(settings);\n };\n DOMService.prototype.scrollPosition = function (el) {\n return scrollPosition(el);\n };\n DOMService.prototype.scrollableParents = function (el) {\n return scrollableParents(el);\n };\n DOMService.prototype.stackingElementOffset = function (el) {\n var relativeContextElement = this.getRelativeContextElement(el);\n if (!relativeContextElement) {\n return null;\n }\n return offset(relativeContextElement);\n };\n DOMService.prototype.stackingElementScroll = function (el) {\n var relativeContextElement = this.getRelativeContextElement(el);\n if (!relativeContextElement) {\n return { x: 0, y: 0 };\n }\n return {\n x: relativeContextElement.scrollLeft,\n y: relativeContextElement.scrollTop\n };\n };\n DOMService.prototype.stackingElementViewPort = function (el) {\n var relativeContextElement = this.getRelativeContextElement(el);\n if (!relativeContextElement) {\n return null;\n }\n return {\n height: relativeContextElement.scrollHeight,\n width: relativeContextElement.scrollWidth\n };\n };\n DOMService.prototype.getRelativeContextElement = function (el) {\n if (!el || !HAS_RELATIVE_STACKING_CONTEXT) {\n return null;\n }\n var parent = el.parentElement;\n while (parent) {\n if (window.getComputedStyle(parent).transform !== 'none') {\n return parent;\n }\n parent = parent.parentElement;\n }\n return null;\n };\n DOMService.prototype.useRelativePosition = function (el) {\n return !!this.getRelativeContextElement(el);\n };\n DOMService.prototype.windowViewPort = function (el) {\n return getWindowViewPort(el);\n };\n DOMService.prototype.zIndex = function (anchor, container) {\n return zIndex(anchor, container);\n };\n DOMService.prototype.zoomLevel = function () {\n if (!isDocumentAvailable() || !isWindowAvailable()) {\n return 1;\n }\n return parseFloat((document.documentElement.clientWidth / window.innerWidth).toFixed(2));\n };\n DOMService.prototype.isZoomed = function () {\n return this.zoomLevel() > 1;\n };\n return DOMService;\n}());\nexport { DOMService };\n","import { eitherRect, replaceOffset } from '../util';\n/**\n * @hidden\n */\nvar PositionService = /** @class */ (function () {\n function PositionService(_dom) {\n this._dom = _dom;\n }\n PositionService.prototype.positionElement = function (settings) {\n var anchor = settings.anchor, currentLocation = settings.currentLocation, element = settings.element, anchorAlign = settings.anchorAlign, elementAlign = settings.elementAlign, collisions = settings.collisions;\n var dom = this._dom;\n var viewPort = settings.viewPort || dom.stackingElementViewPort(element) || dom.windowViewPort(element);\n var anchorRect = eitherRect(dom.offset(anchor), currentLocation);\n var initialElementRect = replaceOffset(dom.staticOffset(element), currentLocation);\n var elementRect = this.elementRect(element, initialElementRect);\n var result = dom.restrictToView({\n anchorAlign: anchorAlign,\n anchorRect: anchorRect,\n collisions: collisions,\n elementAlign: elementAlign,\n elementRect: elementRect,\n viewPort: viewPort\n });\n return {\n flipped: result.flipped,\n offset: dom.addOffset(initialElementRect, result.offset)\n };\n };\n PositionService.prototype.elementRect = function (element, rect) {\n return this._dom.removeScroll(rect, this._dom.scrollPosition(element));\n };\n return PositionService;\n}());\nexport { PositionService };\n","/**\n * @hidden\n */\nvar canUseDOM = Boolean(\n// from fbjs\ntypeof window !== 'undefined' &&\n window.document &&\n window.document.createElement);\nexport { canUseDOM };\n","/**\n * @hidden\n */\nexport function getDefaultSlots(component) {\n var defaultSlots = component.$slots.default;\n return (component.v3 && defaultSlots && typeof defaultSlots === 'function') ? defaultSlots() : defaultSlots;\n}\n","import { FIELD_REGEX } from './constants';\nvar getterCache = {};\ngetterCache.undefined = function () { return undefined; };\n/**\n * @hidden\n */\nexport function getter(field) {\n if (getterCache[field]) {\n return getterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n getterCache[field] = function (obj) {\n var result = obj;\n for (var idx = 0; idx < fields.length && result; idx++) {\n result = result[fields[idx]];\n }\n return result;\n };\n return getterCache[field];\n}\n","import { FIELD_REGEX } from './constants';\nvar setterCache = {};\nsetterCache.undefined = function (obj) { return obj; };\n/**\n * @hidden\n */\nexport function setter(field) {\n if (setterCache[field]) {\n return setterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n setterCache[field] = function (obj, value) {\n var root = obj;\n var depth = fields.length - 1;\n for (var idx = 0; idx < depth && root; idx++) {\n root = root[fields[idx]] = root[fields[idx]] || {};\n }\n root[fields[depth]] = value;\n };\n return setterCache[field];\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\n/**\n * @hidden\n */\nexport function templateRendering(template, listeners) {\n if (!template) {\n return undefined;\n }\n var scopedSlot = gh ?\n this.$slots[template] ||\n (template.toLowerCase ? this.$slots[template.toLowerCase()]\n : null) :\n this.$scopedSlots[template] ||\n (template.toLowerCase ? this.$scopedSlots[template.toLowerCase()]\n : null);\n // @ts-ignore\n if (typeof template === 'string' && scopedSlot) {\n // @ts-ignore\n return { type: 'slot', render: scopedSlot, listeners: listeners };\n }\n if (typeof template === 'string' || typeof template === 'object' ||\n (typeof template === 'function' && template.component)) {\n return { type: 'component', render: template, listeners: listeners };\n }\n return { type: 'renderFunction', render: template, listeners: listeners };\n}\n/**\n * @hidden\n */\nexport function getTemplate(_a) {\n var h = _a.h, template = _a.template, defaultRendering = _a.defaultRendering, defaultSlots = _a.defaultSlots, additionalProps = _a.additionalProps, additionalListeners = _a.additionalListeners, swapDefaultSlots = _a.swapDefaultSlots;\n if (!template) {\n return defaultRendering;\n }\n var events;\n var props;\n var componentOptions;\n if (gh) {\n var passedProps = defaultRendering ? defaultRendering.props : {};\n events = __assign(__assign({}, transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, passedProps), additionalProps), events);\n componentOptions = __assign(__assign({}, props), events);\n }\n else {\n var hasComponentOptions = defaultRendering && defaultRendering.componentOptions;\n var defaultListeners = hasComponentOptions ?\n defaultRendering.componentOptions.listeners : {};\n var defaultProps = hasComponentOptions ?\n defaultRendering.componentOptions.propsData : {};\n events = __assign(__assign(__assign(__assign({}, defaultListeners), additionalListeners), transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, defaultProps), additionalProps), events);\n componentOptions = { props: props, on: events };\n }\n if (template.type === 'slot') {\n var slotTemplate = template.render({ props: props, listeners: events, methods: events,\n defaultSlots: defaultSlots });\n return slotTemplate ? slotTemplate[0] : undefined;\n }\n else if (template.type === 'renderFunction') {\n if (swapDefaultSlots) {\n return template.render(h, defaultRendering, defaultSlots, props, events);\n }\n return template.render(h, defaultRendering, props, events, defaultSlots);\n }\n else {\n return h(template.render, componentOptions, gh ? function () { return [defaultSlots]; } : [defaultSlots]);\n }\n}\n/**\n * @hidden\n */\nexport function transformListeners(listeners) {\n if (!listeners) {\n return listeners;\n }\n var newListeners = {};\n var listenersKeys = Object.keys(listeners);\n for (var i = 0; i < listenersKeys.length; i++) {\n var currentKey = listenersKeys[i];\n newListeners['on' + currentKey.charAt(0).toUpperCase() + currentKey.slice(1)] =\n listeners[currentKey];\n }\n return newListeners;\n}\n","import * as licensing from '@progress/kendo-licensing';\n/**\n * @hidden\n */\nexport function validatePackage(packageMetadata) {\n if (typeof licensing !== 'undefined') {\n licensing.validatePackage(packageMetadata);\n }\n else {\n var message = \"License activation failed for \" + packageMetadata.name + \"\\n\";\n message += 'The @progress/kendo-licensing script is not loaded.\\n';\n message += \"See \" + packageMetadata.licensingDocsUrl + \" for more information.\\n\";\n console.warn(message);\n }\n}\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-vue-popup',\n productName: 'Kendo UI for Vue',\n productCodes: ['KENDOUIVUE', 'KENDOUICOMPLETE'],\n publishDate: 1641561009,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning'\n};\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { Slide } from '@progress/kendo-vue-animation';\nimport { CollisionType, AlignPoint, throttle, FRAME_DURATION, isWindowAvailable } from './util';\nimport { AlignService } from './services/alignService';\nimport { DOMService } from './services/domService';\nimport { PositionService } from './services/positionService';\nimport { canUseDOM, getDefaultSlots, validatePackage } from '@progress/kendo-vue-common';\nimport { packageMetadata } from './package-metadata';\nvar DEFAULT_OFFSET = {\n left: -1000,\n top: 0\n};\nvar ANIMATION_CONTAINER = 'k-animation-container';\nvar ANIMATION_CONTAINER_SHOWN = 'k-animation-container-shown';\nvar K_POPUP = 'k-popup';\n/**\n * Represents the default `Animation` component.\n */\n\nvar Popup = {\n name: 'Popup',\n props: {\n appendTo: {\n type: String,\n default: ''\n },\n anchor: {\n type: String,\n default: ''\n },\n className: String,\n id: String,\n popupClass: String,\n collision: {\n type: Object,\n default: function _default() {\n return {\n horizontal: CollisionType.fit,\n vertical: CollisionType.flip\n };\n }\n },\n anchorAlign: {\n type: Object,\n default: function _default() {\n return {\n horizontal: AlignPoint.left,\n vertical: AlignPoint.bottom\n };\n }\n },\n popupAlign: {\n type: Object,\n default: function _default() {\n return {\n horizontal: AlignPoint.left,\n vertical: AlignPoint.top\n };\n }\n },\n offset: {\n type: Object,\n default: function _default() {\n return DEFAULT_OFFSET;\n }\n },\n show: {\n type: Boolean,\n default: false\n },\n animate: {\n type: [Boolean, Object],\n default: function _default() {\n return true;\n }\n },\n direction: {\n type: String,\n default: 'down'\n },\n transition: {\n type: String,\n default: 'expand'\n }\n },\n data: function data() {\n return {\n hasMounted: false\n };\n },\n created: function created() {\n validatePackage(packageMetadata);\n this.mountedAppendTo = undefined;\n this.mountedAnchor = undefined;\n this._initiallyMountedContent = undefined;\n this._flipped = false;\n this._offsetTop = 0;\n this._offsetLeft = -1000;\n this._exitingAnimation = false;\n this._prevShow = false;\n this._prevShow = this.$props.show;\n this._domService = new DOMService();\n this._alignService = new AlignService(this._domService);\n this._positionService = new PositionService(this._domService);\n this.reposition = throttle(this.reposition.bind(this), FRAME_DURATION);\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n mounted: function mounted() {\n if (canUseDOM) {\n this.mountedAppendTo = this.$props.appendTo ? this.getParentRef(this.$props.appendTo) : document.body;\n this.mountedAnchor = this.$props.anchor ? this.getParentRef(this.$props.anchor) : document.body;\n }\n\n this._parentElement = this.$el.parentElement;\n this._initiallyMountedContent = this.$el.cloneNode(true);\n this.hasMounted = true;\n this.mountedAppendTo.appendChild(this.$el);\n },\n updated: function updated() {\n this._prevShow = this.$props.show;\n },\n destroyed: !!gh ? undefined : function () {\n this.detachRepositionHandlers();\n },\n beforeDestroy: !!gh ? undefined : function () {\n if (this._parentElement) {\n this._parentElement.appendChild(this.$el);\n }\n },\n // @ts-ignore\n unmounted: function unmounted() {\n this.detachRepositionHandlers();\n },\n // @ts-ignore\n beforeUnmount: function beforeUnmount() {\n if (this._parentElement) {\n this._parentElement.appendChild(this.$el);\n }\n },\n methods: {\n onOpened: function onOpened() {\n var element = this.$el;\n\n if (this.$props.show) {\n element.classList.add(ANIMATION_CONTAINER_SHOWN);\n }\n\n this.attachRepositionHandlers(element);\n this.$emit('open', {\n target: this\n });\n },\n onClosing: function onClosing() {\n if (!this.$props.show) {\n var element = this.$el;\n element.classList.remove(ANIMATION_CONTAINER_SHOWN);\n }\n\n this.detachRepositionHandlers();\n },\n onClosed: function onClosed() {\n if (this._exitingAnimation) {\n this._exitingAnimation = false;\n this.$forceUpdate();\n }\n\n this.$emit('close', {\n target: this\n });\n },\n transitionDuration: function transitionDuration() {\n var animate = this.$props.animate;\n var transitionEnterDuration = 0;\n var transitionExitDuration = 0;\n\n if (animate) {\n if (animate === true) {\n // Inherit the default duration of the Animation component.\n transitionEnterDuration = transitionExitDuration = undefined;\n } else {\n transitionEnterDuration = animate.openDuration;\n transitionExitDuration = animate.closeDuration;\n }\n }\n\n return {\n transitionEnterDuration: transitionEnterDuration,\n transitionExitDuration: transitionExitDuration\n };\n },\n getParentRef: function getParentRef(anchor) {\n // @ts-ignore\n var parent = this.$parent;\n\n while (!parent.$refs[anchor]) {\n // @ts-ignore\n if (parent && parent.kendoAnchorRef) {\n // @ts-ignore\n return parent.kendoAnchorRef;\n } // @ts-ignore\n\n\n parent = parent.$parent;\n\n if (!parent && canUseDOM) {\n return document.body;\n }\n } // @ts-ignore\n\n\n return parent.$refs[anchor].$el || parent.$refs[anchor];\n },\n position: function position(settings, element, anchor) {\n var anchorAlign = settings.anchorAlign,\n popupAlign = settings.popupAlign,\n collision = settings.collision,\n offset = settings.offset;\n var anchorElement = anchor ? this.v3 ? this.mountedAnchor : this.getParentRef(anchor) : document.body;\n\n var alignedOffset = this._alignService.alignElement({\n anchor: anchor ? anchorElement : undefined,\n element: element,\n elementAlign: popupAlign,\n anchorAlign: anchorAlign,\n offset: offset\n });\n\n var result = this._positionService.positionElement({\n anchor: anchorElement,\n anchorAlign: anchorAlign,\n collisions: collision,\n element: element,\n currentLocation: alignedOffset,\n elementAlign: popupAlign\n });\n\n return result;\n },\n calculatePosition: function calculatePosition($props, appendToElement) {\n if (!appendToElement || !isWindowAvailable() || !canUseDOM) {\n return {\n flipped: false,\n offset: $props.offset\n };\n }\n\n var defaultSlot = getDefaultSlots(this);\n var root = document.createElement('div');\n var contentElement = this.$el && this.$el.firstChild ? this.$el.firstChild.firstChild ? this.$el.firstChild.firstChild.cloneNode(true) : null : null;\n var divWrapper = contentElement && contentElement.getBoundingClientRect ? contentElement : this._initiallyMountedContent;\n\n if (divWrapper) {\n root.appendChild(divWrapper);\n } else {\n // @ts-ignore\n var internalClass = this.v3 ? defaultSlot && defaultSlot[0].props ? defaultSlot[0].props.class : '' : defaultSlot && defaultSlot[0].data ? defaultSlot[0].data.staticClass : ''; // @ts-ignore\n\n var domClass = this.v3 ? this.$props.popupClass ? this.$props.popupClass : '' : defaultSlot && defaultSlot[0].data ? defaultSlot[0].data.class : '';\n root.innerHTML = \"\\t\\n \\t\\n
\";\n }\n\n appendToElement.appendChild(root);\n\n if (root && root.firstChild) {\n var firstChild = root.firstChild;\n firstChild.style.position = 'absolute';\n firstChild.style.visibility = 'hidden';\n firstChild.style.display = 'block';\n firstChild.style.left = '-1000';\n firstChild.style.top = '0';\n var inlineStyles = this.v3 ? defaultSlot && defaultSlot[0].props ? defaultSlot[0].props.style : {} : defaultSlot[0].data ? defaultSlot[0].data.style : {};\n\n if (inlineStyles) {\n for (var _i = 0, _a = Object.entries(inlineStyles); _i < _a.length; _i++) {\n var _b = _a[_i],\n key = _b[0],\n value = _b[1];\n firstChild.style[key] = value;\n }\n }\n }\n\n var newPosition = this.position($props, root.firstChild, this.$props.anchor);\n root.parentNode.removeChild(root);\n return newPosition;\n },\n attachRepositionHandlers: function attachRepositionHandlers(element) {\n var _this = this;\n\n this.detachRepositionHandlers();\n this._scrollableParents = this._domService.scrollableParents(this.$props.anchor ? this.mountedAnchor : element);\n\n this._scrollableParents.map(function (p) {\n return p.addEventListener('scroll', _this.reposition);\n });\n\n window.addEventListener('resize', this.reposition);\n },\n detachRepositionHandlers: function detachRepositionHandlers() {\n var _this = this;\n\n if (this._scrollableParents) {\n this._scrollableParents.map(function (p) {\n return p.removeEventListener('scroll', _this.reposition);\n });\n\n this._scrollableParents = undefined;\n }\n\n window.removeEventListener('resize', this.reposition);\n },\n reposition: function reposition() {\n this.$forceUpdate();\n }\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n className = _a.className,\n popupClass = _a.popupClass,\n show = _a.show,\n id = _a.id;\n var defaultSlots = getDefaultSlots(this);\n var defaultSlot = this.v3 ? defaultSlots : show ? defaultSlots : null;\n var defaultAppentTo = isWindowAvailable() ? this.$props.appendTo ? this.mountedAppendTo || this.getParentRef(this.$props.appendTo) : document.body : undefined;\n\n if (this.$props.show) {\n var newPosition = this.calculatePosition(this.$props, defaultAppentTo);\n this._offsetLeft = newPosition.offset.left;\n this._offsetTop = newPosition.offset.top;\n this._flipped = !!newPosition.flipped;\n }\n\n var direction = this._flipped ? 'up' : 'down';\n\n var _b = this.transitionDuration(),\n transitionEnterDuration = _b.transitionEnterDuration,\n transitionExitDuration = _b.transitionExitDuration;\n\n this._exitingAnimation = this._exitingAnimation || this._prevShow && !show;\n\n if (!this.hasMounted) {\n return h(\"div\", {\n style: {\n display: 'none'\n },\n \"class\": className\n }, [h(\"div\", {\n \"class\": [popupClass, K_POPUP]\n }, [defaultSlots])]);\n }\n\n if (show || this._exitingAnimation && defaultAppentTo) {\n var popup = // @ts-ignore function children\n h(Slide, {\n id: id,\n attrs: this.v3 ? undefined : {\n id: id,\n componentChildClassName: [popupClass, K_POPUP],\n className: className,\n direction: direction,\n transitionEnterDuration: transitionEnterDuration,\n transitionExitDuration: transitionExitDuration,\n appear: show\n },\n componentChildClassName: [popupClass, K_POPUP],\n className: className,\n onEntered: this.onOpened,\n on: this.v3 ? undefined : {\n \"entered\": this.onOpened,\n \"exiting\": this.onClosing,\n \"exited\": this.onClosed\n },\n onExiting: this.onClosing,\n onExited: this.onClosed,\n direction: direction,\n style: {\n position: 'absolute',\n top: this._offsetTop + 'px',\n left: this._offsetLeft + 'px'\n },\n transitionEnterDuration: transitionEnterDuration,\n transitionExitDuration: transitionExitDuration,\n appear: show\n }, this.v3 ? function () {\n return [defaultSlot];\n } : [defaultSlot]);\n return popup;\n }\n\n return null;\n }\n};\nvar PopupVue3 = Popup;\nexport { Popup, PopupVue3 };","/**\n * @hidden\n */\nexport var isObject = function (value) {\n return typeof value === 'object';\n};\n","import { isObject } from './isObject';\n/**\n * @hidden\n */\nexport var classNames = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return args\n .filter(function (arg) { return arg !== true && !!arg; })\n .map(function (arg) {\n return Array.isArray(arg)\n ? classNames.apply(void 0, arg) : isObject(arg)\n ? Object\n .keys(arg)\n .map(function (key, idx) { return arg[idx] || (arg[key] && key) || null; })\n .filter(function (el) { return el !== null; })\n .join(' ')\n : arg;\n })\n .filter(function (arg) { return !!arg; })\n .join(' ');\n};\n","/* tslint:disable:no-bitwise */\n/**\n * @hidden\n */\nvar guid = function () {\n var id = '';\n var i;\n var random;\n for (i = 0; i < 32; i++) {\n random = Math.random() * 16 | 0;\n if (i === 8 || i === 12 || i === 16 || i === 20) {\n id += '-';\n }\n id += (i === 12 ? 4 : (i === 16 ? (random & 3 | 8) : random)).toString(16);\n }\n return id;\n};\nexport { guid };\n","/**\n * @hidden\n */\nvar canUseDOM = Boolean(\n// from fbjs\ntypeof window !== 'undefined' &&\n window.document &&\n window.document.createElement);\nexport { canUseDOM };\n","/**\n * @hidden\n */\nexport function getRef(comp, refName, customRef) {\n return comp.v3 ? comp[\"\".concat(refName, \"Ref\")] : comp.$refs[\"\".concat(customRef || refName)];\n}\n/**\n * @hidden\n */\nexport function setRef(comp, refName, customRef) {\n return (comp.v3 ? function (el) {\n comp[\"\".concat(refName, \"Ref\")] = el;\n } : customRef || refName);\n}\n","import { Keys } from './keys';\nvar FOCUSABLE_SELECTOR = 'input, [tabindex]:not([tabindex=\"-1\"])';\n/**\n * @hidden\n */\nexport var firstFocusableChild = function (element) {\n if (element) {\n // should focus wrapper if it's focusable in future versions\n var elements = element.querySelectorAll(FOCUSABLE_SELECTOR);\n if (elements.length && elements[0].focus) {\n return elements[0];\n }\n }\n return undefined;\n};\n/**\n * @hidden\n */\nexport var lastFocusableChild = function (element) {\n if (element) {\n // should focus wrapper if it's focusable in future versions\n var elements = element.querySelectorAll(FOCUSABLE_SELECTOR);\n if (elements.length && elements[elements.length - 1].focus) {\n return elements[elements.length - 1];\n }\n }\n return undefined;\n};\n/**\n * @hidden\n */\nexport var focusFirstFocusableChild = function (element) {\n if (element) {\n // should focus wrapper if it's focusable in future versions\n var elements = element.querySelectorAll(FOCUSABLE_SELECTOR);\n if (elements.length && elements[0].focus) {\n elements[0].focus();\n }\n }\n};\n/**\n * @hidden\n */\nexport var focusLastFocusableChild = function (element) {\n if (element) {\n // should focus wrapper if it's focusable in future versions\n var elements = element.querySelectorAll(FOCUSABLE_SELECTOR);\n if (elements.length && elements[elements.length - 1].focus) {\n elements[elements.length - 1].focus();\n }\n }\n};\n/**\n * @hidden\n */\nexport var focusContainer = function (e, containerElement) {\n var focusState = true;\n if (e.keyCode !== Keys.enter && e.target === containerElement) {\n return false;\n }\n if (e.keyCode === Keys.enter && e.target === containerElement) {\n focusState = true;\n setTimeout(function () {\n focusFirstFocusableChild(containerElement);\n }, 1);\n }\n else if (e.keyCode === Keys.esc) {\n focusState = false;\n containerElement.focus();\n }\n else if (e.keyCode === Keys.tab) {\n var firstChild = firstFocusableChild(containerElement);\n var lastChild = lastFocusableChild(containerElement);\n if (lastChild && !e.shiftKey && e.target === lastChild) {\n e.preventDefault();\n firstChild.focus();\n }\n if (firstChild && e.shiftKey && e.target === firstChild) {\n e.preventDefault();\n lastChild.focus();\n }\n }\n return focusState;\n};\n","var _DraggableVue;\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return (typeof key === \"undefined\" ? \"undefined\" : _typeof(key)) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if ((typeof input === \"undefined\" ? \"undefined\" : _typeof(input)) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if ((typeof res === \"undefined\" ? \"undefined\" : _typeof(res)) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport * as d from '@progress/kendo-draggable';\nimport { getDefaultSlots } from './defaultSlots';\n/**\n * @hidden\n */\nvar DraggableVue2 = (_DraggableVue = {\n // @ts-ignore\n emits: {\n press: null,\n drag: null,\n release: null\n },\n inheritAttrs: false,\n created: function created() {\n this.element = null;\n var draggable = d;\n var dp = typeof draggable !== 'undefined' && draggable.Draggable ? draggable : draggable.default;\n this.draggable = new dp.Draggable({\n press: this.press,\n drag: this.drag,\n release: this.release\n });\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n mounted: function mounted() {\n if (this.$el) {\n this.element = this.$el.nodeType === 3 ? this.$el.nextElementSibling : this.$el;\n this.draggable.bindTo(this.element);\n }\n },\n destroyed: !!isV3 ? undefined : function () {\n this.draggable.destroy();\n },\n // @ts-ignore\n unmounted: function unmounted() {\n this.draggable.destroy();\n },\n methods: {\n press: function press(event) {\n if (this.element) {\n this.$emit('press', event, this.element);\n }\n },\n drag: function drag(event) {\n if (this.element) {\n this.$emit('drag', event, this.element);\n }\n },\n release: function release(event) {\n if (this.element) {\n this.$emit('release', event, this.element);\n }\n }\n }\n}, _defineProperty(_DraggableVue, \"setup\", !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n}), _defineProperty(_DraggableVue, \"render\", function render(createElement) {\n // @ts-ignore\n var h = gh || createElement;\n return getDefaultSlots(this);\n}), _DraggableVue);\n/**\n * @hidden\n */\nvar Draggable = DraggableVue2;\nexport { Draggable, DraggableVue2 };","/**\n * @hidden\n */\nexport function getDefaultSlots(component) {\n var defaultSlots = component.$slots.default;\n return (component.v3 && defaultSlots && typeof defaultSlots === 'function') ? defaultSlots() : defaultSlots;\n}\n","import { FIELD_REGEX } from './constants/main';\nvar getterCache = {};\ngetterCache.undefined = function () { return undefined; };\n/**\n * @hidden\n */\nexport function getter(field) {\n if (getterCache[field]) {\n return getterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n getterCache[field] = function (obj) {\n var result = obj;\n for (var idx = 0; idx < fields.length && result; idx++) {\n result = result[fields[idx]];\n }\n return result;\n };\n return getterCache[field];\n}\n","import { FIELD_REGEX } from './constants/main';\nvar setterCache = {};\nsetterCache.undefined = function (obj) { return obj; };\n/**\n * @hidden\n */\nexport function setter(field) {\n if (setterCache[field]) {\n return setterCache[field];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n setterCache[field] = function (obj, value) {\n var root = obj;\n var depth = fields.length - 1;\n for (var idx = 0; idx < depth && root; idx++) {\n root = root[fields[idx]] = root[fields[idx]] || {};\n }\n root[fields[depth]] = value;\n };\n return setterCache[field];\n}\n","/**\n * @hidden\n */\nexport function hasListener(eventName) {\n if (this.v3) {\n return Object.keys(this.$attrs).map(function (name) { return name.toLowerCase(); })\n .some(function (event) { return event.endsWith(eventName.toLowerCase()); });\n }\n else {\n return this.$listeners[eventName];\n }\n}\n/**\n * @hidden\n */\nexport function getListeners() {\n if (this.v3) {\n var listeners = {};\n for (var key in (this.$attrs)) {\n if (key.startsWith('on')) {\n listeners[key] = this.$attrs[key];\n }\n }\n return listeners;\n }\n else {\n return this.$listeners;\n }\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nimport { isObject } from './isObject';\nvar allVue = Vue;\nvar isV3 = allVue.version && allVue.version[0] === '3';\n/**\n * @hidden\n */\nexport var templateDefinition = {\n type: [String, Function, Object, Boolean],\n default: function () {\n return undefined;\n }\n};\n/**\n * @hidden\n */\nexport function templateRendering(template, listeners) {\n if (!template && template !== false) {\n return undefined;\n }\n if (template.kt) {\n return template;\n }\n var scopedSlot = isV3 ?\n this.$slots[template] ||\n (template.toLowerCase ? this.$slots[template.toLowerCase()]\n : null) :\n this.$scopedSlots[template] ||\n (template.toLowerCase ? this.$scopedSlots[template.toLowerCase()]\n : null);\n if (typeof template === 'string' && scopedSlot) {\n return { kt: true, type: 'slot', render: scopedSlot, listeners: listeners };\n }\n if (typeof template === 'string' || isObject(template) ||\n (typeof template === 'function' && template.component)) {\n return { kt: true, type: 'component', render: template, listeners: listeners };\n }\n return { kt: true, type: 'renderFunction', render: template, listeners: listeners };\n}\n/**\n * @hidden\n */\nexport function getTemplate(_a) {\n var h = _a.h, template = _a.template, defaultRendering = _a.defaultRendering, defaultSlots = _a.defaultSlots, additionalProps = _a.additionalProps, additionalListeners = _a.additionalListeners, swapDefaultSlots = _a.swapDefaultSlots;\n if (!template || (template && template.render === true)) {\n return defaultRendering;\n }\n var events;\n var props;\n var componentOptions;\n if (isV3) {\n var passedProps = defaultRendering ? defaultRendering.props : {};\n events = __assign(__assign({}, transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, passedProps), additionalProps), events);\n componentOptions = __assign(__assign({}, props), events);\n }\n else {\n var hasComponentOptions = defaultRendering && defaultRendering.componentOptions;\n var defaultListeners = hasComponentOptions ?\n defaultRendering.componentOptions.listeners : {};\n var defaultProps = hasComponentOptions ?\n defaultRendering.componentOptions.propsData : {};\n events = __assign(__assign(__assign(__assign({}, defaultListeners), additionalListeners), transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign(__assign({}, defaultProps), additionalProps), events);\n componentOptions = { props: props, on: events };\n }\n if (template.type === 'slot') {\n var slotTemplate = template.render({ props: props, listeners: events, methods: events,\n defaultSlots: defaultSlots });\n return isV3\n ? slotTemplate\n : slotTemplate ? slotTemplate[0] : undefined;\n }\n else if (template.type === 'renderFunction') {\n if (swapDefaultSlots) {\n return template.render ? template.render(h, defaultRendering, defaultSlots, props, events) : undefined;\n }\n return template.render ? template.render(h, defaultRendering, props, events, defaultSlots) : undefined;\n }\n else {\n return h(template.render, componentOptions, isV3 ? function () { return [defaultSlots]; } : [defaultSlots]);\n }\n}\n/**\n * @hidden\n */\nexport function transformListeners(listeners) {\n if (!listeners) {\n return listeners;\n }\n var newListeners = {};\n var listenersKeys = Object.keys(listeners);\n for (var i = 0; i < listenersKeys.length; i++) {\n var currentKey = listenersKeys[i];\n newListeners['on' + currentKey.charAt(0).toUpperCase() + currentKey.slice(1)] =\n listeners[currentKey];\n }\n return newListeners;\n}\n","import * as l from '@progress/kendo-licensing';\n/**\n * @hidden\n */\nexport function validatePackage(packageMetadata) {\n var licensing = l;\n var ls = typeof licensing !== 'undefined' && licensing.validatePackage\n ? licensing\n : licensing.default;\n if (ls && ls.validatePackage) {\n ls.validatePackage(packageMetadata);\n }\n else {\n var message = \"License activation failed for \".concat(packageMetadata.name, \"\\n\");\n message += 'The @progress/kendo-licensing script is not loaded.\\n';\n message += \"See \".concat(packageMetadata.licensingDocsUrl, \" for more information.\\n\");\n console.warn(message);\n }\n}\n","/**\n * @hidden\n */\nvar getDocument = function () { return typeof document !== 'undefined' ? document : {}; };\n/**\n * @hidden\n */\nvar BrowserSupportService = /** @class */ (function () {\n function BrowserSupportService() {\n }\n Object.defineProperty(BrowserSupportService.prototype, \"scrollbarWidth\", {\n get: function () {\n var document = getDocument();\n if (!this.scrollbar && document && document.createElement) {\n var div = document.createElement('div');\n div.style.cssText = 'overflow:scroll;overflow-x:hidden;zoom:1;clear:both;display:block';\n div.innerHTML = ' ';\n document.body.appendChild(div);\n this.scrollbar = div.offsetWidth - div.scrollWidth;\n document.body.removeChild(div);\n }\n return this.scrollbar;\n },\n enumerable: false,\n configurable: true\n });\n return BrowserSupportService;\n}());\nexport { BrowserSupportService };\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { SIZE_CLASSES } from './constants';\n/**\n * @hidden\n */\nvar FontIconVue2 = {\n name: 'KendoFontIcon',\n // @ts-ignore\n emits: {\n click: null\n },\n props: {\n name: String,\n themeColor: {\n type: String\n },\n size: {\n type: String\n },\n flip: {\n type: String\n },\n id: String,\n ariaLabel: String,\n title: String,\n tabIndex: Number\n },\n computed: {\n fontClassNames: function fontClassNames() {\n var _a;\n var _b = this.$props,\n name = _b.name,\n flip = _b.flip,\n size = _b.size,\n themeColor = _b.themeColor;\n return _a = {\n 'k-icon': true\n }, _a['k-i-' + name] = name, _a['k-color-' + themeColor] = themeColor, _a['k-flip-h'] = flip === 'horizontal' || flip === 'both', _a['k-flip-v'] = flip === 'vertical' || flip === 'both', _a[SIZE_CLASSES[size]] = size, _a;\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n id = _a.id,\n title = _a.title,\n tabIndex = _a.tabIndex,\n ariaLabel = _a.ariaLabel;\n return h(\"span\", {\n \"class\": this.fontClassNames,\n id: id,\n attrs: this.v3 ? undefined : {\n id: id,\n title: title,\n \"aria-label\": ariaLabel,\n tabIndex: tabIndex,\n role: \"presentation\"\n },\n title: title,\n \"aria-label\": ariaLabel,\n tabIndex: tabIndex,\n role: \"presentation\",\n onClick: this.handleClick,\n on: this.v3 ? undefined : {\n \"click\": this.handleClick\n }\n });\n },\n methods: {\n handleClick: function handleClick(e) {\n this.$emit('click', e);\n }\n }\n};\n/**\n * @hidden\n */\nvar FontIcon = FontIconVue2;\nexport { FontIcon, FontIconVue2 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { SIZE_CLASSES } from './constants';\nimport { getDefaultSlots } from '../defaultSlots';\n/**\n * @hidden\n */\nvar SvgIconVue2 = {\n name: 'KendoSvgIcon',\n // @ts-ignore\n emits: {\n click: null\n },\n props: {\n icon: Object,\n themeColor: {\n type: String\n },\n size: {\n type: String\n },\n flip: {\n type: String\n },\n id: String,\n ariaLabel: String,\n title: String,\n viewBox: {\n type: String,\n default: '0 0 24 24'\n },\n tabIndex: Number\n },\n computed: {\n wrapperClass: function wrapperClass() {\n var _a;\n var _b = this.$props,\n name = _b.name,\n flip = _b.flip,\n size = _b.size,\n themeColor = _b.themeColor;\n return _a = {\n 'k-svg-icon': true\n }, _a['k-color-' + themeColor] = themeColor, _a['k-svg-i-' + name] = name, _a['k-flip-h'] = flip === 'horizontal' || flip === 'both', _a['k-flip-v'] = flip === 'vertical' || flip === 'both', _a[SIZE_CLASSES[size]] = size, _a;\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n var _a = this.$props,\n svgClassName = _a.svgClassName,\n icon = _a.icon,\n id = _a.id,\n tabIndex = _a.tabIndex,\n svgStyle = _a.svgStyle,\n viewBox = _a.viewBox,\n title = _a.title,\n ariaLabel = _a.ariaLabel;\n var innerHTML = icon ? icon.content : undefined;\n var attrs = {\n id: id,\n title: title,\n 'aria-hidden': true,\n tabIndex: tabIndex,\n ariaLabel: ariaLabel,\n focusable: 'false',\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: icon ? icon.viewBox : viewBox\n };\n var svg = h('svg', __assign(__assign({}, attrs), {\n attrs: this.v3 ? undefined : attrs,\n domProps: this.v3 ? undefined : {\n innerHTML: innerHTML\n },\n innerHTML: innerHTML,\n 'class': svgClassName,\n style: svgStyle\n }), [icon ? undefined : defaultSlot]);\n return h(\"span\", {\n \"class\": this.wrapperClass,\n onClick: this.handleClick,\n on: this.v3 ? undefined : {\n \"click\": this.handleClick\n }\n }, [svg]);\n },\n methods: {\n handleClick: function handleClick(e) {\n this.$emit('click', e);\n }\n }\n};\n/**\n * @hidden\n */\nvar SvgIcon = SvgIconVue2;\nexport { SvgIcon, SvgIconVue2 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { FontIcon } from './FontIcon';\nimport { SvgIcon } from './SvgIcon';\n/**\n * @hidden\n */\nvar IconVue2 = {\n name: 'KendoIcon',\n // @ts-ignore\n emits: {\n click: null\n },\n inject: {\n kendoIcons: {\n default: {\n type: 'svg',\n icons: {}\n }\n }\n },\n props: {\n name: String,\n icon: Object,\n title: String,\n themeColor: {\n type: String\n },\n size: {\n type: String\n },\n flip: {\n type: String\n },\n id: String,\n ariaLabel: String,\n viewBox: {\n type: String,\n default: '0 0 24 24'\n },\n tabIndex: Number\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n name = _a.name,\n icon = _a.icon,\n themeColor = _a.themeColor,\n size = _a.size,\n flip = _a.flip,\n id = _a.id,\n viewBox = _a.viewBox,\n tabIndex = _a.tabIndex,\n title = _a.title,\n ariaLabel = _a.ariaLabel;\n var svg = name && this.kendoIcons && this.kendoIcons.icons && this.kendoIcons.icons[name] || icon;\n var renderSVG = this.kendoIcons && this.kendoIcons.type === 'svg' && svg !== undefined;\n var newSize = this.kendoIcons && this.kendoIcons.size ? this.kendoIcons.size : size;\n var newFlip = this.kendoIcons && this.kendoIcons.flip ? this.kendoIcons.flip : flip;\n var resolvedName = name || (icon && icon.name ? icon.name : undefined);\n var commonProps = {\n themeColor: themeColor,\n size: newSize,\n flip: newFlip,\n id: id,\n tabIndex: tabIndex,\n title: title,\n ariaLabel: ariaLabel\n };\n var fontIcon = h(FontIcon, __assign(__assign({}, commonProps), {\n name: resolvedName,\n attrs: this.v3 ? undefined : __assign(__assign({}, commonProps), {\n name: resolvedName\n }),\n onClick: this.handleClick,\n on: this.v3 ? undefined : {\n 'click': this.handleClick\n }\n }));\n var svgIcon = h(SvgIcon, __assign(__assign({}, commonProps), {\n icon: svg,\n viewBox: viewBox,\n attrs: this.v3 ? undefined : __assign(__assign({}, commonProps), {\n icon: svg,\n viewBox: viewBox\n }),\n onClick: this.handleClick,\n on: this.v3 ? undefined : {\n 'click': this.handleClick\n }\n }));\n return renderSVG ? svgIcon : fontIcon;\n },\n methods: {\n handleClick: function handleClick(e) {\n this.$emit('click', e);\n }\n }\n};\n/**\n * @hidden\n */\nvar Icon = IconVue2;\nexport { Icon, IconVue2 };","import { canUseDOM } from '@progress/kendo-vue-common';\nvar arrowWidth = 10;\nvar arrowHeight = 10;\n/**\n * @hidden\n */\nexport var getLeftPosition = function getLeftPosition(left, elementWidth, targetElement, anchorElement, position) {\n switch (position) {\n case 'bottom':\n return anchorElement === 'pointer' ? left - elementWidth / 2 : targetElement.left - elementWidth / 2 + targetElement.width / 2;\n case 'left':\n return anchorElement === 'pointer' ? left - elementWidth - arrowWidth : targetElement.left - elementWidth - arrowWidth;\n case 'right':\n return anchorElement === 'pointer' ? left + arrowWidth : targetElement.right + arrowWidth;\n case 'top':\n return anchorElement === 'pointer' ? left - elementWidth / 2 : targetElement.left - elementWidth / 2 + targetElement.width / 2;\n default:\n if (anchorElement === 'pointer') {\n return canUseDOM && left < window.screen.availWidth / 2 ? left - arrowWidth : left - elementWidth + arrowWidth;\n } else {\n return canUseDOM && left < window.screen.availWidth / 2 ? targetElement.left : targetElement.right - elementWidth;\n }\n }\n};\n/**\n * @hidden\n */\nexport var getTopPosition = function getTopPosition(top, targetElement, elementHeight, anchorElement, position) {\n switch (position) {\n case 'bottom':\n return anchorElement === 'pointer' ? top + arrowHeight : targetElement.bottom + arrowHeight;\n case 'left':\n return anchorElement === 'pointer' ? top - elementHeight / 2 : targetElement.top - elementHeight / 2 + targetElement.height / 2;\n case 'right':\n return anchorElement === 'pointer' ? top - elementHeight / 2 : targetElement.top - elementHeight / 2 + targetElement.height / 2;\n case 'top':\n return anchorElement === 'pointer' ? top - elementHeight - arrowHeight : targetElement.top - elementHeight - arrowHeight;\n default:\n if (anchorElement === 'pointer') {\n return canUseDOM && top < window.innerHeight / 2 ? top + arrowWidth : top - elementHeight - arrowWidth;\n } else {\n return canUseDOM && top < window.innerHeight / 2 ? targetElement.bottom + arrowHeight : targetElement.top - elementHeight - arrowHeight;\n }\n }\n};\n/**\n * @hidden\n */\nexport var getDomRect = function getDomRect(currentTarget) {\n if (currentTarget !== null) {\n return currentTarget.getBoundingClientRect();\n }\n return document.body.getBoundingClientRect();\n};\n/**\n * @hidden\n */\nexport var toolTipSelectors = ['k-tooltip-content', 'k-animation-container', 'k-tooltip', 'k-tooltip-title', 'k-tooltip k-tooltip-closable', 'k-icon k-i-x', 'k-svg-icon k-svg-i-x'];\n/**\n * @hidden\n */\nexport var isTooltipElement = function isTooltipElement(element) {\n if (element === null) {\n return false;\n }\n var node = element;\n while (node) {\n if (node !== null && node.classList && node.classList.contains('k-tooltip')) {\n return true;\n }\n node.parentNode !== null ? node = node.parentNode : node = false;\n }\n return toolTipSelectors.filter(function (t) {\n return t === element.className;\n }).length > 0;\n};","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-vue-tooltip',\n productName: 'Kendo UI for Vue',\n productCodes: ['KENDOUIVUE', 'KENDOUICOMPLETE'],\n publishDate: 1686052965,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning'\n};\n","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { classNames, validatePackage, getDefaultSlots, getListeners, templateRendering, getTemplate, setRef, getRef, canUseDOM, guid } from '@progress/kendo-vue-common';\nimport { getLeftPosition, getTopPosition, getDomRect, isTooltipElement } from './utils';\nimport { packageMetadata } from './package-metadata';\nvar DEFAULT_TOOLTIP_ZINDEX = 100;\nvar ARIAIDSUFFIX = '_tb_active';\n/**\n * @hidden\n */\nvar TooltipVue2 = {\n name: 'KendoTooltip',\n inheritAttrs: false,\n props: {\n showCallout: {\n type: Boolean,\n default: true\n },\n setCalloutOnPositionAuto: {\n type: String,\n default: undefined\n },\n anchorElement: {\n type: String,\n default: 'pointer',\n validator: function validator(value) {\n return ['pointer', 'target'].includes(value);\n }\n },\n content: [String, Object, Function],\n filter: Function,\n openDelay: {\n type: Number,\n default: 400\n },\n open: {\n type: Boolean,\n default: undefined\n },\n position: {\n type: String,\n default: 'auto',\n validator: function validator(value) {\n return ['right', 'left', 'top', 'bottom', 'auto'].includes(value);\n }\n },\n updatePosition: {\n type: Function,\n default: undefined\n },\n updateInterval: Number,\n className: String,\n wrapperStyle: Object,\n tooltipClassName: String,\n tooltipStyle: Object,\n targetElement: {\n type: undefined\n },\n parentTitle: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n top: 0,\n left: 0,\n currentTargetElement: null,\n currentOpen: false,\n title: ''\n };\n },\n computed: {\n wrapperClass: function wrapperClass() {\n var _a;\n return _a = {\n 'k-animation-container': true,\n 'k-animation-container-fixed': true,\n 'k-animation-container-shown': true\n }, _a[this.$props.className] = true, _a;\n },\n computedTarget: function computedTarget() {\n return this.targetElement !== undefined ? this.targetElement : this.currentTargetElement;\n },\n computedOpen: function computedOpen() {\n return this.open !== undefined ? this.open : this.currentOpen;\n }\n },\n inject: {\n kCurrentZIndex: {\n default: null\n }\n },\n created: function created() {\n validatePackage(packageMetadata);\n this.top = 0;\n this.left = 0;\n this.willOpen = false;\n },\n mounted: function mounted() {\n this.element = getRef(this, 'element');\n if (document) {\n document.body.addEventListener('mousemove', this.handleBodyMousemove);\n }\n },\n destroyed: !!isV3 ? undefined : function () {\n this.destroyElement();\n },\n // @ts-ignore\n unmounted: function unmounted() {\n this.destroyElement();\n },\n updated: function updated() {\n if (this.$props.open && this.$props.targetElement) {\n this.showToolTip({\n target: this.$props.targetElement\n });\n }\n this.element = getRef(this, 'element');\n if (!this.element) {\n return;\n }\n this.resetPosition();\n if (this.computedTarget) {\n var appendToElement = this.$props.appendTo ? this.$props.appendTo : this.computedTarget.ownerDocument.body;\n if (this.element.parentElement !== appendToElement) {\n this.computedTarget.ownerDocument.body.append(this.element);\n }\n }\n this.callout = this.v3 ? this.calloutRef : this.$refs.callout;\n if (!this.callout) {\n return;\n }\n this.callout.className = this.calloutClassName();\n if (this.$props.position === 'auto' && canUseDOM) {\n this.left < window.screen.availWidth / 2 ? this.callout.style.left = this.$props.setCalloutOnPositionAuto || '25%' : this.callout.style.left = this.$props.setCalloutOnPositionAuto || '75%';\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n var currentZIndex = this.getCurrentZIndex();\n var content = this.$props.content ? templateRendering.call(this, this.$props.content, getListeners.call(this)) : undefined;\n var contentDefaultRendering = this.title;\n var ariaId = guid() + ARIAIDSUFFIX;\n if (this.computedTarget) {\n if (this.computedTarget.hasAttribute('id')) {\n ariaId = this.computedTarget.getAttribute('id') + ARIAIDSUFFIX;\n }\n this.computedTarget.setAttribute('aria-describedby', ariaId);\n }\n var contentRendering = getTemplate.call(this, {\n h: h,\n template: content,\n defaultRendering: contentDefaultRendering,\n additionalProps: {\n title: this.title,\n target: this.computedTarget\n }\n });\n var innerToolTip = this.computedOpen && h(\"div\", {\n \"class\": classNames('k-tooltip', this.$props.tooltipClassName),\n role: 'tooltip',\n attrs: this.v3 ? undefined : {\n role: 'tooltip',\n id: ariaId\n },\n id: ariaId,\n style: __assign({\n position: 'relative'\n }, this.$props.tooltipStyle)\n }, [h(\"div\", {\n \"class\": \"k-tooltip-content\"\n }, [contentRendering]), this.$props.showCallout && h(\"div\", {\n ref: setRef(this, 'callout')\n })]);\n var tooltip = this.computedTarget && this.title && this.computedTarget.ownerDocument && h(\"div\", {\n ref: setRef(this, 'element'),\n \"class\": this.wrapperClass,\n style: __assign({\n zIndex: currentZIndex\n }, this.$props.wrapperStyle),\n tabindex: 0,\n attrs: this.v3 ? undefined : {\n tabindex: 0\n }\n }, [h(\"div\", {\n \"class\": \"k-child-animation-container\"\n }, [innerToolTip])]);\n if (defaultSlot) {\n return h(\"div\", {\n onMouseover: this.handleMouseOver,\n on: this.v3 ? undefined : {\n \"mouseover\": this.handleMouseOver,\n \"mouseout\": this.handleMouseOut\n },\n onMouseout: this.handleMouseOut\n }, [tooltip, defaultSlot]);\n } else {\n return tooltip;\n }\n },\n methods: {\n destroyElement: function destroyElement() {\n clearTimeout(this.openTimeoutId);\n clearInterval(this.updateIntervalId);\n if (document) {\n document.body.removeEventListener('mousemove', this.handleBodyMousemove);\n }\n if (this.element) {\n this.element.remove();\n }\n },\n handleMouseOut: function handleMouseOut(event) {\n var currentDocument = this.computedTarget ? this.computedTarget.ownerDocument : document;\n var element = currentDocument && currentDocument.elementFromPoint(event.clientX, event.clientY);\n this.willOpen = false;\n if (isTooltipElement(element) || this.computedTarget !== event.target) {\n return;\n }\n if (this.$props.open) {\n return;\n }\n clearInterval(this.updateIntervalId);\n this.onClose(event);\n },\n handleMouseOver: function handleMouseOver(event) {\n var target = event.target;\n if (!this.isVisible(target) || isTooltipElement(target) || target === this.computedTarget) {\n return;\n }\n this.showToolTip(event);\n },\n handleBodyMousemove: function handleBodyMousemove(event) {\n this.top = event.clientY;\n this.left = event.clientX;\n },\n onClose: function onClose(event) {\n this.$emit('close', {\n event: event,\n component: this\n });\n this.computedTarget.removeAttribute('aria-describedby');\n this.currentTargetElement = null;\n this.currentOpen = false;\n this.title = '';\n },\n showToolTip: function showToolTip(event) {\n var _this = this;\n clearTimeout(this.openTimeoutId);\n clearInterval(this.updateIntervalId);\n if (event.target.hasChildNodes()) {\n event.target.childNodes.forEach(function (childElement) {\n if (childElement.nodeName === 'title') {\n event.target.titleExpando = childElement.innerHTML;\n childElement.remove();\n }\n });\n }\n var target = this.computedTarget || event.target;\n var titleResult = this.getTitle(target);\n if (!titleResult.title) {\n if (this.computedOpen) {\n this.onClose(event);\n }\n return;\n }\n if (titleResult.element) {\n titleResult.element.titleExpando = titleResult.title;\n titleResult.element.title = '';\n }\n this.willOpen = true;\n if (!this.$props.openDelay) {\n this.currentTargetElement = target;\n this.currentOpen = true;\n this.title = titleResult.title;\n this.setUpdateInterval();\n } else {\n if (canUseDOM) {\n this.openTimeoutId = window.setTimeout(function () {\n if (_this.willOpen) {\n _this.currentTargetElement = target;\n _this.currentOpen = true;\n _this.title = titleResult.title;\n _this.setUpdateInterval();\n }\n }, this.$props.openDelay);\n }\n }\n if (this.title !== titleResult.title) {\n this.$emit('open', {\n event: event,\n compoponent: this\n });\n }\n },\n setUpdateInterval: function setUpdateInterval() {\n if (this.$props.updateInterval) {\n this.updateIntervalId = setInterval(this.onIntervalUpdate, this.$props.updateInterval);\n }\n },\n onIntervalUpdate: function onIntervalUpdate() {\n var target = this.computedTarget;\n if (!target) {\n return;\n }\n if (target.parentElement === null) {\n // Getting element from previous target coordinates will cause reflow which is performance hit.\n // Also remount case can be avoided easily\n this.onClose({\n target: target\n });\n } else {\n this.showToolTip({\n target: target\n });\n }\n },\n resetPosition: function resetPosition() {\n if (this.element) {\n var position = this.setPosition(this.element);\n if (this.$props.updatePosition) {\n position = this.$props.updatePosition({\n element: this.element,\n targetElement: this.computedTarget,\n mouseTop: this.top,\n mouseLeft: this.left,\n anchorElement: this.$props.anchorElement,\n position: this.$props.position,\n target: this,\n defaultPosition: position\n });\n }\n this.element.style.left = position.left + 'px';\n this.element.style.top = position.top + 'px';\n }\n },\n isVisible: function isVisible(element) {\n return !this.$props.filter || this.$props.filter(element);\n },\n setPosition: function setPosition(element) {\n var target = this.parentTitle ? this.getTitle(this.computedTarget).element : this.computedTarget;\n var domRect = getDomRect(target);\n var left = getLeftPosition(this.left, element.offsetWidth, domRect, this.$props.anchorElement, this.$props.position);\n var top = getTopPosition(this.top, domRect, element.offsetHeight, this.$props.anchorElement, this.$props.position);\n return {\n left: left,\n top: top\n };\n },\n getTitle: function getTitle(element) {\n while (element) {\n if (element.getAttribute('title') !== null || element.titleExpando) {\n var title = element.getAttribute('title') || element.titleExpando;\n return {\n title: title,\n element: element\n };\n }\n element = this.$props.parentTitle && element.parentElement || null;\n }\n return {\n title: '',\n element: element\n };\n },\n calloutClassName: function calloutClassName() {\n switch (this.$props.position) {\n case 'bottom':\n return 'k-callout k-callout-n';\n case 'left':\n return 'k-callout k-callout-e';\n case 'right':\n return 'k-callout k-callout-w';\n case 'top':\n return 'k-callout k-callout-s';\n default:\n return canUseDOM && this.top < window.innerHeight / 2 ? 'k-callout k-callout-n' : 'k-callout k-callout-s';\n }\n },\n getCurrentZIndex: function getCurrentZIndex() {\n return this.kCurrentZIndex ? this.kCurrentZIndex : DEFAULT_TOOLTIP_ZINDEX;\n }\n }\n};\n/**\n * @hidden\n */\nvar Tooltip = TooltipVue2;\nexport { Tooltip, TooltipVue2 };","/**\n * Lists the possible states of a file.\n */\nexport var UploadFileStatus;\n(function (UploadFileStatus) {\n /**\n * Indicates that the file upload process has failed.\n */\n UploadFileStatus[UploadFileStatus[\"UploadFailed\"] = 0] = \"UploadFailed\";\n /**\n * An initially selected fake file without a set state.\n */\n UploadFileStatus[UploadFileStatus[\"Initial\"] = 1] = \"Initial\";\n /**\n * The file is selected.\n */\n UploadFileStatus[UploadFileStatus[\"Selected\"] = 2] = \"Selected\";\n /**\n * The file is in the process of uploading.\n */\n UploadFileStatus[UploadFileStatus[\"Uploading\"] = 3] = \"Uploading\";\n /**\n * The file is successfully uploaded.\n */\n UploadFileStatus[UploadFileStatus[\"Uploaded\"] = 4] = \"Uploaded\";\n /**\n * The remove process has failed.\n */\n UploadFileStatus[UploadFileStatus[\"RemoveFailed\"] = 5] = \"RemoveFailed\";\n /**\n * The file is in the process of removing.\n */\n UploadFileStatus[UploadFileStatus[\"Removing\"] = 6] = \"Removing\";\n})(UploadFileStatus || (UploadFileStatus = {}));\n","var _a;\n/**\n * @hidden\n */\nexport var cancel = 'upload.cancel';\n/**\n * @hidden\n */\nexport var clearSelectedFiles = 'upload.clearSelectedFiles';\n/**\n * @hidden\n */\nexport var dropFilesHere = 'upload.dropFilesHere';\n/**\n * @hidden\n */\nexport var headerStatusUploaded = 'upload.headerStatusUploaded';\n/**\n * @hidden\n */\nexport var headerStatusUploading = 'upload.headerStatusUploading';\n/**\n * @hidden\n */\nexport var invalidFileExtension = 'upload.invalidFileExtension';\n/**\n * @hidden\n */\nexport var invalidFiles = 'upload.invalidFiles';\n/**\n * @hidden\n */\nexport var invalidMaxFileSize = 'upload.invalidMaxFileSize';\n/**\n * @hidden\n */\nexport var invalidMinFileSize = 'upload.invalidMinFileSize';\n/**\n * @hidden\n */\nexport var remove = 'upload.remove';\n/**\n * @hidden\n */\nexport var retry = 'upload.retry';\n/**\n * @hidden\n */\nexport var select = 'upload.select';\n/**\n * @hidden\n */\nexport var selectTitle = 'upload.selectTitle';\n/**\n * @hidden\n */\nexport var selectNoFilesTitle = 'upload.selectNoFilesTitle';\n/**\n * @hidden\n */\nexport var uploadSelectedFiles = 'upload.uploadSelectedFiles';\n/**\n * @hidden\n */\nexport var total = 'upload.total';\n/**\n * @hidden\n */\nexport var files = 'upload.files';\n/**\n * @hidden\n */\nexport var statusUploaded = 'upload.statusUploaded';\n/**\n * @hidden\n */\nexport var statusUploadFailed = 'upload.statusUploadFailed';\n/**\n * @hidden\n */\nexport var dropZoneHint = 'upload.dropZoneHint';\n/**\n * @hidden\n */\nexport var dropZoneNote = 'upload.dropZoneNote';\n/**\n * @hidden\n */\nexport var messages = (_a = {},\n _a[cancel] = 'Cancel',\n _a[clearSelectedFiles] = 'Clear',\n _a[dropFilesHere] = 'Drop files here to upload',\n _a[headerStatusUploaded] = 'Done',\n _a[headerStatusUploading] = 'Uploading...',\n _a[invalidFileExtension] = 'File type not allowed.',\n _a[invalidFiles] = 'Invalid file(s). Please check file upload requirements.',\n _a[invalidMaxFileSize] = 'File size too large.',\n _a[invalidMinFileSize] = 'File size too small.',\n _a[remove] = 'Remove',\n _a[retry] = 'Retry',\n _a[select] = 'Select files...',\n _a[selectTitle] = 'Press to select more files',\n _a[selectNoFilesTitle] = 'No files selected',\n _a[uploadSelectedFiles] = 'Upload',\n _a[total] = 'Total',\n _a[files] = 'files',\n _a[statusUploaded] = 'File(s) successfully uploaded.',\n _a[statusUploadFailed] = 'File(s) failed to upload.',\n _a[dropZoneHint] = 'Drag and drop files here to upload.',\n _a[dropZoneNote] = 'Only JPEG and PNG files are allowed.',\n _a);\n","/**\n * @hidden\n */\nexport var FOCUS_ACTION;\n(function (FOCUS_ACTION) {\n FOCUS_ACTION[\"next\"] = \"next\";\n FOCUS_ACTION[\"prev\"] = \"prev\";\n FOCUS_ACTION[\"current\"] = \"current\";\n FOCUS_ACTION[\"reset\"] = \"reset\";\n})(FOCUS_ACTION || (FOCUS_ACTION = {}));\n/**\n * @hidden\n */\nexport var focusReducer = function focusReducer(state, action) {\n var currentIndex = action.items.findIndex(function (i) {\n return i === state;\n });\n switch (action.type) {\n case FOCUS_ACTION.next:\n return currentIndex === action.items.length - 1 ? state : action.items[currentIndex + 1];\n case FOCUS_ACTION.prev:\n return currentIndex === 0 ? state : action.items[currentIndex - 1];\n case FOCUS_ACTION.current:\n return action.payload;\n case FOCUS_ACTION.reset:\n return null;\n default:\n return state;\n }\n};","/**\n * @hidden\n */\nvar outerHeight = function (element) {\n if (!element) {\n return 0;\n }\n var wnd = element.ownerDocument.defaultView;\n var computedStyles = wnd.getComputedStyle(element);\n var marginTop = parseFloat(computedStyles.marginTop);\n var marginBottom = parseFloat(computedStyles.marginBottom);\n return element.offsetHeight + marginTop + marginBottom;\n};\n/**\n * @hidden\n */\nvar outerWidth = function (element) {\n if (!element) {\n return 0;\n }\n var wnd = element.ownerDocument.defaultView;\n var computedStyles = wnd.getComputedStyle(element);\n var marginLeft = parseFloat(computedStyles.marginLeft);\n var marginRight = parseFloat(computedStyles.marginRight);\n return element.offsetWidth + marginLeft + marginRight;\n};\n/**\n * @hidden\n */\nvar styles = {\n 'animation-container': 'k-animation-container',\n 'animation-container-relative': 'k-animation-container-relative',\n 'animation-container-fixed': 'k-animation-container-fixed',\n 'push-right-enter': 'k-push-right-enter',\n 'push-right-appear': 'k-push-right-appear',\n 'push-right-enter-active': 'k-push-right-enter-active',\n 'push-right-appear-active': 'k-push-right-appear-active',\n 'push-right-exit': 'k-push-right-exit',\n 'push-right-exit-active': 'k-push-right-exit-active',\n 'push-left-enter': 'k-push-left-enter',\n 'push-left-appear': 'k-push-left-appear',\n 'push-left-enter-active': 'k-push-left-enter-active',\n 'push-left-appear-active': 'k-push-left-appear-active',\n 'push-left-exit': 'k-push-left-exit',\n 'push-left-exit-active': 'k-push-left-exit-active',\n 'push-down-enter': 'k-push-down-enter',\n 'push-down-appear': 'k-push-down-appear',\n 'push-down-enter-active': 'k-push-down-enter-active',\n 'push-down-appear-active': 'k-push-down-appear-active',\n 'push-down-exit': 'k-push-down-exit',\n 'push-down-exit-active': 'k-push-down-exit-active',\n 'push-up-enter': 'k-push-up-enter',\n 'push-up-appear': 'k-push-up-appear',\n 'push-up-enter-active': 'k-push-up-enter-active',\n 'push-up-appear-active': 'k-push-up-appear-active',\n 'push-up-exit': 'k-push-up-exit',\n 'push-up-exit-active': 'k-push-up-exit-active',\n 'expand': 'k-expand',\n 'expand-vertical-enter': 'k-expand-vertical-enter',\n 'expand-vertical-appear': 'k-expand-vertical-appear',\n 'expand-vertical-enter-active': 'k-expand-vertical-enter-active',\n 'expand-vertical-appear-active': 'k-expand-vertical-appear-active',\n 'expand-vertical-exit': 'k-expand-vertical-exit',\n 'expand-vertical-exit-active': 'k-expand-vertical-exit-active',\n 'expand-horizontal-enter': 'k-expand-horizontal-enter',\n 'expand-horizontal-appear': 'k-expand-horizontal-appear',\n 'expand-horizontal-enter-active': 'k-expand-horizontal-enter-active',\n 'expand-horizontal-appear-active': 'k-expand-horizontal-appear-active',\n 'expand-horizontal-exit': 'k-expand-horizontal-exit',\n 'expand-horizontal-exit-active': 'k-expand-horizontal-exit-active',\n 'child-animation-container': 'k-child-animation-container',\n 'fade-enter': 'k-fade-enter',\n 'fade-appear': 'k-fade-appear',\n 'fade-enter-active': 'k-fade-enter-active',\n 'fade-appear-active': 'k-fade-appear-active',\n 'fade-exit': 'k-fade-exit',\n 'fade-exit-active': 'k-fade-exit-active',\n 'zoom-in-enter': 'k-zoom-in-enter',\n 'zoom-in-appear': 'k-zoom-in-appear',\n 'zoom-in-enter-active': 'k-zoom-in-enter-active',\n 'zoom-in-appear-active': 'k-zoom-in-appear-active',\n 'zoom-in-exit': 'k-zoom-in-exit',\n 'zoom-in-exit-active': 'k-zoom-in-exit-active',\n 'zoom-out-enter': 'k-zoom-out-enter',\n 'zoom-out-appear': 'k-zoom-out-appear',\n 'zoom-out-enter-active': 'k-zoom-out-enter-active',\n 'zoom-out-appear-active': 'k-zoom-out-appear-active',\n 'zoom-out-exit': 'k-zoom-out-exit',\n 'zoom-out-exit-active': 'k-zoom-out-exit-active',\n 'slide-in-appear': 'k-slide-in-appear',\n 'centered': 'k-centered',\n 'slide-in-appear-active': 'k-slide-in-appear-active',\n 'slide-down-enter': 'k-slide-down-enter',\n 'slide-down-appear': 'k-slide-down-appear',\n 'slide-down-enter-active': 'k-slide-down-enter-active',\n 'slide-down-appear-active': 'k-slide-down-appear-active',\n 'slide-down-exit': 'k-slide-down-exit',\n 'slide-down-exit-active': 'k-slide-down-exit-active',\n 'slide-up-enter': 'k-slide-up-enter',\n 'slide-up-appear': 'k-slide-up-appear',\n 'slide-up-enter-active': 'k-slide-up-enter-active',\n 'slide-up-appear-active': 'k-slide-up-appear-active',\n 'slide-up-exit': 'k-slide-up-exit',\n 'slide-up-exit-active': 'k-slide-up-exit-active',\n 'slide-right-enter': 'k-slide-right-enter',\n 'slide-right-appear': 'k-slide-right-appear',\n 'slide-right-enter-active': 'k-slide-right-enter-active',\n 'slide-right-appear-active': 'k-slide-right-appear-active',\n 'slide-right-exit': 'k-slide-right-exit',\n 'slide-right-exit-active': 'k-slide-right-exit-active',\n 'slide-left-enter': 'k-slide-left-enter',\n 'slide-left-appear': 'k-slide-left-appear',\n 'slide-left-enter-active': 'k-slide-left-enter-active',\n 'slide-left-appear-active': 'k-slide-left-appear-active',\n 'slide-left-exit': 'k-slide-left-exit',\n 'slide-left-exit-active': 'k-slide-left-exit-active',\n 'reveal-vertical-enter': 'k-reveal-vertical-enter',\n 'reveal-vertical-appear': 'k-reveal-vertical-appear',\n 'reveal-vertical-enter-active': 'k-reveal-vertical-enter-active',\n 'reveal-vertical-appear-active': 'k-reveal-vertical-appear-active',\n 'reveal-vertical-exit': 'k-reveal-vertical-exit',\n 'reveal-vertical-exit-active': 'k-reveal-vertical-exit-active',\n 'reveal-horizontal-enter': 'k-reveal-horizontal-enter',\n 'reveal-horizontal-appear': 'k-reveal-horizontal-appear',\n 'reveal-horizontal-enter-active': 'k-reveal-horizontal-enter-active',\n 'reveal-horizontal-appear-active': 'k-reveal-horizontal-appear-active',\n 'reveal-horizontal-exit': 'k-reveal-horizontal-exit',\n 'reveal-horizontal-exit-active': 'k-reveal-horizontal-exit-active'\n};\n/**\n * @hidden\n */\nexport default {\n outerHeight: outerHeight,\n outerWidth: outerWidth,\n styles: styles\n};\n","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nvar ref = allVue.ref;\nvar Transition = allVue.Transition;\nimport util from './util';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\nvar styles = util.styles;\n/**\n * @hidden\n */\nvar AnimationChildVue2 = {\n props: {\n in: Boolean,\n transitionName: {\n type: String,\n required: true\n },\n transitionStyle: Object,\n componentChildClassName: [Array],\n className: String,\n appear: {\n type: Boolean,\n default: true\n },\n enter: {\n type: Boolean,\n default: true\n },\n exit: {\n type: Boolean,\n default: true\n },\n transitionEnterDuration: Number,\n transitionExitDuration: Number,\n mountOnEnter: Boolean,\n unmountOnExit: Boolean,\n animationEnteringStyle: Object,\n animationEnteredStyle: Object,\n animationExitingStyle: Object,\n animationExitedStyle: Object\n },\n created: function created() {\n this.animationStep = '';\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n var elementRef = ref(null);\n return {\n v3: v3,\n elementRef: elementRef\n };\n },\n mounted: function mounted() {\n this._element = this.v3 ? this.elementRef || null : this.$refs.element || null;\n },\n computed: {\n element: {\n get: function get() {\n return this._element;\n }\n }\n },\n methods: {\n onBeforeEnter: function onBeforeEnter(e) {\n this.$emit('beforeenter', {\n animatedElement: e,\n target: this\n });\n },\n onEnter: function onEnter(e) {\n this.animationStep = 'entering';\n this.$emit('entering', {\n animatedElement: e,\n target: this\n });\n },\n onAfterEnter: function onAfterEnter(e) {\n this.animationStep = 'entered';\n this.$emit('entered', {\n animatedElement: e,\n target: this\n });\n },\n onBeforeLeave: function onBeforeLeave(e) {\n this.$emit('exit', {\n animatedElement: e,\n target: this\n });\n },\n onLeave: function onLeave(e) {\n this.animationStep = 'exiting';\n this.$emit('exiting', {\n animatedElement: e,\n target: this\n });\n },\n onAfterLeave: function onAfterLeave(e) {\n this.animationStep = 'exited';\n this.$emit('exited', {\n animatedElement: e,\n target: this\n });\n }\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n var h = gh || createElement;\n var _a = this.$props,\n appear = _a.appear,\n enter = _a.enter,\n exit = _a.exit,\n transitionName = _a.transitionName,\n transitionEnterDuration = _a.transitionEnterDuration,\n transitionExitDuration = _a.transitionExitDuration,\n className = _a.className,\n componentChildClassName = _a.componentChildClassName,\n mountOnEnter = _a.mountOnEnter,\n unmountOnExit = _a.unmountOnExit,\n animationEnteringStyle = _a.animationEnteringStyle,\n animationEnteredStyle = _a.animationEnteredStyle,\n animationExitingStyle = _a.animationExitingStyle,\n animationExitedStyle = _a.animationExitedStyle,\n other = __rest(_a, [\"appear\", \"enter\", \"exit\", \"transitionName\", \"transitionEnterDuration\", \"transitionExitDuration\", \"className\", \"componentChildClassName\", \"mountOnEnter\", \"unmountOnExit\", \"animationEnteringStyle\", \"animationEnteredStyle\", \"animationExitingStyle\", \"animationExitedStyle\"]);\n var defaultSlot = getDefaultSlots(this);\n var hasChildren = this.v3 ? appear : !!defaultSlot;\n var transitionTag = this.v3 ? Transition : 'transition';\n var childAnimationContainerClassNames = [componentChildClassName, styles['child-animation-container']];\n var enterDuration = enter ? transitionEnterDuration : 0;\n var exitDuration = exit ? transitionExitDuration : 0;\n var defaultStyle = __assign({\n transitionDelay: '0ms',\n transitionDuration: hasChildren ? \"\".concat(enterDuration, \"ms\") : \"\".concat(exitDuration, \"ms\")\n }, this.$props.transitionStyle);\n var animationStyle = {\n entering: __assign({\n transitionDuration: \"\".concat(enterDuration, \"ms\")\n }, animationEnteringStyle),\n entered: __assign({}, animationEnteredStyle),\n exiting: __assign({\n transitionDuration: \"\".concat(exitDuration, \"ms\")\n }, animationExitingStyle),\n exited: __assign({}, animationExitedStyle)\n };\n var childElementStyles = [defaultStyle, animationStyle[this.animationStep]];\n var duration = {\n enter: enterDuration,\n leave: exitDuration\n };\n var rendererChildren = [hasChildren ? h('div', {\n style: childElementStyles,\n 'class': childAnimationContainerClassNames,\n ref: this.v3 ? function (el) {\n _this.elementRef = el;\n } : 'element'\n }, [defaultSlot]) : null];\n return h(transitionTag, {\n duration: duration,\n attrs: this.v3 ? null : {\n duration: duration,\n name: transitionName,\n appear: appear,\n appearClass: styles[\"\".concat(transitionName, \"-appear\")] || \"\".concat(transitionName, \"-appear\"),\n appearToClass: styles[\"\".concat(transitionName, \"-appear-active\")] || \"\".concat(transitionName, \"-appear-active\"),\n enterClass: styles[\"\".concat(transitionName, \"-enter\")] || \"\".concat(transitionName, \"-enter\"),\n enterToClass: styles[\"\".concat(transitionName, \"-enter-active\")] || \"\".concat(transitionName, \"-enter-active\"),\n leaveClass: styles[\"\".concat(transitionName, \"-exit\")] || \"\".concat(transitionName, \"-exit\"),\n leaveToClass: styles[\"\".concat(transitionName, \"-exit-active\")] || \"\".concat(transitionName, \"-exit-active\")\n },\n name: transitionName,\n appear: appear,\n appearFromClass: styles[\"\".concat(transitionName, \"-appear\")] || \"\".concat(transitionName, \"-appear\"),\n enterFromClass: styles[\"\".concat(transitionName, \"-enter\")] || \"\".concat(transitionName, \"-enter\"),\n leaveFromClass: styles[\"\".concat(transitionName, \"-exit\")] || \"\".concat(transitionName, \"-exit\"),\n appearToClass: styles[\"\".concat(transitionName, \"-appear-active\")] || \"\".concat(transitionName, \"-appear-active\"),\n enterToClass: styles[\"\".concat(transitionName, \"-enter-active\")] || \"\".concat(transitionName, \"-enter-active\"),\n leaveToClass: styles[\"\".concat(transitionName, \"-exit-active\")] || \"\".concat(transitionName, \"-exit-active\"),\n onBeforeEnter: this.onBeforeEnter,\n on: this.v3 ? null : {\n 'beforeEnter': this.onBeforeEnter,\n 'enter': this.onEnter,\n 'afterEnter': this.onAfterEnter,\n 'beforeLeave': this.onBeforeLeave,\n 'leave': this.onLeave,\n 'afterLeave': this.onAfterLeave\n },\n onEnter: this.onEnter,\n onAfterEnter: this.onAfterEnter,\n onBeforeLeave: this.onBeforeLeave,\n onLeave: this.onLeave,\n onAfterLeave: this.onAfterLeave\n }, this.v3 ? function () {\n return rendererChildren;\n } : rendererChildren);\n }\n};\n/**\n * @hidden\n */\nvar AnimationChild = AnimationChildVue2;\nexport { AnimationChild, AnimationChildVue2 };","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-vue-animation',\n productName: 'Kendo UI for Vue',\n productCodes: ['KENDOUIVUE', 'KENDOUICOMPLETE'],\n publishDate: 1706639460,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning'\n};\n","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { AnimationChild } from './AnimationChild';\nimport { getDefaultSlots, validatePackage } from '@progress/kendo-vue-common';\nimport { packageMetadata } from './package-metadata';\nimport util from './util';\nvar styles = util.styles;\n/**\n * @hidden\n */\nvar AnimationVue2 = {\n props: {\n componentChildStyle: Object,\n childFactory: Object,\n className: String,\n tag: String,\n id: String,\n animationEnteringStyle: Object,\n animationExitingStyle: Object,\n componentChildClassName: [Array],\n transitionName: {\n type: String,\n required: true\n },\n appear: {\n type: Boolean,\n default: true\n },\n enter: {\n type: Boolean,\n default: true\n },\n exit: {\n type: Boolean,\n default: true\n },\n transitionEnterDuration: {\n type: Number\n },\n transitionExitDuration: {\n type: Number\n }\n },\n methods: {\n onEntering: function onEntering(e) {\n this.$emit('entering', e);\n },\n onEnter: function onEnter(e) {\n this.$emit('enter', e);\n },\n onEntered: function onEntered(e) {\n this.$emit('entered', e);\n },\n onExit: function onExit(e) {\n this.$emit('exit', e);\n },\n onExiting: function onExiting(e) {\n this.$emit('exiting', e);\n },\n onExited: function onExited(e) {\n this.$emit('exited', e);\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n created: function created() {\n validatePackage(packageMetadata);\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n var _a = this.$props,\n id = _a.id,\n tag = _a.tag,\n role = _a.role,\n className = _a.className,\n childFactory = _a.childFactory,\n stackChildren = _a.stackChildren,\n componentChildStyle = _a.componentChildStyle,\n componentChildClassName = _a.componentChildClassName,\n other = __rest(_a, [\"id\", \"tag\", \"role\", \"className\", \"childFactory\", \"stackChildren\", \"componentChildStyle\", \"componentChildClassName\"]);\n var parentDivClass = [styles['animation-container'], styles['animation-container-relative'], className];\n return h(\"div\", {\n id: this.$props.id,\n attrs: this.v3 ? undefined : {\n id: this.$props.id,\n role: role\n },\n \"class\": parentDivClass,\n role: role\n }, [\n // @ts-ignore function children\n h(AnimationChild, {\n key: 'some',\n style: componentChildStyle,\n appear: this.$props.appear,\n attrs: this.v3 ? undefined : {\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionName: this.$props.transitionName,\n componentChildClassName: this.$props.componentChildClassName,\n animationEnteringStyle: this.$props.animationEnteringStyle,\n animationExitingStyle: this.$props.animationExitingStyle,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration\n },\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionName: this.$props.transitionName,\n componentChildClassName: this.$props.componentChildClassName,\n onBeforeenter: this.onEnter,\n on: this.v3 ? undefined : {\n \"beforeenter\": this.onEnter,\n \"entering\": this.onEntering,\n \"entered\": this.onEntered,\n \"exit\": this.onExit,\n \"exiting\": this.onExiting,\n \"exited\": this.onExited\n },\n onEntering: this.onEntering,\n onEntered: this.onEntered,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited,\n animationEnteringStyle: this.$props.animationEnteringStyle,\n animationExitingStyle: this.$props.animationExitingStyle,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration\n }, this.v3 ? function () {\n return [defaultSlot];\n } : [defaultSlot])]);\n }\n};\n/**\n * @hidden\n */\nvar Animation = AnimationVue2;\nexport { Animation, AnimationVue2 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { Animation } from './Animation';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * @hidden\n */\nvar FadeVue2 = {\n props: {\n appear: {\n type: Boolean,\n default: false\n },\n enter: {\n type: Boolean,\n default: true\n },\n exit: {\n type: Boolean,\n default: false\n },\n transitionEnterDuration: {\n type: Number,\n default: 500\n },\n transitionExitDuration: {\n type: Number,\n default: 500\n },\n componentChildStyle: Object,\n childFactory: Object,\n className: String,\n tag: String,\n id: String\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n return (\n // @ts-ignore function children\n h(Animation, {\n transitionName: \"fade\",\n attrs: this.v3 ? undefined : {\n transitionName: \"fade\",\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n componentChildStyle: this.$props.componentChildStyle,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration\n },\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n componentChildStyle: this.$props.componentChildStyle,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration\n }, this.v3 ? function () {\n return [defaultSlot];\n } : [defaultSlot])\n );\n }\n};\n/**\n * @hidden\n */\nvar Fade = FadeVue2;\nexport { Fade, FadeVue2 };","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { Animation } from './Animation';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * @hidden\n */\nvar ExpandVue2 = {\n props: {\n appear: {\n type: Boolean,\n default: false\n },\n enter: {\n type: Boolean,\n default: true\n },\n exit: {\n type: Boolean,\n default: true\n },\n transitionEnterDuration: {\n type: Number,\n default: 300\n },\n transitionExitDuration: {\n type: Number,\n default: 300\n },\n childFactory: Object,\n className: String,\n direction: {\n type: String,\n default: 'vertical'\n },\n componentChildStyle: Object,\n tag: String,\n id: String\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n var _a = this.$props,\n direction = _a.direction,\n other = __rest(_a, [\"direction\"]);\n var transitionName = \"expand-\".concat(this.$props.direction);\n return (\n // @ts-ignore function children\n h(Animation, {\n transitionName: transitionName,\n attrs: this.v3 ? undefined : {\n transitionName: transitionName,\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n componentChildStyle: this.$props.componentChildStyle,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration\n },\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n componentChildStyle: this.$props.componentChildStyle,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration\n }, this.v3 ? function () {\n return [defaultSlot];\n } : [defaultSlot])\n );\n }\n};\n/**\n * @hidden\n */\nvar Expand = ExpandVue2;\nexport { Expand, ExpandVue2 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { Animation } from './Animation';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\nvar EXITING_ANIMATION_STYLE = {\n position: 'absolute',\n top: '0',\n left: '0'\n};\n/**\n * @hidden\n */\nvar PushVue2 = {\n props: {\n appear: {\n type: Boolean,\n default: false\n },\n enter: {\n type: Boolean,\n default: true\n },\n exit: {\n type: Boolean,\n default: true\n },\n transitionEnterDuration: {\n type: Number,\n default: 300\n },\n transitionExitDuration: {\n type: Number,\n default: 300\n },\n childFactory: Object,\n componentChildStyle: Object,\n className: String,\n direction: {\n type: String,\n default: 'right'\n },\n tag: String,\n id: String\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n var transitionName = \"push-\".concat(this.$props.direction);\n return (\n // @ts-ignore function children\n h(Animation, {\n transitionName: transitionName,\n attrs: this.v3 ? undefined : {\n transitionName: transitionName,\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration,\n componentChildStyle: this.$props.componentChildStyle,\n animationExitingStyle: this.$props.stackChildren ? EXITING_ANIMATION_STYLE : undefined\n },\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration,\n componentChildStyle: this.$props.componentChildStyle,\n animationExitingStyle: this.$props.stackChildren ? EXITING_ANIMATION_STYLE : undefined\n }, this.v3 ? function () {\n return [defaultSlot];\n } : [defaultSlot])\n );\n }\n};\n/**\n * @hidden\n */\nvar Push = PushVue2;\nexport { Push, PushVue2 };","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { Animation } from './Animation';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * @hidden\n */\nvar SlideVue2 = {\n props: {\n appear: {\n type: Boolean,\n default: false\n },\n enter: {\n type: Boolean,\n default: true\n },\n exit: {\n type: Boolean,\n default: true\n },\n transitionEnterDuration: {\n type: Number,\n default: 300\n },\n transitionExitDuration: {\n type: Number,\n default: 300\n },\n componentChildClassName: [Array],\n childFactory: Object,\n componentChildStyle: Object,\n className: String,\n direction: {\n type: String,\n default: 'down'\n },\n tag: String,\n id: String,\n role: String\n },\n methods: {\n onEntering: function onEntering(e) {\n this.$emit('entering', e);\n },\n onEnter: function onEnter(e) {\n this.$emit('enter', e);\n },\n onEntered: function onEntered(e) {\n this.$emit('entered', e);\n },\n onExit: function onExit(e) {\n this.$emit('exit', e);\n },\n onExiting: function onExiting(e) {\n this.$emit('exiting', e);\n },\n onExited: function onExited(e) {\n this.$emit('exited', e);\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n var _a = this.$props,\n direction = _a.direction,\n id = _a.id,\n other = __rest(_a, [\"direction\", \"id\"]);\n var transitionName = \"slide-\".concat(this.$props.direction);\n return (\n // @ts-ignore function children\n h(Animation, {\n id: id,\n attrs: this.v3 ? undefined : {\n id: id,\n transitionName: transitionName,\n componentChildClassName: this.$props.componentChildClassName,\n componentChildStyle: this.$props.componentChildStyle,\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration\n },\n transitionName: transitionName,\n componentChildClassName: this.$props.componentChildClassName,\n componentChildStyle: this.$props.componentChildStyle,\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n onEnter: this.onEnter,\n on: this.v3 ? undefined : {\n \"enter\": this.onEnter,\n \"entering\": this.onEntering,\n \"entered\": this.onEntered,\n \"exit\": this.onExit,\n \"exiting\": this.onExiting,\n \"exited\": this.onExited\n },\n onEntering: this.onEntering,\n onEntered: this.onEntered,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration\n }, this.v3 ? function () {\n return [defaultSlot];\n } : [defaultSlot])\n );\n }\n};\n/**\n * @hidden\n */\nvar Slide = SlideVue2;\nexport { Slide, SlideVue2 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { Animation } from './Animation';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\nvar EXITING_ANIMATION_STYLE = {\n position: 'absolute',\n top: '0',\n left: '0'\n};\n/**\n * @hidden\n */\nvar ZoomVue2 = {\n props: {\n appear: {\n type: Boolean,\n default: false\n },\n enter: {\n type: Boolean,\n default: true\n },\n exit: {\n type: Boolean,\n default: true\n },\n stackChildren: {\n type: Boolean,\n default: false\n },\n transitionEnterDuration: {\n type: Number,\n default: 300\n },\n transitionExitDuration: {\n type: Number,\n default: 300\n },\n childFactory: Object,\n className: String,\n direction: {\n type: String,\n default: 'out'\n },\n tag: String,\n id: String\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n var transitionName = \"zoom-\".concat(this.$props.direction);\n return (\n // @ts-ignore function children\n h(Animation, {\n transitionName: transitionName,\n attrs: this.v3 ? undefined : {\n transitionName: transitionName,\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration,\n animationExitingStyle: this.$props.stackChildren ? EXITING_ANIMATION_STYLE : undefined\n },\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration,\n animationExitingStyle: this.$props.stackChildren ? EXITING_ANIMATION_STYLE : undefined\n }, this.v3 ? function () {\n return [defaultSlot];\n } : [defaultSlot])\n );\n }\n};\n/**\n * @hidden\n */\nvar Zoom = ZoomVue2;\nexport { Zoom, ZoomVue2 };","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { Animation } from './Animation';\nimport util from './util';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * @hidden\n */\nvar noop = function noop() {};\n/**\n * @hidden\n */\nvar RevealVue2 = {\n props: {\n appear: {\n type: Boolean,\n default: false\n },\n enter: {\n type: Boolean,\n default: true\n },\n exit: {\n type: Boolean,\n default: true\n },\n transitionEnterDuration: {\n type: Number,\n default: 300\n },\n transitionExitDuration: {\n type: Number,\n default: 300\n },\n componentChildStyle: Object,\n childFactory: Object,\n className: String,\n direction: {\n type: String,\n default: 'vertical'\n },\n tag: String,\n id: String\n },\n data: function data() {\n return {\n maxHeight: '',\n maxWidth: ''\n };\n },\n methods: {\n componentWillEnter: function componentWillEnter(event) {\n var onEnter = this.$props.onEnter;\n this.updateContainerDimensions(event.animatedElement, function () {\n if (onEnter) {\n onEnter.call(undefined, event);\n }\n });\n },\n componentIsEntering: function componentIsEntering(event) {\n var onEntering = this.$props.onEntering;\n this.updateContainerDimensions(event.animatedElement, function () {\n if (onEntering) {\n onEntering.call(undefined, event);\n }\n });\n },\n componentWillExit: function componentWillExit(event) {\n var onExit = this.$props.onExit;\n this.updateContainerDimensions(event.animatedElement, function () {\n if (onExit) {\n onExit.call(undefined, event);\n }\n });\n },\n updateContainerDimensions: function updateContainerDimensions(node, done) {\n if (done === void 0) {\n done = noop;\n }\n var content = node ? node.firstElementChild : null;\n if (content) {\n var newHeight = util.outerHeight(content);\n var newWidth = util.outerWidth(content);\n this.$data.maxHeight = newHeight;\n this.$data.maxWidth = newWidth;\n done();\n }\n }\n },\n computed: {\n animationEnteringStyle: {\n get: function get() {\n var maxOffset;\n if (this.$props.direction === 'vertical') {\n maxOffset = {\n maxHeight: this.maxHeight ? \"\".concat(this.maxHeight, \"px\") : null\n };\n } else {\n maxOffset = {\n maxWidth: this.maxWidth ? \"\".concat(this.maxWidth, \"px\") : null\n };\n }\n return {\n maxHeight: maxOffset.maxHeight,\n maxWidth: maxOffset.maxWidth\n };\n }\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n var _a = this.$props,\n direction = _a.direction,\n childFactory = _a.childFactory,\n other = __rest(_a, [\"direction\", \"childFactory\"]);\n var transitionName = \"reveal-\".concat(this.$props.direction);\n return (\n // @ts-ignore function children\n h(Animation, {\n appear: this.$props.appear,\n attrs: this.v3 ? undefined : {\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration,\n componentChildStyle: this.$props.componentChildStyle,\n animationEnteringStyle: this.animationEnteringStyle,\n transitionName: transitionName\n },\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration,\n onEnter: this.componentWillEnter,\n on: this.v3 ? undefined : {\n \"enter\": this.componentWillEnter,\n \"entering\": this.componentIsEntering,\n \"exit\": this.componentWillExit\n },\n onEntering: this.componentIsEntering,\n onExit: this.componentWillExit,\n componentChildStyle: this.$props.componentChildStyle,\n animationEnteringStyle: this.animationEnteringStyle,\n transitionName: transitionName\n }, this.v3 ? function () {\n return [defaultSlot];\n } : [defaultSlot])\n );\n }\n};\n/**\n * @hidden\n */\nvar Reveal = RevealVue2;\nexport { Reveal, RevealVue2 };","/**\n * @hidden\n */\nexport var animate = function animate(transition, offset, animationFrame) {\n if (offset === void 0) {\n offset = 0;\n }\n if (animationFrame === void 0) {\n animationFrame = 0;\n }\n var duration = transition.duration;\n var start;\n var progress;\n var skip = offset && 1 - offset;\n if (transition.onStart) {\n transition.onStart();\n }\n var frame = function frame(timestamp) {\n if (!start) {\n start = timestamp;\n }\n progress = timestamp - start + 1;\n var rate = progress / duration + skip;\n if (rate <= 1) {\n if (transition.onUpdate) {\n transition.onUpdate(rate);\n }\n animationFrame = window.requestAnimationFrame(frame);\n offset = rate;\n } else {\n if (transition.onEnd) {\n transition.onEnd(1);\n }\n offset = 0;\n }\n };\n animationFrame = window.requestAnimationFrame(frame);\n return animationFrame;\n};\n/**\n * @hidden\n */\nexport var cancelAnimation = function cancelAnimation(animationFrame) {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n};","/**\n * @hidden\n */\nexport var MIN_RATIO = 0.00001;\n/**\n * @hidden\n */\nexport var LABEL_DECIMALS = 3;\n/**\n * @hidden\n */\nexport var DEFAULT_ANIMATION_DURATION = 400;\n/**\n * @hidden\n */\nexport var NO_ANIMATION = 0;\n","import { LABEL_DECIMALS, MIN_RATIO } from './constants';\n/**\n * @hidden\n */\nexport var truncateNumber = function (value) {\n var numberParts = value.toString().split('.');\n return numberParts.length === 1 ? \"\".concat(numberParts[0]) : \"\".concat(numberParts[0], \".\").concat(numberParts[1].substr(0, LABEL_DECIMALS));\n};\n/**\n * @hidden\n */\nexport var calculatePercentage = function (min, max, value) {\n var onePercent = Math.abs((max - min) / 100);\n return Math.abs((value - min) / onePercent);\n};\n/**\n * @hidden\n */\nexport var updateProgress = function (progressRef, progressWrapRef, percentage, isVertical) {\n var progressPercentage = Math.max(percentage, 0.01);\n var progressWrapPercentage = (100 / progressPercentage) * 100;\n if (progressRef && progressWrapRef) {\n progressRef.style.width = !isVertical ? \"\".concat(progressPercentage, \"%\") : '100%';\n progressWrapRef.style.width = !isVertical ? \"\".concat(progressWrapPercentage, \"%\") : '100%';\n progressRef.style.height = isVertical ? \"\".concat(progressPercentage, \"%\") : '100%';\n progressWrapRef.style.height = isVertical ? \"\".concat(progressWrapPercentage, \"%\") : '100%';\n }\n};\n/**\n * @hidden\n */\nexport var calculateRatio = function (min, max, value) {\n return Math.max((value - min) / (max - min), MIN_RATIO);\n};\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-vue-progressbars',\n productName: 'Kendo UI for Vue',\n productCodes: ['KENDOUIVUE', 'KENDOUICOMPLETE'],\n publishDate: 1706639622,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning'\n};\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { animate, cancelAnimation } from '@progress/kendo-vue-animation';\nimport { classNames, isRtl, getTabIndex, templateRendering, getListeners, getTemplate, setRef, getRef } from '@progress/kendo-vue-common';\nimport { calculatePercentage, updateProgress, truncateNumber } from '../common/utils';\nimport { DEFAULT_ANIMATION_DURATION, NO_ANIMATION } from '../common/constants';\nimport { validatePackage } from '@progress/kendo-vue-common';\nimport { packageMetadata } from '../package-metadata';\n/**\n * @hidden\n */\nvar ProgressBarVue2 = {\n name: 'KendoProgressBar',\n props: {\n animation: {\n type: [Boolean, Object],\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n reverse: {\n type: Boolean,\n default: false\n },\n label: String,\n labelRender: [String, Object, Function],\n labelVisible: {\n type: Boolean,\n default: true\n },\n labelPlacement: {\n type: String,\n default: undefined,\n validator: function validator(value) {\n return ['start', 'center', 'end'].includes(value);\n }\n },\n dir: {\n type: String,\n default: undefined\n },\n max: {\n type: Number,\n default: 100\n },\n min: {\n type: Number,\n default: 0\n },\n value: {\n type: Number,\n default: 0\n },\n orientation: {\n type: String,\n default: 'horizontal',\n validator: function validator(value) {\n return ['horizontal', 'vertical'].includes(value);\n }\n },\n tabIndex: Number,\n emptyStyle: Object,\n emptyClassName: String,\n progressStyle: Object,\n progressClassName: String,\n ariaLabel: String\n },\n created: function created() {\n validatePackage(packageMetadata);\n this.currentDir = this.$props.dir;\n },\n mounted: function mounted() {\n this._progressStatus = getRef(this, 'progressStatus');\n this._progressStatusWrap = getRef(this, 'progressStatusWrap');\n this.currentDir = this.$props.dir !== undefined ? this.$props.dir : isRtl(this.$el) ? 'rtl' : 'ltr';\n this.animationFrame = animate({\n duration: this.animationDuration,\n onStart: this.handleStart,\n onUpdate: this.handleUpdate,\n onEnd: this.handleEnd\n });\n },\n destroyed: !!isV3 ? undefined : function () {\n cancelAnimation(this.animationFrame);\n },\n // @ts-ignore\n unmounted: function unmounted() {\n cancelAnimation(this.animationFrame);\n },\n data: function data() {\n return {\n currentDir: undefined\n };\n },\n watch: {\n value: function value(_newValue, oldValue) {\n this.prevValue = oldValue;\n this.animationFrame = animate({\n duration: this.animationDuration,\n onStart: this.handleStart,\n onUpdate: this.handleUpdate,\n onEnd: this.handleEnd\n });\n }\n },\n computed: {\n wrapperClass: function wrapperClass() {\n var _a = this.$props,\n disabled = _a.disabled,\n reverse = _a.reverse,\n orientation = _a.orientation,\n value = _a.value;\n var isVertical = orientation === 'vertical';\n var indeterminateProp = value === null;\n return {\n 'k-progressbar': true,\n 'k-progressbar-horizontal': !isVertical,\n 'k-progressbar-vertical': isVertical,\n 'k-progressbar-reverse': reverse,\n 'k-progressbar-indeterminate': indeterminateProp,\n 'k-disabled': disabled\n };\n },\n isVertical: function isVertical() {\n return this.orientation === 'vertical';\n },\n animationDuration: function animationDuration() {\n var animation = this.$props.animation;\n return typeof animation !== 'boolean' && animation !== undefined ? animation.duration : animation ? DEFAULT_ANIMATION_DURATION : NO_ANIMATION;\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n disabled = _a.disabled,\n labelVisible = _a.labelVisible,\n labelPlacement = _a.labelPlacement,\n max = _a.max,\n min = _a.min,\n tabIndex = _a.tabIndex,\n emptyStyle = _a.emptyStyle,\n emptyClassName = _a.emptyClassName,\n progressStyle = _a.progressStyle,\n progressClassName = _a.progressClassName;\n var value = this.$props.value || 0;\n var indeterminateProp = this.$props.value === null;\n var formattedLabel = truncateNumber(value);\n var labelProps = {\n value: value\n };\n var label = this.$props.labelRender ? templateRendering.call(this, this.$props.labelRender, getListeners.call(this)) : undefined;\n var labelDefaultRendering = h('span', {\n 'class': 'k-progress-status'\n }, formattedLabel);\n var toggleButtonRendering = getTemplate.call(this, {\n h: h,\n template: label,\n defaultRendering: labelDefaultRendering,\n additionalProps: labelProps\n });\n var renderLabel = labelVisible ? this.$props.label ? h(\"span\", {\n \"class\": 'k-progress-status'\n }, [this.$props.label]) : toggleButtonRendering : undefined;\n var positionClasses = classNames('k-progress-status-wrap', {\n 'k-progress-start': labelPlacement === 'start',\n 'k-progress-center': labelPlacement === 'center',\n 'k-progress-end': labelPlacement === 'end' || labelPlacement === undefined\n });\n return h(\"div\", {\n \"class\": this.wrapperClass,\n dir: this.currentDir,\n attrs: this.v3 ? undefined : {\n dir: this.currentDir,\n tabindex: getTabIndex(tabIndex, disabled),\n role: 'progressbar',\n \"aria-valuemin\": min,\n \"aria-valuemax\": max,\n \"aria-valuenow\": indeterminateProp ? undefined : value,\n \"aria-disabled\": disabled,\n \"aria-label\": this.$props.ariaLabel\n },\n tabindex: getTabIndex(tabIndex, disabled),\n role: 'progressbar',\n \"aria-valuemin\": min,\n \"aria-valuemax\": max,\n \"aria-valuenow\": indeterminateProp ? undefined : value,\n \"aria-disabled\": disabled,\n \"aria-label\": this.$props.ariaLabel\n }, [h(\"span\", {\n \"class\": positionClasses + (emptyClassName ? ' ' + emptyClassName : ''),\n style: emptyStyle\n }, [renderLabel]), h(\"div\", {\n \"class\": 'k-progressbar-value k-selected',\n style: progressStyle,\n ref: setRef(this, 'progressStatus')\n }, [h(\"span\", {\n \"class\": positionClasses + (progressClassName ? ' ' + progressClassName : ''),\n ref: setRef(this, 'progressStatusWrap')\n }, [renderLabel])])]);\n },\n methods: {\n focus: function focus() {\n if (this.$el) {\n this.$el.focus();\n }\n },\n progressStatusElement: function progressStatusElement() {\n return this._progressStatus;\n },\n progressStatusWrapElement: function progressStatusWrapElement() {\n return this._progressStatusWrap;\n },\n handleStart: function handleStart() {\n var percentage = calculatePercentage(this.min, this.max, this.prevValue);\n updateProgress(this._progressStatus, this._progressStatusWrap, percentage, this.isVertical);\n },\n handleUpdate: function handleUpdate(progress) {\n var percentage = calculatePercentage(this.min, this.max, this.prevValue + (this.value - this.prevValue) * progress);\n updateProgress(this._progressStatus, this._progressStatusWrap, percentage, this.isVertical);\n },\n handleEnd: function handleEnd() {\n var percentage = calculatePercentage(this.min, this.max, this.value);\n updateProgress(this._progressStatus, this._progressStatusWrap, percentage, this.isVertical);\n }\n }\n};\n/**\n * @hidden\n */\nvar ProgressBar = ProgressBarVue2;\nexport { ProgressBar, ProgressBarVue2 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { classNames, getDir, getTabIndex } from '@progress/kendo-vue-common';\nimport { calculateRatio } from '../common/utils';\nimport { validatePackage } from '@progress/kendo-vue-common';\nimport { packageMetadata } from '../package-metadata';\n/**\n * @hidden\n */\nvar ChunkProgressBarVue2 = {\n name: 'KendoChunkProgressBar',\n props: {\n chunkCount: {\n type: Number,\n default: 5\n },\n ariaLabel: String,\n disabled: Boolean,\n reverse: {\n type: Boolean,\n default: false\n },\n max: {\n type: Number,\n default: 100\n },\n min: {\n type: Number,\n default: 0\n },\n value: {\n type: Number,\n default: 0\n },\n tabIndex: Number,\n emptyStyle: Object,\n emptyClassName: String,\n progressStyle: Object,\n progressClassName: String,\n orientation: {\n type: String,\n default: 'horizontal',\n validator: function validator(value) {\n return ['horizontal', 'vertical'].includes(value);\n }\n }\n },\n created: function created() {\n validatePackage(packageMetadata);\n },\n data: function data() {\n return {\n currentDir: undefined\n };\n },\n mounted: function mounted() {\n this.currentDir = getDir(this.$el, this.$props.dir);\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n chunkCount = _a.chunkCount,\n disabled = _a.disabled,\n orientation = _a.orientation,\n min = _a.min,\n max = _a.max,\n reverse = _a.reverse,\n tabIndex = _a.tabIndex,\n emptyStyle = _a.emptyStyle,\n emptyClassName = _a.emptyClassName,\n progressStyle = _a.progressStyle,\n progressClassName = _a.progressClassName;\n var value = this.$props.value;\n var indeterminateProp = this.$props.value === null;\n var isVertical = orientation === 'vertical';\n var renderChunks = function renderChunks(count) {\n var chunks = [];\n var chunkSizePercentage = 100 / count + '%';\n var progressRatio = calculateRatio(min, max, value);\n var completedChunksCount = Math.floor(progressRatio * count);\n var completedChunks = Array(count).fill(false);\n var reverseCompletedChunks = isVertical && !reverse || !isVertical && reverse;\n for (var i = 0; i < completedChunksCount; i++) {\n completedChunks[i] = true;\n }\n for (var i = 0; i < count; ++i) {\n var isComplete = completedChunks[i];\n var classes = isComplete ? progressClassName : emptyClassName;\n var layoutStyles = {\n width: !isVertical ? chunkSizePercentage : undefined,\n height: isVertical ? chunkSizePercentage : undefined\n };\n var styles = isComplete ? progressStyle : emptyStyle;\n var mergedStyles = __assign(__assign({}, layoutStyles), styles);\n chunks.push(h(\"li\", {\n key: i,\n \"class\": classNames('k-progressbar-chunk', {\n 'k-first': i === 0,\n 'k-last': i === count - 1,\n 'k-selected': isComplete\n }, classes),\n style: mergedStyles\n }));\n }\n return chunks;\n };\n return h(\"div\", {\n \"class\": classNames('k-progressbar', 'k-chunk-progressbar', {\n 'k-progressbar-horizontal': !isVertical,\n 'k-progressbar-vertical': isVertical,\n 'k-progressbar-reverse': reverse,\n 'k-progressbar-indeterminate': indeterminateProp,\n 'k-disabled': disabled\n }),\n dir: this.currentDir,\n attrs: this.v3 ? undefined : {\n dir: this.currentDir,\n tabIndex: getTabIndex(tabIndex, disabled),\n role: 'progressbar',\n \"aria-label\": this.$props.ariaLabel,\n \"aria-valuemin\": min,\n \"aria-valuemax\": max,\n \"aria-valuenow\": indeterminateProp ? undefined : value,\n \"aria-disabled\": disabled\n },\n tabIndex: getTabIndex(tabIndex, disabled),\n role: 'progressbar',\n \"aria-label\": this.$props.ariaLabel,\n \"aria-valuemin\": min,\n \"aria-valuemax\": max,\n \"aria-valuenow\": indeterminateProp ? undefined : value,\n \"aria-disabled\": disabled\n }, [h(\"ul\", {\n \"class\": 'k-progressbar-chunks k-reset'\n }, [renderChunks.call(this, chunkCount)])]);\n },\n methods: {\n focusElement: function focusElement() {\n if (this.$el) {\n this.$el.focus();\n }\n }\n }\n};\n/**\n * @hidden\n */\nvar ChunkProgressBar = ChunkProgressBarVue2;\nexport { ChunkProgressBar, ChunkProgressBarVue2 };","import { UploadFileStatus } from '../interfaces/UploadFileStatus';\nimport { guid } from '@progress/kendo-vue-common';\nvar ampRegExp = /&/g;\nvar ltRegExp = //g;\nvar htmlEncode = function (value) {\n return ('' + value).replace(ampRegExp, '&')\n .replace(ltRegExp, '<')\n .replace(gtRegExp, '>')\n .replace(quoteRegExp, '"')\n .replace(aposRegExp, ''');\n};\nvar getFileExtension = function (fileName) {\n var rFileExtension = /\\.([^\\.]+)$/;\n var matches = fileName.match(rFileExtension);\n return matches ? matches[0] : '';\n};\nvar getFileInfo = function (rawFile) {\n var fileName = rawFile.name;\n var fileSize = rawFile.size;\n return {\n extension: getFileExtension(fileName),\n name: htmlEncode(fileName),\n getRawFile: function () { return rawFile; },\n size: fileSize,\n status: UploadFileStatus.Selected,\n progress: 0,\n uid: ''\n };\n};\nvar getAllFileInfo = function (rawFiles) {\n var allFileInfo = new Array();\n var i;\n for (i = 0; i < rawFiles.length; i++) {\n allFileInfo.push(getFileInfo(rawFiles[i]));\n }\n return allFileInfo;\n};\nvar fileHasValidationErrors = function (file) {\n if (file.validationErrors && file.validationErrors.length > 0) {\n return true;\n }\n return false;\n};\nvar filesHaveValidationErrors = function (files) {\n for (var _i = 0, files_1 = files; _i < files_1.length; _i++) {\n var file = files_1[_i];\n if (fileHasValidationErrors(file)) {\n return true;\n }\n }\n return false;\n};\nvar getTotalFilesSizeMessage = function (files) {\n var totalSize = 0;\n var i;\n if (typeof files[0].size === 'number') {\n for (i = 0; i < files.length; i++) {\n if (files[i].size) {\n totalSize += (files[i].size || 0);\n }\n }\n }\n else {\n return '';\n }\n totalSize /= 1024;\n if (totalSize < 1024) {\n return totalSize.toFixed(2) + ' KB';\n }\n else {\n return (totalSize / 1024).toFixed(2) + ' MB';\n }\n};\nvar assignGuidToFiles = function (files, batchFiles) {\n var uid = guid();\n return files.map(function (file) {\n file.uid = batchFiles ? uid : guid();\n return file;\n });\n};\nvar getFileStatus = function (currentFiles) {\n var isUploading = false;\n var isUploaded = false;\n var isUploadFailed = false;\n var isUploadValidationFailed = false;\n var checkFilesStatus = function (files) {\n files.forEach(function (file) {\n if (file.status === UploadFileStatus.Uploading) {\n isUploading = true;\n }\n if (file.status === UploadFileStatus.Uploaded) {\n isUploaded = true;\n }\n if (file.status === UploadFileStatus.UploadFailed) {\n isUploadFailed = true;\n }\n if (fileHasValidationErrors(file)) {\n isUploadValidationFailed = true;\n }\n });\n };\n if (Array.isArray(currentFiles)) {\n checkFilesStatus(currentFiles);\n }\n else {\n Object.keys(currentFiles).forEach(function (key) {\n checkFilesStatus(currentFiles[key]);\n });\n }\n return [isUploading, isUploaded, isUploadFailed, isUploadValidationFailed];\n};\n/**\n * @hidden\n */\nexport default {\n fileHasValidationErrors: fileHasValidationErrors,\n filesHaveValidationErrors: filesHaveValidationErrors,\n getTotalFilesSizeMessage: getTotalFilesSizeMessage,\n getAllFileInfo: getAllFileInfo,\n getFileInfo: getFileInfo,\n getFileExtension: getFileExtension,\n htmlEncode: htmlEncode,\n assignGuidToFiles: assignGuidToFiles,\n getFileStatus: getFileStatus\n};\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-vue-buttons',\n productName: 'Kendo UI for Vue',\n productCodes: ['KENDOUIVUE', 'KENDOUICOMPLETE'],\n publishDate: 1706639537,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning'\n};\n","/**\n * @hidden\n */\nvar styles = {\n button: 'k-button',\n 'flat': 'k-flat',\n 'outline': 'k-outline',\n 'clear': 'k-button-clear',\n 'primary': 'k-primary',\n 'state-selected': 'k-selected',\n 'button-icon': 'k-button-icon',\n 'button-icontext': 'k-button-icontext',\n 'state-disabled': 'k-disabled',\n 'group-start': 'k-group-start',\n 'group-end': 'k-group-end',\n 'button-group': 'k-button-group',\n 'button-group-stretched': 'k-button-group-stretched',\n 'ltr': 'k-ltr',\n 'rtl': 'k-rtl'\n};\nvar notInternalButton = ':not(.k-dropdownlist > .k-button):not(.k-colorpicker > .k-button)';\n/**\n * @hidden\n */\nexport var internalButtons = '.k-dropdownlist > .k-button,.k-colorpicker > .k-button';\n/**\n * @hidden\n */\nexport var toolbarButtons = [\n 'button' + notInternalButton,\n '.k-button-group > button',\n '.k-dropdownlist',\n '.k-colorpicker'\n];\n/**\n * @hidden\n */\nexport default {\n styles: styles\n};\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { classNames, getDefaultSlots, validatePackage, kendoThemeMaps, Icon } from '@progress/kendo-vue-common';\nimport { packageMetadata } from './package-metadata';\nimport util from './util';\nvar styles = util.styles;\n/**\n * @hidden\n */\nvar ButtonVue2 = {\n name: 'KendoButton',\n // @ts-ignore\n emits: {\n click: null,\n mousedown: null,\n mouseup: null,\n pointerdown: null,\n pointerup: null,\n focus: null,\n blur: null,\n keypress: null,\n keydown: null\n },\n props: {\n ariaLabel: String,\n title: String,\n dir: String,\n selected: {\n type: Boolean,\n default: undefined\n },\n togglable: {\n type: Boolean,\n default: false\n },\n icon: {\n type: String,\n default: function _default() {\n return undefined;\n }\n },\n svgIcon: Object,\n iconClass: {\n type: String,\n default: function _default() {\n return undefined;\n }\n },\n imageUrl: {\n type: String,\n default: function _default() {\n return undefined;\n }\n },\n imageAlt: String,\n disabled: {\n type: Boolean,\n default: undefined\n },\n size: {\n type: String,\n default: 'medium'\n },\n shape: {\n type: String\n },\n rounded: {\n type: String,\n default: 'medium'\n },\n fillMode: {\n type: String,\n default: 'solid'\n },\n // eslint-disable-next-line max-len\n themeColor: {\n type: String,\n default: 'base'\n }\n },\n created: function created() {\n validatePackage(packageMetadata);\n this.currentActive = this.$props.togglable === true && this.$props.selected === true;\n this._activeTemp = undefined;\n },\n data: function data() {\n return {\n currentActive: null\n };\n },\n computed: {\n computedSelected: function computedSelected() {\n return this._activeTemp !== undefined ? this._activeTemp : this.$props.selected !== undefined ? this.$props.selected : this.currentActive;\n },\n buttonClasses: function buttonClasses() {\n var _a;\n var _b = this.$props,\n disabled = _b.disabled,\n icon = _b.icon,\n iconClass = _b.iconClass,\n imageUrl = _b.imageUrl,\n dir = _b.dir,\n svgIcon = _b.svgIcon,\n size = _b.size,\n shape = _b.shape,\n rounded = _b.rounded,\n fillMode = _b.fillMode,\n themeColor = _b.themeColor;\n var hasIcon = svgIcon !== undefined || icon !== undefined || iconClass !== undefined || imageUrl !== undefined;\n var defaultSlot = getDefaultSlots(this);\n var hasChildren = defaultSlot;\n return _a = {}, _a[styles.button] = true, _a[\"k-button-\".concat(kendoThemeMaps.sizeMap[size] || size)] = size, _a[\"k-button-\".concat(shape)] = shape && shape !== 'rectangle', _a[\"k-rounded-\".concat(kendoThemeMaps.roundedMap[rounded] || rounded)] = rounded, _a['k-icon-button'] = !hasChildren && hasIcon, _a['k-disabled'] = disabled, _a['k-selected'] = this.computedSelected, _a['k-rtl'] = dir === 'rtl', _a[\"k-button-\".concat(fillMode)] = fillMode, _a[\"k-button-\".concat(fillMode, \"-\").concat(themeColor)] = fillMode && themeColor, _a;\n }\n },\n updated: function updated() {\n if (this.$props.togglable && this.$props.selected !== undefined && this.$props.selected !== this.currentActive) {\n this.currentActive = this.$props.selected;\n }\n },\n methods: {\n focus: function focus(e) {\n this.$el.focus(e);\n },\n toggleIfApplicable: function toggleIfApplicable() {\n if (!this.disabled && this.$props.togglable && this.$props.selected === undefined) {\n var active = !this.currentActive;\n this._activeTemp = active;\n this.currentActive = active;\n this._activeTemp = undefined;\n }\n },\n handleClick: function handleClick(event) {\n this.toggleIfApplicable();\n if (!this.disabled) {\n this.$emit('click', event);\n }\n },\n handleMouseDown: function handleMouseDown(event) {\n if (!this.disabled) {\n this.$emit('mousedown', event);\n }\n },\n handlePointerDown: function handlePointerDown(event) {\n if (!this.disabled) {\n this.$emit('pointerdown', event);\n }\n },\n handleMouseUp: function handleMouseUp(event) {\n if (!this.disabled) {\n this.$emit('mouseup', event);\n }\n },\n handlePointerUp: function handlePointerUp(event) {\n if (!this.disabled) {\n this.$emit('pointerup', event);\n }\n },\n handleFocus: function handleFocus(event) {\n if (!this.disabled) {\n this.$emit('focus', event);\n }\n },\n handleBlur: function handleBlur(event) {\n if (!this.disabled) {\n this.$emit('blur', event);\n }\n },\n handleKeypress: function handleKeypress(event) {\n if (!this.disabled) {\n this.$emit('keypress', event);\n }\n },\n handleKeydown: function handleKeydown(event) {\n if (!this.disabled) {\n this.$emit('keydown', event);\n }\n },\n handleContextmenu: function handleContextmenu(event) {\n if (!this.disabled) {\n this.$emit('contextmenu', event);\n }\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n togglable = _a.togglable,\n icon = _a.icon,\n svgIcon = _a.svgIcon,\n iconClass = _a.iconClass,\n imageUrl = _a.imageUrl,\n imageAlt = _a.imageAlt;\n var defaultSlot = getDefaultSlots(this);\n var iconElement = function iconElement() {\n if (imageUrl) {\n return h(\"img\", {\n role: \"presentation\",\n attrs: this.v3 ? undefined : {\n role: \"presentation\",\n alt: imageAlt,\n src: imageUrl\n },\n \"class\": 'k-image',\n alt: imageAlt,\n src: imageUrl\n });\n } else if (icon || svgIcon) {\n var iconClasses = classNames('k-button-icon', iconClass);\n return h(Icon, {\n name: icon,\n attrs: this.v3 ? undefined : {\n name: icon,\n icon: svgIcon\n },\n icon: svgIcon,\n \"class\": iconClasses\n });\n } else if (iconClass) {\n return h(\"span\", {\n role: \"presentation\",\n attrs: this.v3 ? undefined : {\n role: \"presentation\"\n },\n \"class\": iconClass\n });\n }\n return null;\n };\n return h(\"button\", {\n \"class\": this.buttonClasses,\n onClick: this.handleClick,\n on: this.v3 ? undefined : {\n \"click\": this.handleClick,\n \"mousedown\": this.handleMouseDown,\n \"mouseup\": this.handleMouseUp,\n \"pointerdown\": this.handlePointerDown,\n \"pointerup\": this.handlePointerUp,\n \"focus\": this.handleFocus,\n \"blur\": this.handleBlur,\n \"keypress\": this.handleKeypress,\n \"keydown\": this.handleKeydown,\n \"contextmenu\": this.handleContextmenu\n },\n onMousedown: this.handleMouseDown,\n onMouseup: this.handleMouseUp,\n onPointerdown: this.handlePointerDown,\n onPointerup: this.handlePointerUp,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onKeypress: this.handleKeypress,\n onKeydown: this.handleKeydown,\n onContextmenu: this.handleContextmenu,\n title: this.title,\n attrs: this.v3 ? undefined : {\n title: this.title,\n \"aria-label\": this.ariaLabel,\n \"aria-disabled\": this.$props.disabled || undefined,\n \"aria-pressed\": togglable ? this.currentActive ? true : false : undefined\n },\n \"aria-label\": this.ariaLabel,\n \"aria-disabled\": this.$props.disabled || undefined,\n \"aria-pressed\": togglable ? this.currentActive ? true : false : undefined\n }, [iconElement.call(this), defaultSlot && h(\"span\", {\n \"class\": \"k-button-text\"\n }, [defaultSlot])]);\n }\n};\n/**\n * @hidden\n */\nvar Button = ButtonVue2;\nexport { Button, ButtonVue2 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * @hidden\n */\nvar ButtonWrapVue2 = {\n name: 'KendoButtonWrap',\n props: {},\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n return defaultSlot[0];\n }\n};\n/**\n * @hidden\n */\nvar ButtonWrap = ButtonWrapVue2;\nexport { ButtonWrap, ButtonWrapVue2 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { classNames, getDefaultSlots, validatePackage } from '@progress/kendo-vue-common';\nimport { ButtonWrap } from './ButtonWrap';\nimport { packageMetadata } from './package-metadata';\nimport util from './util';\nvar styles = util.styles;\n/**\n * @hidden\n */\nvar ButtonGroupVue2 = {\n name: 'KendoButtonGroup',\n props: {\n disabled: {\n type: Boolean,\n default: undefined\n },\n width: String,\n dir: {\n type: String,\n default: function _default() {\n return undefined;\n }\n }\n },\n created: function created() {\n validatePackage(packageMetadata);\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var _a;\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n var renderButton = function renderButton(child, index, isLast, isRtl) {\n var _a;\n var className = classNames((_a = {}, _a[styles['state-disabled']] = this.$props.disabled, _a[styles['group-start']] = isRtl ? isLast : index === 0, _a[styles['group-end']] = isRtl ? index === 0 : isLast, _a));\n return h(ButtonWrap, {\n class: className,\n attrs: this.v3 ? undefined : {\n 'aria-disabled': this.$props.disabled\n },\n 'aria-disabled': this.$props.disabled\n }, this.v3 ? function () {\n return [child];\n } : [child]);\n };\n var mapButtons = function mapButtons(children) {\n var _this = this;\n var count = children.length;\n var rtl = this.$props.dir !== undefined ? this.$props.dir === 'rtl' : this.$el && getComputedStyle(this.$el).direction === 'rtl' || false;\n return children.map(function (child, index) {\n if (_this.isValidButton(child)) {\n return renderButton.call(_this, child, index, index === count - 1, rtl);\n }\n return child;\n });\n };\n var groupClasses = classNames([styles['button-group']], (_a = {}, _a['k-disabled'] = this.$props.disabled, _a[styles['button-group-stretched']] = !!this.$props.width, _a));\n return h(\"div\", {\n style: {\n width: this.width\n },\n dir: this.$props.dir\n // Accessibility properties\n ,\n attrs: this.v3 ? undefined : {\n dir: this.$props.dir,\n role: 'group',\n \"aria-disabled\": this.$props.disabled\n },\n role: 'group',\n \"aria-disabled\": this.$props.disabled,\n \"class\": groupClasses\n }, [mapButtons.call(this, defaultSlot)]);\n },\n methods: {\n isValidButton: function isValidButton(child) {\n return child && child.tag && child.tag.toLowerCase().indexOf('button') !== -1 || child.componentOptions && child.componentOptions.tag && child.componentOptions.tag.toLowerCase().indexOf('button') !== -1 || child.type && child.type.name && child.type.name.toLowerCase().indexOf('kendobutton') !== -1;\n }\n }\n};\n/**\n * @hidden\n */\nvar ButtonGroup = ButtonGroupVue2;\nexport { ButtonGroup, ButtonGroupVue2 };","/**\n * @hidden\n */\nexport var DATA_ACTION;\n(function (DATA_ACTION) {\n DATA_ACTION[\"remove\"] = \"remove\";\n DATA_ACTION[\"add\"] = \"add\";\n DATA_ACTION[\"reorder\"] = \"reorder\";\n})(DATA_ACTION || (DATA_ACTION = {}));\n/**\n * @hidden\n */\nexport var dataReducer = function dataReducer(state, action) {\n switch (action.type) {\n case DATA_ACTION.add:\n // TODO v2\n break;\n case DATA_ACTION.remove:\n return state.filter(function (i) {\n return i[action.valueField] !== action.payload;\n });\n case DATA_ACTION.reorder:\n // TODO v2\n break;\n default:\n return state;\n }\n};","var __spreadArray = this && this.__spreadArray || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\n/**\n * @hidden\n */\nexport var SELECTION_TYPE;\n(function (SELECTION_TYPE) {\n SELECTION_TYPE[\"single\"] = \"single\";\n SELECTION_TYPE[\"multiple\"] = \"multiple\";\n SELECTION_TYPE[\"none\"] = \"none\";\n})(SELECTION_TYPE || (SELECTION_TYPE = {}));\n/**\n * @hidden\n */\nexport var SELECTION_ACTION;\n(function (SELECTION_ACTION) {\n SELECTION_ACTION[\"toggle\"] = \"toggle\";\n SELECTION_ACTION[\"remove\"] = \"remove\";\n})(SELECTION_ACTION || (SELECTION_ACTION = {}));\n/**\n * @hidden\n */\nexport var selectionReducer = function selectionReducer(state, action) {\n switch (action.selection) {\n case SELECTION_TYPE.single:\n switch (action.type) {\n case SELECTION_ACTION.toggle:\n {\n if (!Array.isArray(state) || state === null) {\n return action.payload === state ? null : action.payload;\n }\n throw new Error('State cannot be an array in single selection');\n }\n case SELECTION_ACTION.remove:\n {\n return action.payload === state ? null : state;\n }\n default:\n return state;\n }\n case SELECTION_TYPE.multiple:\n switch (action.type) {\n case SELECTION_ACTION.toggle:\n {\n if (Array.isArray(state)) {\n return state.some(function (i) {\n return i === action.payload;\n }) ? state.filter(function (i) {\n return i !== action.payload;\n }) : __spreadArray(__spreadArray([], state, true), [action.payload], false);\n }\n if (state === null) {\n return [action.payload];\n }\n throw new Error('State cannot be non-array in multiple selection');\n }\n case SELECTION_ACTION.remove:\n {\n if (Array.isArray(state)) {\n return state.some(function (i) {\n return i === action.payload;\n }) ? state.filter(function (i) {\n return i !== action.payload;\n }) : __spreadArray(__spreadArray([], state, true), [action.payload], false);\n }\n return state;\n }\n default:\n return state;\n }\n case SELECTION_TYPE.none:\n return null;\n default:\n return state;\n }\n};","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nvar ref = allVue.ref;\nimport { classNames, getTabIndex, Keys, noop, validatePackage, kendoThemeMaps, setRef, getRef, templateRendering, getListeners, getTemplate, Icon, getIconName } from '@progress/kendo-vue-common';\nimport { checkIcon, xCircleIcon } from '@progress/kendo-svg-icons';\nimport { FOCUS_ACTION } from './focus-reducer';\nimport { DATA_ACTION } from './data-reducer';\nimport { SELECTION_ACTION } from './selection-reducer';\nimport { packageMetadata } from '../package-metadata';\n/**\n * @hidden\n */\nvar ChipVue2 = {\n name: 'KendoVueChip',\n props: {\n id: String,\n text: String,\n avatar: {\n type: [String, Function, Object],\n default: function _default() {\n return undefined;\n }\n },\n value: [String, Object],\n dir: {\n type: String,\n default: function _default() {\n return 'ltr';\n }\n },\n removable: {\n type: Boolean,\n default: false\n },\n removeIcon: {\n type: String,\n default: function _default() {\n return 'x-circle';\n }\n },\n removeSvgIcon: {\n type: Object,\n default: function _default() {\n return xCircleIcon;\n }\n },\n disabled: {\n type: Boolean,\n default: false\n },\n icon: String,\n svgIcon: Object,\n selectedIcon: {\n type: String,\n default: function _default() {\n return 'check';\n }\n },\n selectedSvgIcon: {\n type: Object,\n default: function _default() {\n return checkIcon;\n }\n },\n look: {\n type: String,\n default: function _default() {\n return 'solid';\n }\n },\n size: {\n type: String,\n default: 'medium'\n },\n rounded: {\n type: String,\n default: 'medium'\n },\n fillMode: {\n type: String,\n default: 'solid',\n validator: function validator(value) {\n return [null, 'flat', 'outline', 'solid'].includes(value);\n }\n },\n // eslint-disable-next-line max-len\n themeColor: {\n type: String,\n default: 'base',\n validator: function validator(value) {\n return [null, 'base', 'error', 'info', 'success', 'warning'].includes(value);\n }\n },\n dataItem: Object,\n selected: Boolean,\n ariaDescribedBy: String,\n role: {\n type: String,\n default: 'button'\n }\n },\n // @ts-ignore\n emits: {\n 'click': null,\n 'keydown': null,\n 'blur': null,\n 'focus': null,\n 'remove': null\n },\n inject: {\n kendoSelection: {\n default: {\n value: null\n }\n },\n kendoFocused: {\n default: {\n value: null\n }\n },\n kendoDataItems: {\n default: null\n },\n handleDispatchDataItems: {\n default: noop\n },\n handleDispatchSelection: {\n default: noop\n },\n handleDispatchFocus: {\n default: noop\n }\n },\n created: function created() {\n this.currentDir = undefined;\n validatePackage(packageMetadata);\n },\n mounted: function mounted() {\n this.chip = getRef(this, 'chip');\n this.currentDir = this.$props.dir !== undefined ? this.$props.dir === 'rtl' : this.$el && getComputedStyle(this.$el).direction === 'rtl' || false;\n },\n updated: function updated() {\n if (this.kendoFocused.value === this.$props.value && this.$el) {\n this.$el.focus();\n }\n },\n computed: {\n currentSelected: function currentSelected() {\n var _this = this;\n return this.$props.selected || (Array.isArray(this.kendoSelection.value) ? this.kendoSelection.value.some(function (i) {\n return i === _this.$props.value;\n }) : this.kendoSelection.value === this.$props.value);\n },\n chipLabelClass: function chipLabelClass() {\n return {\n 'k-chip-label': true,\n 'k-text-ellipsis': true\n };\n }\n },\n methods: {\n computedFocused: function computedFocused() {\n return this.kendoFocused.value === this.$props.value;\n },\n handleClick: function handleClick(event) {\n if (this.handleDispatchSelection) {\n this.handleDispatchSelection({\n type: SELECTION_ACTION.toggle,\n payload: this.$props.value,\n event: event\n });\n }\n this.$emit('click', {\n target: this.target,\n event: event\n });\n },\n handleRemove: function handleRemove(event) {\n event.stopPropagation();\n if (!this.$props.removable) {\n return;\n }\n if (this.handleDispatchFocus) {\n this.handleDispatchDataItems({\n type: DATA_ACTION.remove,\n payload: this.$props.value,\n event: event\n });\n this.handleDispatchFocus({\n type: FOCUS_ACTION.reset,\n payload: this.$props.value,\n event: event\n });\n this.handleDispatchSelection({\n type: SELECTION_ACTION.remove,\n payload: this.$props.value,\n event: event\n });\n }\n this.$emit('remove', {\n target: this.target,\n event: event\n });\n },\n handleKeyDown: function handleKeyDown(event) {\n switch (event.keyCode) {\n case Keys.left:\n if (this.handleDispatchFocus) {\n this.handleDispatchFocus({\n type: FOCUS_ACTION.prev,\n payload: this.$props.value,\n event: event\n });\n }\n break;\n case Keys.right:\n if (this.handleDispatchFocus) {\n this.handleDispatchFocus({\n type: FOCUS_ACTION.next,\n payload: this.$props.value,\n event: event\n });\n }\n break;\n case Keys.enter:\n if (this.handleDispatchFocus) {\n this.handleDispatchSelection({\n type: SELECTION_ACTION.toggle,\n payload: this.$props.value,\n event: event\n });\n }\n break;\n case Keys.delete:\n this.handleRemove(event);\n break;\n default:\n break;\n }\n this.$emit('keydown', {\n target: this.target,\n event: event\n });\n },\n handleFocus: function handleFocus(event) {\n if (this.handleDispatchFocus) {\n this.handleDispatchFocus({\n payload: this.$props.value,\n type: FOCUS_ACTION.current,\n event: event\n });\n }\n this.$emit('focus', {\n target: this.target,\n event: event\n });\n },\n handleBlur: function handleBlur(event) {\n this.$emit('blur', {\n target: this.target,\n event: event\n });\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n var chipRef = ref(null);\n return {\n v3: v3,\n chipRef: chipRef\n };\n },\n render: function render(createElement) {\n var _a;\n var h = gh || createElement;\n var _b = this.$props,\n size = _b.size,\n rounded = _b.rounded,\n themeColor = _b.themeColor,\n fillMode = _b.fillMode,\n look = _b.look,\n avatar = _b.avatar,\n icon = _b.icon,\n svgIcon = _b.svgIcon,\n selectedIcon = _b.selectedIcon,\n selectedSvgIcon = _b.selectedSvgIcon,\n removeIcon = _b.removeIcon,\n removeSvgIcon = _b.removeSvgIcon;\n var avatarTemplate = templateRendering.call(this, avatar, getListeners.call(this));\n var avatarDefaultRendering = avatar ? h(\"div\", {\n \"class\": \"k-chip-avatar k-avatar k-rounded-\".concat(avatar.rounded || 'medium', \" k-avatar-\").concat(kendoThemeMaps.sizeMap[size] || size, \" k-avatar-solid k-avatar-solid-primary\"),\n style: avatar.style\n }, [h(\"span\", {\n \"class\": \"k-avatar-image\"\n }, [h(\"img\", {\n src: avatar.imageUrl,\n attrs: this.v3 ? undefined : {\n src: avatar.imageUrl,\n alt: avatar.imageAlt\n },\n alt: avatar.imageAlt\n })])]) : null;\n var avatarRender = getTemplate.call(this, {\n h: h,\n template: avatarTemplate\n });\n return h(\"div\", {\n role: this.$props.role,\n attrs: this.v3 ? undefined : {\n role: this.$props.role,\n id: this.$props.value,\n dir: this.currentDir,\n tabindex: getTabIndex(this.$props.tabIndex, this.$props.disabled, undefined),\n \"aria-pressed\": this.$props.role === 'button' ? this.currentSelected : undefined,\n \"aria-selected\": this.$props.role === 'option' ? this.currentSelected : undefined,\n \"aria-disabled\": this.$props.disabled,\n \"aria-describedby\": this.$props.ariaDescribedBy\n },\n id: this.$props.value,\n ref: setRef(this, 'chip'),\n dir: this.currentDir,\n tabindex: getTabIndex(this.$props.tabIndex, this.$props.disabled, undefined),\n \"class\": classNames('k-chip', (_a = {\n 'k-rtl': this.currentDir === 'rtl',\n 'k-disabled': this.$props.disabled,\n 'k-selected': this.currentSelected,\n 'k-focus': this.computedFocused()\n }, _a[\"k-chip-\".concat(kendoThemeMaps.sizeMap[size] || size)] = size, _a[\"k-rounded-\".concat(kendoThemeMaps.roundedMap[rounded] || rounded)] = rounded, _a[\"k-chip-\".concat(fillMode)] = fillMode, _a[\"k-chip-\".concat(fillMode, \"-\").concat(themeColor)] = Boolean(fillMode && themeColor), _a['k-chip-outline'] = look === 'outline' || look === 'outlined', _a['k-chip-solid'] = look === 'solid' || look === 'filled', _a)),\n \"aria-pressed\": this.$props.role === 'button' ? this.currentSelected : undefined,\n \"aria-selected\": this.$props.role === 'option' ? this.currentSelected : undefined,\n \"aria-disabled\": this.$props.disabled,\n \"aria-describedby\": this.$props.ariaDescribedBy,\n onFocus: this.handleFocus,\n on: this.v3 ? undefined : {\n \"focus\": this.handleFocus,\n \"blur\": this.handleBlur,\n \"click\": this.handleClick,\n \"keydown\": this.handleKeyDown\n },\n onBlur: this.handleBlur,\n onClick: this.handleClick,\n onKeydown: this.handleKeyDown\n }, [this.currentSelected && (selectedIcon || selectedSvgIcon) && h(Icon, {\n name: getIconName(selectedIcon),\n attrs: this.v3 ? undefined : {\n name: getIconName(selectedIcon),\n icon: selectedSvgIcon,\n size: 'small'\n },\n icon: selectedSvgIcon,\n size: 'small'\n }), (icon || svgIcon) && h(Icon, {\n name: getIconName(icon),\n attrs: this.v3 ? undefined : {\n name: getIconName(icon),\n icon: svgIcon,\n size: 'small'\n },\n icon: svgIcon,\n size: 'small'\n }), avatar ? avatar.imageUrl ? avatarDefaultRendering : avatarRender : null, h(\"span\", {\n \"class\": 'k-chip-content'\n }, [this.$props.text && h(\"span\", {\n \"aria-label\": this.$props.text,\n attrs: this.v3 ? undefined : {\n \"aria-label\": this.$props.text\n },\n \"class\": this.chipLabelClass\n }, [this.$props.text])]), this.$props.removable && h(\"span\", {\n \"class\": \"k-chip-actions\"\n }, [h(\"span\", {\n \"class\": \"k-chip-action k-chip-remove-action\"\n }, [h(Icon, {\n name: getIconName(removeIcon),\n attrs: this.v3 ? undefined : {\n name: getIconName(removeIcon),\n icon: removeSvgIcon,\n size: 'small'\n },\n icon: removeSvgIcon,\n size: 'small',\n onClick: this.handleRemove,\n on: this.v3 ? undefined : {\n \"click\": this.handleRemove\n }\n })])])]);\n }\n};\n/**\n * @hidden\n */\nvar Chip = ChipVue2;\nexport { Chip, ChipVue2 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nvar ref = allVue.ref;\nimport { getTabIndex, classNames, getListeners, templateRendering, getTemplate, validatePackage, kendoThemeMaps, setRef } from '@progress/kendo-vue-common';\nimport { selectionReducer } from './selection-reducer';\nimport { focusReducer } from './focus-reducer';\nimport { dataReducer } from './data-reducer';\nimport { Chip } from './Chip';\nimport { packageMetadata } from '../package-metadata';\n/**\n * @hidden\n */\nvar ChipListVue2 = {\n name: 'KendoVueChipList',\n inheritAttrs: false,\n props: {\n id: String,\n tabIndex: Number,\n dataItems: Array,\n defaultDataItems: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n value: [Object, Array, String, Number],\n defaultValue: {\n type: [Object, Array, String, Number],\n default: function _default() {\n return null;\n }\n },\n size: {\n type: String,\n default: 'medium'\n },\n rounded: {\n type: String,\n default: 'medium'\n },\n fillMode: {\n type: String,\n default: 'solid',\n validator: function validator(value) {\n return [null, 'flat', 'outline', 'solid'].includes(value);\n }\n },\n selection: {\n type: String,\n default: function _default() {\n return 'none';\n }\n },\n textField: {\n type: String,\n default: function _default() {\n return 'text';\n }\n },\n valueField: {\n type: String,\n default: function _default() {\n return 'value';\n }\n },\n avatarField: {\n type: String,\n default: function _default() {\n return 'avatar';\n }\n },\n disabled: {\n type: Boolean,\n default: false\n },\n dir: {\n type: String,\n default: function _default() {\n return 'ltr';\n }\n },\n chip: [String, Function, Object],\n ariaLabelledBy: String,\n ariaDescribedBy: String\n },\n provide: function provide() {\n return {\n kendoSelection: this.currentValue,\n kendoFocused: this.currentFocused,\n kendoDataItems: this.computedDataItems,\n handleDispatchDataItems: this.handleDispatchDataItems,\n handleDispatchSelection: this.handleDispatchSelection,\n handleDispatchFocus: this.handleDispatchFocus\n };\n },\n created: function created() {\n validatePackage(packageMetadata);\n this.currentDataItems = this.$props.dataItems || this.$props.defaultDataItems;\n this.currentValue.value = this.$props.value || this.$props.defaultValue;\n },\n data: function data() {\n return {\n currentDataItems: [],\n currentDir: 'ltr',\n isRtl: false,\n currentFocused: {\n value: false\n },\n currentValue: {\n value: null\n }\n };\n },\n mounted: function mounted() {\n this.chipList = this.v3 ? this.chipListRef : this.$refs.chipList;\n this.currentDir = this.$props.dir !== undefined ? this.$props.dir : this.$el && getComputedStyle(this.$el).direction === 'rtl' || false;\n this.isRtl = this.currentDir === 'rtl';\n },\n computed: {\n computedDataItems: function computedDataItems() {\n return this.$props.dataItems || this.currentDataItems;\n },\n computedValue: function computedValue() {\n return this.$props.value || this.currentValue.value;\n },\n items: function items() {\n return this.computedDataItems.reduce(this.itemsReducer, []);\n }\n },\n methods: {\n handleDispatchSelection: function handleDispatchSelection(action) {\n var newState = selectionReducer(this.computedValue, __assign(__assign({}, action), {\n selection: this.$props.selection,\n state: this.computedValue\n }));\n this.handleChange(newState, action.event);\n this.currentValue.value = newState;\n },\n handleDispatchFocus: function handleDispatchFocus(action) {\n var newState = focusReducer(action.payload, __assign(__assign({}, action), {\n items: this.items\n }));\n this.currentFocused.value = newState;\n },\n handleDispatchDataItems: function handleDispatchDataItems(action) {\n var newState = dataReducer(this.computedDataItems, __assign(__assign({}, action), {\n state: this.computedDataItems,\n valueField: this.$props.valueField\n }));\n this.handleDataChange(newState, action.event);\n this.currentDataItems = newState;\n },\n handleChange: function handleChange(newValue, event) {\n if (this.$el) {\n this.$emit('change', {\n value: newValue,\n target: this.$el,\n event: event\n });\n }\n },\n handleDataChange: function handleDataChange(newData, event) {\n if (this.$el) {\n this.$emit('datachange', {\n value: newData,\n target: this.$el,\n event: event\n });\n }\n },\n itemsReducer: function itemsReducer(acc, current) {\n acc.push(current[this.$props.valueField || this.$props.valueField]);\n return acc;\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n var chipListRef = ref(null);\n return {\n v3: v3,\n chipListRef: chipListRef\n };\n },\n render: function render(createElement) {\n var _a;\n var h = gh || createElement;\n var size = this.$props.size;\n return h(\"div\", {\n ref: setRef(this, 'chipList'),\n role: 'listbox',\n attrs: this.v3 ? undefined : {\n role: 'listbox',\n id: this.$props.id,\n dir: this.currentDir,\n tabindex: getTabIndex(this.$props.tabIndex, this.$props.disabled, undefined),\n \"aria-labelledby\": this.$props.ariaLabelledBy,\n \"aria-describedby\": this.$props.ariaDescribedBy,\n \"aria-orientation\": 'horizontal',\n \"aria-multiselectable\": this.$props.selection === 'multiple' ? true : undefined\n },\n id: this.$props.id,\n dir: this.currentDir,\n style: this.$attrs.style,\n tabindex: getTabIndex(this.$props.tabIndex, this.$props.disabled, undefined),\n \"class\": classNames('k-chip-list', (_a = {}, _a[\"k-chip-list-\".concat(kendoThemeMaps.sizeMap[size] || size)] = size, _a['k-rtl'] = this.currentDir === 'rtl', _a['k-selection-single'] = this.$props.selection === 'single', _a['k-selection-multiple'] = this.$props.selection === 'multiple', _a['k-disabled'] = this.$props.disabled, _a)),\n \"aria-labelledby\": this.$props.ariaLabelledBy,\n \"aria-describedby\": this.$props.ariaDescribedBy,\n \"aria-orientation\": 'horizontal',\n \"aria-multiselectable\": this.$props.selection === 'multiple' ? true : undefined\n }, [this.computedDataItems.map(function (item) {\n var chipTemplate = templateRendering.call(this, this.$props.chip, getListeners.call(this));\n var chipDefaultRendering =\n // @ts-ignore function children\n h(Chip, {\n role: 'option',\n attrs: this.v3 ? undefined : {\n role: 'option',\n dataItem: item,\n text: item[this.$props.textField],\n value: item[this.$props.valueField],\n avatar: item[this.$props.avatarField],\n size: this.$props.size,\n rounded: this.$props.rounded,\n fillMode: this.$props.fillMode\n },\n dataItem: item,\n key: item[this.$props.valueField],\n text: item[this.$props.textField],\n value: item[this.$props.valueField],\n avatar: item[this.$props.avatarField],\n size: this.$props.size,\n rounded: this.$props.rounded,\n fillMode: this.$props.fillMode\n });\n return getTemplate.call(this, {\n h: h,\n template: chipTemplate,\n defaultRendering: chipDefaultRendering,\n additionalProps: {\n dataItem: item,\n key: item[this.$props.valueField],\n text: item[this.$props.textField],\n value: item[this.$props.valueField],\n size: this.$props.size\n }\n });\n }, this)]);\n }\n};\n/**\n * @hidden\n */\nvar ChipList = ChipListVue2;\nexport { ChipList, ChipListVue2 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nvar ref = allVue.ref;\nimport { classNames, getRef, getTabIndex, getTemplate, Icon, setRef } from '@progress/kendo-vue-common';\n/**\n * @hidden\n */\nvar FloatingActionButtonItemVue2 = {\n name: 'KendoVueFloatingActionButtonItem',\n props: {\n disabled: Boolean,\n focused: Boolean,\n index: Number,\n icon: String,\n item: [String, Function, Object],\n dataItem: Object,\n text: String,\n tabIndex: Number,\n customProp: [String, Function, Object]\n },\n // @ts-ignore\n emits: {\n 'click': null,\n 'down': null\n },\n mounted: function mounted() {\n this.element = getRef(this, 'element');\n },\n computed: {\n itemClassNames: function itemClassNames() {\n return classNames('k-fab-item', {\n 'k-focus': this.focused,\n 'k-disabled': this.disabled\n });\n }\n },\n methods: {\n handleClick: function handleClick(event) {\n if (this.$props.index !== undefined && !this.$props.disabled) {\n this.$emit('click', event, this.$props.index);\n }\n },\n focusElement: function focusElement() {\n if (this.$el) {\n this.$el.focus();\n }\n },\n onDown: function onDown(event) {\n this.$emit('down', event);\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n var elementRef = ref(null);\n return {\n v3: v3,\n elementRef: elementRef\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n disabled = _a.disabled,\n id = _a.id,\n tabIndex = _a.tabIndex,\n dataItem = _a.dataItem;\n var text = dataItem.text,\n icon = dataItem.icon,\n svgIcon = dataItem.svgIcon;\n var item;\n var itemDefaultRendering = h(\"li\", {\n ref: setRef(this, 'element'),\n id: id,\n attrs: this.v3 ? undefined : {\n id: id,\n role: 'menuitem',\n tabindex: getTabIndex(tabIndex, disabled),\n \"aria-disabled\": disabled,\n \"aria-label\": \"\".concat(text || '', \" floatingactionbutton item\")\n },\n \"class\": this.itemClassNames,\n role: 'menuitem',\n tabindex: getTabIndex(tabIndex, disabled),\n \"aria-disabled\": disabled,\n \"aria-label\": \"\".concat(text || '', \" floatingactionbutton item\"),\n onClick: this.handleClick,\n on: this.v3 ? undefined : {\n \"click\": this.handleClick,\n \"mousedown\": this.onDown,\n \"pointerdown\": this.onDown\n },\n onMousedown: this.onDown,\n onPointerdown: this.onDown\n }, [text && h(\"span\", {\n \"class\": \"k-fab-item-text\"\n }, [text]), (svgIcon || icon) && h(Icon, {\n name: icon,\n attrs: this.v3 ? undefined : {\n name: icon,\n icon: svgIcon\n },\n icon: svgIcon,\n \"class\": \"k-fab-item-icon\"\n })]);\n item = getTemplate.call(this, {\n h: h,\n template: this.$props.item,\n defaultRendering: itemDefaultRendering,\n additionalProps: this.$props,\n additionalListeners: {\n click: this.handleClick\n }\n });\n return item;\n }\n};\n/**\n * @hidden\n */\nvar FloatingActionButtonItem = FloatingActionButtonItemVue2;\nexport { FloatingActionButtonItem, FloatingActionButtonItemVue2 };","/**\n * @hidden\n */\nexport var DEFAULT_OFFSET = '16px';\n/**\n * @hidden\n */\nexport var toStringValues = function (val) {\n if (typeof val === 'number') {\n return val + 'px';\n }\n return val;\n};\n/**\n * @hidden\n */\nexport var getAnchorAlign = function (fabAlign, rtl) {\n var align = { horizontal: (rtl ? 'right' : 'left'), vertical: 'bottom' };\n if (fabAlign.horizontal === 'end') {\n align.horizontal = rtl ? 'left' : 'right';\n }\n return align;\n};\n/**\n * @hidden\n */\nexport var getPopupAlign = function (fabAlign, rtl) {\n var align = { horizontal: (rtl ? 'right' : 'left'), vertical: 'top' };\n if (fabAlign.horizontal === 'end') {\n align.horizontal = rtl ? 'left' : 'right';\n }\n return align;\n};\n/**\n * @hidden\n */\nexport var getTextDirectionClass = function (rtl, hAlign) {\n var al = hAlign === 'end' ? 'end' : 'start';\n var directions = {\n rtl: { end: 'k-text-left', start: 'k-text-right' },\n ltr: { start: 'k-text-left', end: 'k-text-right' }\n };\n return directions[rtl][al];\n};\n/**\n * @hidden\n */\nexport var position = function (ref, align, alignOffset, isRtl) {\n var horizontal = align.horizontal;\n var vertical = align.vertical;\n if (ref) {\n var xFab = alignOffset && alignOffset.x !== undefined ?\n toStringValues(alignOffset.x) :\n DEFAULT_OFFSET;\n var xCenterFab = alignOffset && alignOffset.x !== undefined ?\n \"calc(50% + \".concat(toStringValues(alignOffset.x), \")\") :\n '50%';\n var yFab = alignOffset && alignOffset.y !== undefined ?\n toStringValues(alignOffset.y) :\n DEFAULT_OFFSET;\n var yCenterFab = alignOffset && alignOffset.y !== undefined ?\n \"calc(50% + \".concat(toStringValues(alignOffset.y), \")\") :\n '50%';\n ref.style.setProperty(horizontalPosition(align, isRtl), horizontal === 'center' ? xCenterFab : xFab);\n ref.style.setProperty(verticalPosition(align), vertical === 'middle' ? yCenterFab : yFab);\n if (isRtl) {\n if ((vertical === 'top' || vertical === 'bottom') && horizontal === 'start') {\n ref.style.setProperty('left', 'unset');\n }\n if (vertical === 'middle' && horizontal === 'end') {\n ref.style.setProperty('right', 'unset');\n }\n if (vertical === 'middle' && horizontal === 'start') {\n ref.style.setProperty('left', 'unset');\n }\n }\n }\n};\nvar horizontalPosition = function (align, isRtl) {\n var horizontal = align.horizontal;\n return {\n end: isRtl ? 'left' : 'right',\n center: 'left',\n start: isRtl ? 'right' : 'left'\n }[horizontal || 'end'];\n};\nvar verticalPosition = function (align) {\n return {\n top: 'top',\n middle: 'top',\n bottom: 'bottom'\n }[align.vertical || 'bottom'];\n};\n","import { parents, siblingContainer } from '@progress/kendo-popup-common';\n/**\n * @hidden\n */\nexport var eitherRect = function eitherRect(rect, offset) {\n if (!rect) {\n return {\n height: 0,\n left: offset.left,\n top: offset.top,\n width: 0\n };\n }\n return rect;\n};\n/**\n * @hidden\n */\nexport var replaceOffset = function replaceOffset(rect, offset) {\n if (!offset) {\n return rect;\n }\n var result = {\n height: rect.height,\n left: offset.left,\n top: offset.top,\n width: rect.width\n };\n return result;\n};\n/**\n * @hidden\n */\nexport var removeStackingOffset = function removeStackingOffset(rect, stackingOffset) {\n if (!stackingOffset) {\n return rect;\n }\n var result = {\n height: rect.height,\n left: rect.left - stackingOffset.left,\n top: rect.top - stackingOffset.top,\n width: rect.width\n };\n return result;\n};\n/**\n * @hidden\n */\nexport var isDifferentOffset = function isDifferentOffset(oldOffset, newOffset) {\n var oldLeft = oldOffset.left,\n oldTop = oldOffset.top;\n var newLeft = newOffset.left,\n newTop = newOffset.top;\n return Math.abs(oldLeft - newLeft) >= 1 || Math.abs(oldTop - newTop) >= 1;\n};\n/**\n * @hidden\n */\nexport var isDocumentAvailable = function isDocumentAvailable() {\n return typeof document !== 'undefined' && !!document.body;\n};\n/**\n * @hidden\n */\nexport var isWindowAvailable = function isWindowAvailable() {\n return typeof window !== 'undefined';\n};\n/**\n * @hidden\n */\nexport var hasBoundingRect = function hasBoundingRect(elem) {\n return !!elem.getBoundingClientRect;\n};\n/**\n * @hidden\n */\nexport var OVERFLOW_REGEXP = /auto|scroll/;\n/**\n * @hidden\n */\nvar overflowStyle = function overflowStyle(element) {\n var styles = window.getComputedStyle(element);\n return \"\".concat(styles.overflow).concat(styles.overflowX).concat(styles.overflowY);\n};\n/**\n * @hidden\n */\nexport var scrollableParents = function scrollableParents(element) {\n var parentElements = [];\n if (!isDocumentAvailable() || !isWindowAvailable()) {\n return parentElements;\n }\n var parent = element.parentElement;\n while (parent) {\n if (OVERFLOW_REGEXP.test(overflowStyle(parent))) {\n parentElements.push(parent);\n }\n parent = parent.parentElement;\n }\n parentElements.push(window);\n return parentElements;\n};\n/**\n * @hidden\n */\nexport var FRAME_DURATION = 1000 / 60; // 1000ms divided by 60fps\n/**\n * @hidden\n */\nexport var hasRelativeStackingContext = function hasRelativeStackingContext() {\n if (!isDocumentAvailable()) {\n return false;\n }\n var top = 10;\n var parent = document.createElement('div');\n parent.style.transform = 'matrix(10, 0, 0, 10, 0, 0)';\n parent.innerHTML = \"child
\";\n document.body.appendChild(parent);\n if (parent && parent.firstChild) {\n var firstChild = parent.firstChild;\n firstChild.style.position = 'fixed';\n firstChild.style.top = \"\".concat(top, \"px\");\n }\n var isDifferent = parent.children[0].getBoundingClientRect().top !== top;\n document.body.removeChild(parent);\n return isDifferent;\n};\n/**\n * @hidden\n */\nexport var HAS_RELATIVE_STACKING_CONTEXT = hasRelativeStackingContext();\n/**\n * @hidden\n */\nexport var zIndex = function zIndex(anchor, container) {\n if (!anchor || !isDocumentAvailable() || !isWindowAvailable()) {\n return null;\n }\n var sibling = siblingContainer(anchor, container);\n if (!sibling) {\n return null;\n }\n var result = [anchor].concat(parents(anchor, sibling)).reduce(function (index, p) {\n var zIndexStyle = p.style.zIndex || window.getComputedStyle(p).zIndex;\n var current = parseInt(zIndexStyle, 10);\n return current > index ? current : index;\n }, 0);\n return result ? result + 1 : null;\n};\n/**\n * @hidden\n */\nexport var CollisionType = {\n fit: 'fit',\n flip: 'flip'\n};\n/**\n * @hidden\n */\nexport var AlignPoint = {\n left: 'left',\n center: 'center',\n right: 'right',\n bottom: 'bottom',\n top: 'top'\n};\n/**\n * @hidden\n */\nexport var throttle = function throttle(func, wait, options) {\n if (options === void 0) {\n options = {};\n }\n var timeout, context, args, result;\n var previous = 0;\n options = options || {};\n var later = function later() {\n previous = options.leading === false ? 0 : new Date().getTime();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) {\n context = args = null;\n }\n };\n var throttled = function throttled() {\n var now = new Date().getTime();\n if (!previous && options.leading === false) {\n previous = now;\n }\n var remaining = wait - (now - previous);\n // @ts-ignore\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) {\n context = args = null;\n }\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n return throttled;\n};","import { eitherRect, removeStackingOffset } from '../util';\n/**\n * @hidden\n */\nvar AlignService = /** @class */ (function () {\n function AlignService(_dom) {\n this._dom = _dom;\n }\n AlignService.prototype.alignElement = function (settings) {\n var anchor = settings.anchor, element = settings.element, anchorAlign = settings.anchorAlign, elementAlign = settings.elementAlign, offset = settings.offset;\n var fixedMode = !this._dom.hasOffsetParent(element);\n var anchorRect = fixedMode ?\n this.absoluteRect(anchor, element, offset) :\n this.relativeRect(anchor, element, offset);\n return this._dom.align({\n anchorAlign: anchorAlign,\n anchorRect: anchorRect,\n elementAlign: elementAlign,\n elementRect: this._dom.offset(element)\n });\n };\n AlignService.prototype.absoluteRect = function (anchor, element, offset) {\n var dom = this._dom;\n var rect = eitherRect(dom.offset(anchor), offset);\n var stackingOffset = dom.stackingElementOffset(element);\n var removedOffset = removeStackingOffset(rect, stackingOffset);\n var stackingScroll = dom.stackingElementScroll(element);\n var withScroll = dom.addScroll(removedOffset, stackingScroll);\n var scrollPosition = this.elementScrollPosition(anchor, element);\n var result = dom.removeScroll(withScroll, scrollPosition);\n result.left += window.scrollX || window.pageXOffset;\n result.top += window.scrollY || window.pageYOffset;\n return result;\n };\n AlignService.prototype.elementScrollPosition = function (anchor, element) {\n return anchor ? { x: 0, y: 0 } : this._dom.scrollPosition(element);\n };\n AlignService.prototype.relativeRect = function (anchor, element, offset) {\n return eitherRect(this._dom.position(anchor, element), offset);\n };\n return AlignService;\n}());\nexport { AlignService };\n","import { align, applyLocationOffset, boundingOffset, getWindowViewPort, isBodyOffset, offset, positionWithScroll, restrictToView, addScroll, removeScroll, scrollPosition, siblingContainer } from '@progress/kendo-popup-common';\nimport { isDocumentAvailable, isWindowAvailable, HAS_RELATIVE_STACKING_CONTEXT, scrollableParents, zIndex } from '../util';\n/**\n * @hidden\n */\nvar DOMService = /** @class */ (function () {\n function DOMService() {\n }\n DOMService.prototype.addOffset = function (current, addition) {\n return {\n left: current.left + addition.left,\n top: current.top + addition.top\n };\n };\n DOMService.prototype.align = function (settings) {\n return align(settings);\n };\n DOMService.prototype.boundingOffset = function (el) {\n return boundingOffset(el);\n };\n DOMService.prototype.getWindow = function () {\n return isWindowAvailable() ? window : null;\n };\n DOMService.prototype.isBodyOffset = function (el) {\n return isBodyOffset(el);\n };\n DOMService.prototype.hasOffsetParent = function (el) {\n if (!el) {\n return false;\n }\n var offsetParentEl = el.offsetParent;\n return offsetParentEl &&\n !(offsetParentEl.nodeName === 'BODY' &&\n window.getComputedStyle(offsetParentEl).position === 'static');\n };\n DOMService.prototype.offset = function (el) {\n if (!el) {\n return null;\n }\n return offset(el);\n };\n DOMService.prototype.staticOffset = function (element) {\n if (!element) {\n return null;\n }\n var _a = element.style, left = _a.left, top = _a.top;\n element.style.left = '0px';\n element.style.top = '0px';\n var currentOffset = offset(element);\n element.style.left = left;\n element.style.top = top;\n return currentOffset;\n };\n DOMService.prototype.position = function (element, popup) {\n if (!element || !popup) {\n return null;\n }\n var parentSibling = siblingContainer(element, popup);\n return positionWithScroll(element, parentSibling);\n };\n DOMService.prototype.relativeOffset = function (el, currentLocation) {\n return applyLocationOffset(this.offset(el), currentLocation, this.isBodyOffset(el));\n };\n DOMService.prototype.addScroll = function (rect, scroll) {\n return addScroll(rect, scroll);\n };\n DOMService.prototype.removeScroll = function (rect, scroll) {\n return removeScroll(rect, scroll);\n };\n DOMService.prototype.restrictToView = function (settings) {\n return restrictToView(settings);\n };\n DOMService.prototype.scrollPosition = function (el) {\n return scrollPosition(el);\n };\n DOMService.prototype.scrollableParents = function (el) {\n return scrollableParents(el);\n };\n DOMService.prototype.stackingElementOffset = function (el) {\n var relativeContextElement = this.getRelativeContextElement(el);\n if (!relativeContextElement) {\n return null;\n }\n return offset(relativeContextElement);\n };\n DOMService.prototype.stackingElementScroll = function (el) {\n var relativeContextElement = this.getRelativeContextElement(el);\n if (!relativeContextElement) {\n return { x: 0, y: 0 };\n }\n return {\n x: relativeContextElement.scrollLeft,\n y: relativeContextElement.scrollTop\n };\n };\n DOMService.prototype.stackingElementViewPort = function (el) {\n var relativeContextElement = this.getRelativeContextElement(el);\n if (!relativeContextElement) {\n return null;\n }\n return {\n height: relativeContextElement.scrollHeight,\n width: relativeContextElement.scrollWidth\n };\n };\n DOMService.prototype.getRelativeContextElement = function (el) {\n if (!el || !HAS_RELATIVE_STACKING_CONTEXT) {\n return null;\n }\n var parent = el.parentElement;\n while (parent) {\n if (window.getComputedStyle(parent).transform !== 'none') {\n return parent;\n }\n parent = parent.parentElement;\n }\n return null;\n };\n DOMService.prototype.useRelativePosition = function (el) {\n return !!this.getRelativeContextElement(el);\n };\n DOMService.prototype.windowViewPort = function (el) {\n return getWindowViewPort(el);\n };\n DOMService.prototype.zIndex = function (anchor, container) {\n return zIndex(anchor, container);\n };\n DOMService.prototype.zoomLevel = function () {\n if (!isDocumentAvailable() || !isWindowAvailable()) {\n return 1;\n }\n return parseFloat((document.documentElement.clientWidth / window.innerWidth).toFixed(2));\n };\n DOMService.prototype.isZoomed = function () {\n return this.zoomLevel() > 1;\n };\n return DOMService;\n}());\nexport { DOMService };\n","import { eitherRect, replaceOffset } from '../util';\n/**\n * @hidden\n */\nvar PositionService = /** @class */ (function () {\n function PositionService(_dom) {\n this._dom = _dom;\n }\n PositionService.prototype.positionElement = function (settings) {\n var anchor = settings.anchor, currentLocation = settings.currentLocation, element = settings.element, anchorAlign = settings.anchorAlign, elementAlign = settings.elementAlign, collisions = settings.collisions;\n var dom = this._dom;\n var viewPort = settings.viewPort || dom.stackingElementViewPort(element) || dom.windowViewPort(element);\n var anchorRect = eitherRect(dom.offset(anchor), currentLocation);\n var initialElementRect = replaceOffset(dom.staticOffset(element), currentLocation);\n var elementRect = this.elementRect(element, initialElementRect);\n var result = dom.restrictToView({\n anchorAlign: anchorAlign,\n anchorRect: anchorRect,\n collisions: collisions,\n elementAlign: elementAlign,\n elementRect: elementRect,\n viewPort: viewPort\n });\n return {\n flipped: result.flipped,\n offset: dom.addOffset(initialElementRect, result.offset)\n };\n };\n PositionService.prototype.elementRect = function (element, rect) {\n return this._dom.removeScroll(rect, this._dom.scrollPosition(element));\n };\n return PositionService;\n}());\nexport { PositionService };\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-vue-popup',\n productName: 'Kendo UI for Vue',\n productCodes: ['KENDOUIVUE', 'KENDOUICOMPLETE'],\n publishDate: 1706639471,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning'\n};\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { Slide } from '@progress/kendo-vue-animation';\nimport { CollisionType, AlignPoint, throttle, FRAME_DURATION, isWindowAvailable } from './util';\nimport { AlignService } from './services/alignService';\nimport { DOMService } from './services/domService';\nimport { PositionService } from './services/positionService';\nimport { canUseDOM, getDefaultSlots, validatePackage } from '@progress/kendo-vue-common';\nimport { packageMetadata } from './package-metadata';\nvar DEFAULT_POPUP_ZINDEX = 100;\nvar ZINDEX_POPUP_STEP = 1;\nvar DEFAULT_OFFSET = {\n left: -1000,\n top: 0\n};\nvar ANIMATION_CONTAINER = 'k-animation-container';\nvar ANIMATION_CONTAINER_SHOWN = 'k-animation-container-shown';\nvar K_POPUP = 'k-popup';\n/**\n * @hidden\n */\nvar PopupVue2 = {\n name: 'Popup',\n props: {\n appendTo: {\n type: String,\n default: ''\n },\n anchor: {\n type: String,\n default: ''\n },\n className: String,\n id: String,\n popupClass: String,\n collision: {\n type: Object,\n default: function _default() {\n return {\n horizontal: CollisionType.fit,\n vertical: CollisionType.flip\n };\n }\n },\n anchorAlign: {\n type: Object,\n default: function _default() {\n return {\n horizontal: AlignPoint.left,\n vertical: AlignPoint.bottom\n };\n }\n },\n popupAlign: {\n type: Object,\n default: function _default() {\n return {\n horizontal: AlignPoint.left,\n vertical: AlignPoint.top\n };\n }\n },\n offset: {\n type: Object,\n default: function _default() {\n return DEFAULT_OFFSET;\n }\n },\n show: {\n type: Boolean,\n default: false\n },\n animate: {\n type: [Boolean, Object],\n default: function _default() {\n return true;\n }\n },\n direction: {\n type: String,\n default: 'down'\n },\n transition: {\n type: String,\n default: 'expand'\n }\n },\n inject: {\n kCurrentZIndex: {\n default: null\n }\n },\n data: function data() {\n return {\n hasMounted: false\n };\n },\n created: function created() {\n validatePackage(packageMetadata);\n this.mountedAppendTo = undefined;\n this.mountedAnchor = undefined;\n this._clonedElement = undefined;\n this._flipped = false;\n this._offsetTop = 0;\n this._offsetLeft = -1000;\n this._exitingAnimation = false;\n this._prevShow = false;\n this._prevShow = this.$props.show;\n this._domService = new DOMService();\n this._alignService = new AlignService(this._domService);\n this._positionService = new PositionService(this._domService);\n this.reposition = throttle(this.reposition.bind(this), FRAME_DURATION);\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n mounted: function mounted() {\n if (canUseDOM) {\n this.mountedAppendTo = this.appendTo ? this.getParentRef(this.appendTo) : document.body;\n this.mountedAnchor = this.anchor ? this.getParentRef(this.anchor, true) : document.body;\n }\n this._parentElement = this.$el.parentElement;\n this._clonedElement = this.$el.cloneNode(true);\n this.hasMounted = true;\n this.mountedAppendTo.appendChild(this.$el);\n },\n updated: function updated() {\n this._prevShow = this.$props.show;\n },\n destroyed: !!isV3 ? undefined : function () {\n this.detachRepositionHandlers();\n },\n beforeDestroy: !!isV3 ? undefined : function () {\n if (this._parentElement) {\n this._parentElement.appendChild(this.$el);\n }\n },\n // @ts-ignore\n unmounted: function unmounted() {\n this.detachRepositionHandlers();\n },\n // @ts-ignore\n beforeUnmount: function beforeUnmount() {\n if (this._parentElement) {\n this._parentElement.appendChild(this.$el);\n }\n },\n methods: {\n onOpened: function onOpened() {\n var element = this.$el;\n if (this.$props.show) {\n element.classList.add(ANIMATION_CONTAINER_SHOWN);\n }\n this.attachRepositionHandlers(element);\n this.$emit('open', {\n target: this\n });\n },\n onClosing: function onClosing() {\n if (!this.$props.show) {\n var element = this.$el;\n element.classList.remove(ANIMATION_CONTAINER_SHOWN);\n }\n this.detachRepositionHandlers();\n },\n onClosed: function onClosed() {\n if (this._exitingAnimation) {\n this._exitingAnimation = false;\n this.$forceUpdate();\n }\n this.$emit('close', {\n target: this\n });\n },\n transitionDuration: function transitionDuration() {\n var animate = this.$props.animate;\n var transitionEnterDuration = 0;\n var transitionExitDuration = 0;\n if (animate) {\n if (animate === true) {\n // Inherit the default duration of the Animation component.\n transitionEnterDuration = transitionExitDuration = undefined;\n } else {\n transitionEnterDuration = animate.openDuration;\n transitionExitDuration = animate.closeDuration;\n }\n }\n return {\n transitionEnterDuration: transitionEnterDuration,\n transitionExitDuration: transitionExitDuration\n };\n },\n getParentRef: function getParentRef(anchor, isAnchor) {\n // @ts-ignore\n var parent = this.$parent;\n while (!parent.$refs[anchor]) {\n // @ts-ignore\n if (parent && parent.kendoAnchorRef && isAnchor) {\n // @ts-ignore\n return parent.kendoAnchorRef;\n }\n // @ts-ignore\n parent = parent.$parent;\n if (!parent && canUseDOM) {\n return document.getElementById(anchor) || document.body;\n }\n }\n // @ts-ignore\n return parent.$refs[anchor].$el || parent.$refs[anchor];\n },\n position: function position(settings, element, anchor) {\n var anchorAlign = settings.anchorAlign,\n popupAlign = settings.popupAlign,\n collision = settings.collision,\n offset = settings.offset;\n var anchorElement = anchor ? this.v3 ? this.mountedAnchor : this.getParentRef(anchor, true) : document.body;\n var alignedOffset = this._alignService.alignElement({\n anchor: anchor ? anchorElement : undefined,\n element: element,\n elementAlign: popupAlign,\n anchorAlign: anchorAlign,\n offset: offset\n });\n var result = this._positionService.positionElement({\n anchor: anchorElement,\n anchorAlign: anchorAlign,\n collisions: collision,\n element: element,\n currentLocation: alignedOffset,\n elementAlign: popupAlign\n });\n return result;\n },\n calculatePosition: function calculatePosition($props, appendToElement) {\n if (!appendToElement || !isWindowAvailable() || !canUseDOM) {\n return {\n flipped: false,\n offset: $props.offset\n };\n }\n var defaultSlot = getDefaultSlots(this);\n var root = document.createElement('div');\n var contentElement = this.$el && this.$el.firstChild ? this.$el.firstChild.firstChild ? this.$el.firstChild.firstChild.cloneNode(true) : null : null;\n var divWrapper = contentElement && contentElement.getBoundingClientRect ? contentElement : this._clonedElement;\n if (divWrapper) {\n root.appendChild(divWrapper);\n } else {\n // @ts-ignore\n var internalClass = this.v3 ? defaultSlot && defaultSlot[0].props ? defaultSlot[0].props.class : '' : defaultSlot && defaultSlot[0].data ? defaultSlot[0].data.staticClass : '';\n // @ts-ignore\n var domClass = this.v3 ? this.$props.popupClass ? this.$props.popupClass : '' : defaultSlot && defaultSlot[0].data ? defaultSlot[0].data.class : '';\n root.innerHTML = \"\\t\\n \\t\\n
\");\n }\n appendToElement.appendChild(root);\n if (root && root.firstChild) {\n var firstChild = root.firstChild;\n firstChild.style.position = 'absolute';\n firstChild.style.visibility = 'hidden';\n firstChild.style.display = 'block';\n firstChild.style.left = '-1000';\n firstChild.style.top = '0';\n var inlineStyles = this.v3 ? defaultSlot && defaultSlot[0].props ? defaultSlot[0].props.style : {} : defaultSlot[0].data ? defaultSlot[0].data.style : {};\n if (inlineStyles) {\n for (var _i = 0, _a = Object.entries(inlineStyles); _i < _a.length; _i++) {\n var _b = _a[_i],\n key = _b[0],\n value = _b[1];\n firstChild.style[key] = value;\n }\n }\n }\n var newPosition = this.position($props, root.firstChild, this.$props.anchor);\n root.parentNode.removeChild(root);\n return newPosition;\n },\n attachRepositionHandlers: function attachRepositionHandlers(element) {\n var _this = this;\n this.detachRepositionHandlers();\n this._scrollableParents = this._domService.scrollableParents(this.$props.anchor ? this.mountedAnchor : element);\n this._scrollableParents.map(function (p) {\n return p.addEventListener('scroll', _this.reposition);\n });\n window.addEventListener('resize', this.reposition);\n },\n detachRepositionHandlers: function detachRepositionHandlers() {\n var _this = this;\n if (this._scrollableParents) {\n this._scrollableParents.map(function (p) {\n return p.removeEventListener('scroll', _this.reposition);\n });\n this._scrollableParents = undefined;\n }\n window.removeEventListener('resize', this.reposition);\n },\n reposition: function reposition() {\n this._clonedElement = this.$el.cloneNode(true);\n this.$forceUpdate();\n },\n getCurrentZIndex: function getCurrentZIndex() {\n return this.kCurrentZIndex ? this.kCurrentZIndex + ZINDEX_POPUP_STEP : DEFAULT_POPUP_ZINDEX;\n }\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n className = _a.className,\n popupClass = _a.popupClass,\n show = _a.show,\n id = _a.id;\n var defaultSlots = getDefaultSlots(this);\n var defaultSlot = this.v3 ? defaultSlots : show ? defaultSlots : null;\n var defaultAppentTo = isWindowAvailable() ? this.$props.appendTo ? this.mountedAppendTo || this.getParentRef(this.$props.appendTo) : document.body : undefined;\n if (this.$props.show) {\n var newPosition = this.calculatePosition(this.$props, defaultAppentTo);\n this._offsetLeft = newPosition.offset.left;\n this._offsetTop = newPosition.offset.top;\n this._flipped = !!newPosition.flipped;\n }\n var direction = this.$props.direction === 'down' ? this._flipped ? 'up' : 'down' : this._flipped ? 'down' : 'up';\n var _b = this.transitionDuration(),\n transitionEnterDuration = _b.transitionEnterDuration,\n transitionExitDuration = _b.transitionExitDuration;\n var currentZIndex = this.getCurrentZIndex();\n this._exitingAnimation = this._exitingAnimation || this._prevShow && !show;\n if (!this.hasMounted) {\n return h(\"div\", {\n style: {\n display: 'none'\n },\n \"class\": className\n }, [h(\"div\", {\n \"class\": [popupClass, K_POPUP]\n }, [defaultSlots])]);\n }\n if (show || this._exitingAnimation && defaultAppentTo) {\n var popup =\n // @ts-ignore function children\n h(Slide, {\n id: id,\n attrs: this.v3 ? undefined : {\n id: id,\n role: this.appendTo ? '' : 'region',\n componentChildClassName: [popupClass, K_POPUP],\n className: className,\n direction: direction,\n transitionEnterDuration: transitionEnterDuration,\n transitionExitDuration: transitionExitDuration,\n appear: show\n },\n role: this.appendTo ? '' : 'region',\n componentChildClassName: [popupClass, K_POPUP],\n className: className,\n onEntered: this.onOpened,\n on: this.v3 ? undefined : {\n \"entered\": this.onOpened,\n \"exiting\": this.onClosing,\n \"exited\": this.onClosed\n },\n onExiting: this.onClosing,\n onExited: this.onClosed,\n direction: direction,\n style: {\n zIndex: currentZIndex,\n position: 'absolute',\n top: this._offsetTop + 'px',\n left: this._offsetLeft + 'px'\n },\n transitionEnterDuration: transitionEnterDuration,\n transitionExitDuration: transitionExitDuration,\n appear: show\n }, this.v3 ? function () {\n return [defaultSlot];\n } : [defaultSlot]);\n return popup;\n }\n return null;\n }\n};\n/**\n * @hidden\n */\nvar Popup = PopupVue2;\nexport { Popup, PopupVue2 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nvar ref = allVue.ref;\nimport { classNames, guid, Keys, getTabIndex, templateRendering, getListeners, validatePackage, canUseDOM, kendoThemeMaps, setRef, getRef, Icon } from '@progress/kendo-vue-common';\nimport { FloatingActionButtonItem } from './FloatingActionButtonItem';\nimport { packageMetadata } from '../package-metadata';\nimport { position, getAnchorAlign, getPopupAlign, getTextDirectionClass } from './utils';\nimport { Popup } from '@progress/kendo-vue-popup';\n/**\n * @hidden\n */\nvar FloatingActionButtonVue2 = {\n name: 'KendoVueFloatingActionButton',\n props: {\n id: String,\n dir: String,\n tabIndex: Number,\n accessKey: String,\n disabled: Boolean,\n icon: String,\n svgIcon: Object,\n iconClass: String,\n items: [Object, Array],\n item: [String, Function, Object],\n text: String,\n alignOffset: Object,\n opened: {\n type: Boolean,\n default: undefined\n },\n align: {\n type: Object,\n default: function _default() {\n return {\n vertical: 'bottom',\n horizontal: 'end'\n };\n }\n },\n positionMode: {\n type: String,\n default: function _default() {\n return 'fixed';\n }\n },\n popupSettings: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n shape: {\n type: String,\n default: function _default() {\n return 'rectangle';\n }\n },\n rounded: {\n type: String,\n default: 'full'\n },\n fillMode: {\n type: String,\n default: 'solid',\n validator: function validator(value) {\n return [null, 'flat', 'link', 'outline', 'solid'].includes(value);\n }\n },\n size: {\n type: String,\n default: function _default() {\n return 'medium';\n }\n },\n themeColor: {\n type: String,\n default: function _default() {\n return 'primary';\n }\n }\n },\n // @ts-ignore\n emits: {\n 'click': null,\n 'mousedown': null,\n 'mouseup': null,\n 'open': null,\n 'close': null,\n 'itemclick': null,\n 'focus': null,\n 'blur': null,\n 'keydown': null\n },\n data: function data() {\n return {\n currentOpened: false,\n currentFocused: false,\n focusedIndex: -1,\n currentDir: 'ltr',\n isRtl: false\n };\n },\n created: function created() {\n validatePackage(packageMetadata);\n this.element = undefined;\n this._anchor = guid();\n this.listId = guid();\n this.buttonId = guid();\n },\n mounted: function mounted() {\n this.element = this.v3 ? this.kendoAnchorRef : this.$refs[this._anchor];\n this.list = getRef(this, 'list');\n this.popup = getRef(this, 'popup');\n this.currentDir = this.$props.dir !== undefined ? this.$props.dir : this.$el && getComputedStyle(this.$el).direction === 'rtl' || false;\n this.isRtl = this.currentDir === 'rtl';\n if (this.opened !== undefined) {\n position(this.$el, this.$props.align, this.$props.alignOffset, this.isRtl);\n }\n },\n updated: function updated() {\n position(this.$el, this.$props.align, this.$props.alignOffset, this.isRtl);\n if (this.currentFocused && this.element) {\n this.element.focus();\n }\n },\n computed: {\n buttonClassNames: function buttonClassNames() {\n var _a;\n var _b = this.$props,\n size = _b.size,\n icon = _b.icon,\n shape = _b.shape,\n themeColor = _b.themeColor,\n fillMode = _b.fillMode,\n rounded = _b.rounded;\n return _a = {\n 'k-fab': true\n }, _a[\"k-fab-\".concat(shape || 'rectangle')] = shape !== null, _a[\"k-fab-\".concat(kendoThemeMaps.sizeMap[size] || size)] = size, _a[\"k-rounded-\".concat(kendoThemeMaps.roundedMap[rounded] || rounded)] = rounded, _a[\"k-fab-\".concat(fillMode)] = fillMode, _a[\"k-fab-\".concat(fillMode, \"-\").concat(themeColor)] = fillMode && themeColor, _a['k-disabled'] = this.$props.disabled, _a['k-focus'] = this.currentFocused, _a[\"k-\".concat(this.$props.align.vertical, \"-\").concat(this.$props.align.horizontal)] = true, _a;\n },\n computedOpened: function computedOpened() {\n return this.$props.opened === undefined ? this.currentOpened : this.$props.opened;\n },\n rootClassNames: function rootClassNames() {\n return classNames({\n 'k-pos-absolute': this.$props.positionMode === 'absolute',\n 'k-pos-fixed': this.$props.positionMode === 'fixed'\n });\n }\n },\n methods: {\n dispatchPopupEvent: function dispatchPopupEvent(dispatchedEvent, isOpen) {\n if (!this.$props.items) {\n return;\n }\n this.$emit(isOpen ? 'open' : 'close', {\n event: dispatchedEvent,\n isOpened: !isOpen\n });\n },\n handleClick: function handleClick(event) {\n if (!event.target || this.$props.disabled) {\n return;\n }\n if (!this.$props.items) {\n this.$emit('click', event, undefined);\n } else {\n var currentOpenToggled = !this.computedOpened;\n this.currentOpened = currentOpenToggled;\n this.currentFocused = true;\n this.focusedIndex = currentOpenToggled ? 0 : -1;\n this.dispatchPopupEvent(event, !this.computedOpened);\n }\n },\n handleFocus: function handleFocus(event) {\n this.currentFocused = true;\n this.focusedIndex = this.computedOpened ? 0 : -1;\n this.$emit('focus', event, undefined);\n },\n handleBlur: function handleBlur(event) {\n this.currentFocused = false;\n this.currentOpened = false;\n this.focusedIndex = -1;\n this.$emit('blur', event, undefined);\n var fireCloseEvent = this.computedOpened;\n if (fireCloseEvent) {\n this.dispatchPopupEvent(event, false);\n }\n },\n handleMouseDown: function handleMouseDown(event) {\n event.preventDefault();\n this.$emit('mousedown', event);\n },\n handleMouseUp: function handleMouseUp(event) {\n this.$emit('mouseup', event);\n },\n dispatchItemClickEvent: function dispatchItemClickEvent(dispatchedEvent, index) {\n if (!this.$props.items) {\n return;\n }\n if (!this.$props.items[index].disabled) {\n this.$emit('itemclick', dispatchedEvent, {\n itemProps: this.$props.items[index],\n itemIndex: index\n });\n }\n },\n handleItemClick: function handleItemClick(event, clickedItemIndex) {\n if (!event.target || !this.$props.items) {\n return;\n }\n this.focusedIndex = clickedItemIndex;\n this.currentOpened = false;\n this.dispatchItemClickEvent(event, clickedItemIndex);\n this.dispatchPopupEvent(event, false);\n },\n handleItemDown: function handleItemDown(event) {\n if (canUseDOM && document.activeElement === this.element) {\n event.preventDefault();\n }\n },\n handleKeyDown: function handleKeyDown(event) {\n var currIndex = this.focusedIndex;\n var maxNavIndex = this.$props.items ? this.$props.items.length - 1 : -1;\n var isAtBottom = this.$props.align.vertical === 'bottom';\n switch (event.keyCode) {\n case Keys.enter:\n case Keys.space:\n if (currIndex >= 0) {\n this.dispatchItemClickEvent(event, currIndex);\n }\n event.preventDefault();\n this.currentOpened = !this.currentOpened;\n this.focusedIndex = !this.currentOpened ? 0 : -1;\n break;\n case Keys.esc:\n event.preventDefault();\n this.currentOpened = false;\n this.focusedIndex = -1;\n break;\n case Keys.home:\n event.preventDefault();\n this.focusedIndex = 0;\n break;\n case Keys.end:\n event.preventDefault();\n this.focusedIndex = maxNavIndex;\n break;\n case Keys.down:\n case Keys.right:\n event.preventDefault();\n if (currIndex < maxNavIndex && !isAtBottom) {\n this.focusedIndex = currIndex + 1;\n }\n if (currIndex > 0 && isAtBottom) {\n this.focusedIndex = currIndex - 1;\n }\n break;\n case Keys.up:\n case Keys.left:\n event.preventDefault();\n if (currIndex > 0 && !isAtBottom) {\n this.focusedIndex = currIndex - 1;\n }\n if (currIndex < maxNavIndex && isAtBottom) {\n this.focusedIndex = currIndex + 1;\n }\n break;\n default:\n break;\n }\n this.$emit('keydown', event, undefined);\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n var chipRef = ref(null);\n var kendoAnchorRef = ref(null);\n return {\n v3: v3,\n chipRef: chipRef,\n kendoAnchorRef: kendoAnchorRef\n };\n },\n render: function render(createElement) {\n var _this2 = this;\n var _this = this;\n var h = gh || createElement;\n var _a = this.$props,\n align = _a.align,\n disabled = _a.disabled,\n icon = _a.icon,\n svgIcon = _a.svgIcon,\n iconClass = _a.iconClass,\n id = _a.id,\n items = _a.items,\n text = _a.text,\n tabIndex = _a.tabIndex,\n accessKey = _a.accessKey,\n popupSettings = _a.popupSettings;\n var item = templateRendering.call(this, this.$props.item, getListeners.call(this));\n var fabItems = function fabItems() {\n return items && items.map(function (element, index) {\n return (\n // @ts-ignore function children\n h(FloatingActionButtonItem, {\n key: index,\n index: index,\n attrs: this.v3 ? undefined : {\n index: index,\n id: \"\".concat(this.listId, \"-\").concat(index),\n disabled: disabled || element.disabled,\n focused: this.focusedIndex === index,\n dataItem: element,\n item: item\n },\n id: \"\".concat(this.listId, \"-\").concat(index),\n disabled: disabled || element.disabled,\n focused: this.focusedIndex === index,\n dataItem: element,\n item: item,\n \"class\": classNames(element.className, getTextDirectionClass(this.currentDir || 'ltr', align.horizontal)),\n onClick: this.handleItemClick,\n on: this.v3 ? undefined : {\n \"click\": this.handleItemClick,\n \"down\": this.handleItemDown\n },\n onDown: this.handleItemDown\n })\n );\n }, this);\n };\n var isIconFab = icon && !text;\n var fabWidth = this.element ? this.element.offsetWidth : 0;\n var iconWidth = 32;\n var spacing = fabWidth / 2 - iconWidth / 2;\n return h(\"div\", {\n \"class\": this.rootClassNames\n }, [h(\"button\", {\n ref: this.v3 ? function (el) {\n _this.kendoAnchorRef = el;\n } : this._anchor,\n id: id || this.buttonId,\n attrs: this.v3 ? undefined : {\n id: id || this.buttonId,\n role: items ? 'menubutton' : 'button',\n type: 'button',\n \"aria-disabled\": disabled,\n \"aria-expanded\": items ? this.computedOpened : undefined,\n \"aria-haspopup\": items ? true : false,\n \"aria-label\": \"\".concat(text || '', \" floatingactionbutton\"),\n \"aria-owns\": items ? this.listId : undefined,\n \"aria-activedescendant\": this.focusedIndex >= 0 && items ? \"\".concat(this.listId, \"-\").concat(this.focusedIndex) : undefined,\n tabindex: getTabIndex(tabIndex, disabled),\n accesskey: accessKey,\n dir: this.currentDir,\n disabled: disabled\n },\n role: items ? 'menubutton' : 'button',\n type: 'button',\n \"aria-disabled\": disabled,\n \"aria-expanded\": items ? this.computedOpened : undefined,\n \"aria-haspopup\": items ? true : false,\n \"aria-label\": \"\".concat(text || '', \" floatingactionbutton\"),\n \"aria-owns\": items ? this.listId : undefined,\n \"aria-activedescendant\": this.focusedIndex >= 0 && items ? \"\".concat(this.listId, \"-\").concat(this.focusedIndex) : undefined,\n tabindex: getTabIndex(tabIndex, disabled),\n accesskey: accessKey,\n dir: this.currentDir,\n disabled: disabled,\n \"class\": this.buttonClassNames,\n onClick: this.handleClick,\n on: this.v3 ? undefined : {\n \"click\": this.handleClick,\n \"mousedown\": this.handleMouseDown,\n \"mouseup\": this.handleMouseUp,\n \"focusin\": this.handleFocus,\n \"blur\": this.handleBlur,\n \"keydown\": this.handleKeyDown\n },\n onMousedown: this.handleMouseDown,\n onMouseup: this.handleMouseUp,\n onFocusin: this.handleFocus,\n onBlur: this.handleBlur,\n onKeydown: this.handleKeyDown\n }, [icon || svgIcon ? h(Icon, {\n name: icon,\n attrs: this.v3 ? undefined : {\n name: icon,\n icon: svgIcon\n },\n icon: svgIcon,\n \"class\": 'k-fab-icon'\n }) : iconClass ? h(Icon, {\n \"class\": iconClass\n }) : null, text && h(\"span\", {\n \"class\": \"k-fab-text\"\n }, [text])]),\n // @ts-ignore function children\n h(Popup, {\n ref: setRef(this, 'popup'),\n show: this.computedOpened,\n attrs: this.v3 ? undefined : {\n show: this.computedOpened,\n anchor: this._anchor,\n animate: popupSettings.animate,\n popupClass: classNames('k-popup-transparent k-fab-popup', popupSettings.popupClass),\n anchorAlign: popupSettings.anchorAlign || getAnchorAlign(align, this.isRtl),\n popupAlign: popupSettings.popupAlign || getPopupAlign(align, this.isRtl)\n },\n anchor: this._anchor,\n animate: popupSettings.animate,\n popupClass: classNames('k-popup-transparent k-fab-popup', popupSettings.popupClass),\n anchorAlign: popupSettings.anchorAlign || getAnchorAlign(align, this.isRtl),\n popupAlign: popupSettings.popupAlign || getPopupAlign(align, this.isRtl),\n style: {\n boxShadow: 'none'\n }\n }, this.v3 ? function () {\n return [h(\"ul\", {\n ref: setRef(_this2, 'list'),\n role: 'menu',\n attrs: _this2.v3 ? undefined : {\n role: 'menu',\n \"aria-labelledby\": id,\n id: _this2.listId\n },\n \"aria-labelledby\": id,\n id: _this2.listId,\n \"class\": classNames('k-fab-items', {\n 'k-fab-items-bottom': align.vertical !== 'bottom',\n 'k-fab-items-top': align.vertical === 'bottom'\n }),\n style: {\n paddingLeft: isIconFab ? spacing + 'px' : undefined,\n paddingRight: isIconFab ? spacing + 'px' : undefined\n }\n }, [fabItems.call(_this2)])];\n } : [h(\"ul\", {\n ref: setRef(_this2, 'list'),\n role: 'menu',\n attrs: _this2.v3 ? undefined : {\n role: 'menu',\n \"aria-labelledby\": id,\n id: _this2.listId\n },\n \"aria-labelledby\": id,\n id: _this2.listId,\n \"class\": classNames('k-fab-items', {\n 'k-fab-items-bottom': align.vertical !== 'bottom',\n 'k-fab-items-top': align.vertical === 'bottom'\n }),\n style: {\n paddingLeft: isIconFab ? spacing + 'px' : undefined,\n paddingRight: isIconFab ? spacing + 'px' : undefined\n }\n }, [fabItems.call(_this2)])])]);\n }\n};\n/**\n * @hidden\n */\nvar FloatingActionButton = FloatingActionButtonVue2;\nexport { FloatingActionButton, FloatingActionButtonVue2 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { getTemplate, Icon } from '@progress/kendo-vue-common';\n/**\n * @hidden\n */\nvar ButtonItemVue2 = {\n name: 'KendoButtonItem',\n // @ts-ignore\n emits: {\n click: null,\n down: null\n },\n props: {\n focused: Boolean,\n index: Number,\n item: Object,\n render: [String, Object, Function],\n dataItem: [String, Object],\n id: String,\n textField: String\n },\n computed: {\n wrapperClass: function wrapperClass() {\n return {\n 'k-item': true,\n 'k-focus': this.$props.focused\n };\n },\n innerClass: function innerClass() {\n var dataItem = this.$props.dataItem;\n return {\n 'k-link k-menu-link': true,\n 'k-selected': dataItem.selected,\n 'k-disabled': dataItem.disabled\n };\n }\n },\n methods: {\n onClick: function onClick(event) {\n this.$emit('click', event, this.$props.index);\n },\n onDown: function onDown(event) {\n this.$emit('down', event, this.$props.index);\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n dataItem = _a.dataItem,\n id = _a.id,\n render = _a.render;\n var renderContent = function renderContent() {\n var _a = this.$props,\n textField = _a.textField,\n index = _a.index;\n var text = dataItem.text !== undefined ? dataItem.text : textField ? dataItem[textField] : dataItem;\n var itemContent = h(\"span\", {\n tabindex: -1,\n attrs: this.v3 ? undefined : {\n tabindex: -1\n },\n \"class\": this.innerClass,\n key: \"icon\"\n }, [dataItem.icon || dataItem.svgIcon ? h(Icon, {\n name: dataItem.icon,\n attrs: this.v3 ? undefined : {\n name: dataItem.icon,\n icon: dataItem.svgIcon\n },\n icon: dataItem.svgIcon,\n \"class\": dataItem.iconClass\n }) : dataItem.iconClass && h(\"span\", {\n \"class\": dataItem.iconClass,\n role: \"presentation\",\n attrs: this.v3 ? undefined : {\n role: \"presentation\"\n }\n }), dataItem.imageUrl && h(\"img\", {\n \"class\": \"k-icon\",\n alt: \"\",\n attrs: this.v3 ? undefined : {\n alt: \"\",\n src: dataItem.imageUrl,\n role: \"presentation\"\n },\n src: dataItem.imageUrl,\n role: \"presentation\",\n key: \"image\"\n }), text && h(\"span\", {\n \"class\": \"k-menu-link-text\"\n }, [text])]);\n return getTemplate.call(this, {\n h: h,\n template: this.$props.dataItem.render || render,\n defaultRendering: itemContent,\n additionalProps: {\n item: dataItem,\n itemIndex: index,\n innerClass: this.innerClass,\n focused: this.focused\n }\n });\n };\n var item = h(\"li\", {\n id: id,\n attrs: this.v3 ? undefined : {\n id: id,\n role: \"menuitem\",\n \"aria-disabled\": dataItem.disabled || undefined\n },\n \"class\": this.wrapperClass,\n onClick: this.onClick,\n on: this.v3 ? undefined : {\n \"click\": this.onClick,\n \"mousedown\": this.onDown,\n \"pointerdown\": this.onDown\n },\n onMousedown: this.onDown,\n onPointerdown: this.onDown,\n role: \"menuitem\",\n \"aria-disabled\": dataItem.disabled || undefined\n }, [renderContent.call(this)]);\n return item;\n }\n};\n/**\n * @hidden\n */\nvar ButtonItem = ButtonItemVue2;\nexport { ButtonItem, ButtonItemVue2 };","import { Keys } from '@progress/kendo-vue-common';\n/**\n * @hidden\n */\nvar navigate = function (focusedIndex, keyCode, altKey, total) {\n if (altKey) {\n return focusedIndex;\n }\n switch (keyCode) {\n case Keys.enter:\n case Keys.space:\n case Keys.esc:\n return -1;\n case Keys.up:\n case Keys.left:\n return Math.max(0, focusedIndex - 1);\n case Keys.down:\n case Keys.right:\n return Math.min(total - 1, focusedIndex + 1);\n default:\n return focusedIndex;\n }\n};\nexport default navigate;\n","/**\n * @hidden\n */\nexport function getAnchorAlign(isDirectionRightToLeft) {\n var align = { horizontal: 'left', vertical: 'bottom' };\n if (isDirectionRightToLeft) {\n align.horizontal = 'right';\n }\n return align;\n}\n/**\n * @hidden\n */\nexport function getPopupAlign(isDirectionRightToLeft) {\n var align = { horizontal: 'left', vertical: 'top' };\n if (isDirectionRightToLeft) {\n align.horizontal = 'right';\n }\n return align;\n}\n","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nvar ref = allVue.ref;\nimport { Button as KendoButton } from '../Button';\nimport { classNames, guid, Keys, kendoThemeMaps, getDefaultSlots } from '@progress/kendo-vue-common';\nimport { ButtonItem } from './ButtonItem';\nimport navigation from './utils/navigation';\nimport { Popup } from '@progress/kendo-vue-popup';\nimport { getAnchorAlign, getPopupAlign } from './utils/popup';\nimport { validatePackage, templateRendering, getListeners, canUseDOM } from '@progress/kendo-vue-common';\nimport { caretAltDownIcon } from '@progress/kendo-svg-icons';\nimport { packageMetadata } from '../package-metadata';\n/**\n * @hidden\n */\nvar SplitButtonVue2 = {\n name: 'KendoSplitButton',\n // @ts-ignore\n emits: {\n focus: null,\n blur: null,\n buttonclick: null,\n itemclick: null,\n open: null,\n close: null\n },\n props: {\n accessKey: String,\n ariaLabel: String,\n text: String,\n items: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n textField: String,\n tabIndex: Number,\n disabled: Boolean,\n icon: String,\n svgIcon: Object,\n size: {\n type: String,\n default: 'medium'\n },\n rounded: {\n type: String,\n default: 'medium'\n },\n fillMode: {\n type: String,\n default: 'solid',\n validator: function validator(value) {\n return [null, 'flat', 'link', 'outline', 'solid'].includes(value);\n }\n },\n // eslint-disable-next-line max-len\n themeColor: {\n type: String,\n default: 'base',\n validator: function validator(value) {\n return [null, 'base', 'dark', 'error', 'info', 'inverse', 'inverse', 'light', 'primary', 'secondary', 'success', 'tertiary', 'warning'].includes(value);\n }\n },\n opened: {\n type: Boolean,\n default: undefined\n },\n iconClass: String,\n imageUrl: String,\n popupSettings: Object,\n itemRender: [String, Function, Object],\n item: [String, Function, Object],\n look: String,\n className: String,\n buttonClass: String,\n dir: String\n },\n data: function data() {\n return {\n focused: false,\n focusedIndex: -1,\n currentOpened: false\n };\n },\n created: function created() {\n this._blurTimeout = null;\n this._anchor = guid();\n this.mainButton = null;\n this.guid = guid();\n this.buttonsData = [];\n validatePackage(packageMetadata);\n },\n mounted: function mounted() {\n this.mainButton = this.$refs[this._anchor];\n // If this.$props.opened is true during the initial render, the popup is not aligned.\n if (this.$props.dir === undefined && this.isRtl() || this.computedOpened) {\n this.$forceUpdate();\n }\n },\n updated: function updated() {\n if (this.focused && this.element()) {\n this.mainButton = this.$refs[this._anchor];\n this.mainButton.focus();\n }\n },\n computed: {\n computedOpened: function computedOpened() {\n return this.$props.opened === undefined ? this.currentOpened : this.$props.opened;\n },\n wrapperClass: function wrapperClass() {\n return {\n 'k-split-button': true,\n 'k-button-group': true,\n 'k-focus': this.focused\n };\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n var kendoAnchorRef = ref(null);\n return {\n v3: v3,\n kendoAnchorRef: kendoAnchorRef\n };\n },\n render: function render(createElement) {\n var _this3 = this;\n var _this = this;\n var h = gh || createElement;\n this.buttonsData = this.$props.items;\n var rtl = this.isRtl();\n var dir = rtl ? 'rtl' : undefined;\n var _a = this.$props,\n tabIndex = _a.tabIndex,\n disabled = _a.disabled;\n var defaultSlot = getDefaultSlots(this);\n var renderChildItems = function renderChildItems() {\n var _a = this.$props,\n item = _a.item,\n itemRender = _a.itemRender,\n textField = _a.textField;\n return this.buttonsData.length > 0 ? this.buttonsData.map(function (dataItem, index) {\n var currentDataItem = typeof dataItem !== 'string' ? __assign(__assign({}, dataItem), {\n render: templateRendering.call(this, dataItem.render, getListeners.call(this))\n }) : dataItem;\n return (\n // @ts-ignore\n h(ButtonItem, {\n \"class\": \"k-menu-item\",\n role: \"menuitem\",\n attrs: this.v3 ? undefined : {\n role: \"menuitem\",\n dataItem: currentDataItem,\n textField: textField,\n focused: this.focusedIndex === index,\n render: templateRendering.call(this, itemRender, getListeners.call(this)),\n item: item,\n index: index,\n id: \"\".concat(this.guid, \"-\").concat(index)\n },\n dataItem: currentDataItem,\n textField: textField,\n focused: this.focusedIndex === index,\n onClick: this.onItemClick,\n on: this.v3 ? undefined : {\n \"click\": this.onItemClick,\n \"down\": this.onItemDown\n },\n onDown: this.onItemDown,\n render: templateRendering.call(this, itemRender, getListeners.call(this)),\n item: item,\n key: index,\n index: index,\n id: \"\".concat(this.guid, \"-\").concat(index)\n })\n );\n }, this) : null;\n };\n var renderPopup = function renderPopup() {\n var _this2 = this;\n var _a = this.$props,\n _b = _a.popupSettings,\n popupSettings = _b === void 0 ? {} : _b,\n size = _a.size;\n return (\n // @ts-ignore function children\n h(Popup, {\n anchor: this._anchor,\n attrs: this.v3 ? undefined : {\n anchor: this._anchor,\n show: this.computedOpened,\n animate: popupSettings.animate,\n popupClass: classNames('k-menu-popup', popupSettings.popupClass),\n anchorAlign: popupSettings.anchorAlign || getAnchorAlign(rtl),\n popupAlign: popupSettings.popupAlign || getPopupAlign(rtl)\n },\n show: this.computedOpened,\n animate: popupSettings.animate,\n popupClass: classNames('k-menu-popup', popupSettings.popupClass),\n anchorAlign: popupSettings.anchorAlign || getAnchorAlign(rtl),\n popupAlign: popupSettings.popupAlign || getPopupAlign(rtl),\n style: rtl ? {\n direction: 'rtl'\n } : undefined\n }, this.v3 ? function () {\n return [h(\"ul\", {\n \"class\": \"k-group k-menu-group k-reset k-menu-group-\".concat(kendoThemeMaps.sizeMap[size] || size),\n role: \"menu\",\n attrs: _this2.v3 ? undefined : {\n role: \"menu\",\n id: _this2.guid,\n \"aria-labelledby\": _this2._anchor\n },\n id: _this2.guid,\n \"aria-labelledby\": _this2._anchor\n }, [renderChildItems.call(_this2)])];\n } : [h(\"ul\", {\n \"class\": \"k-group k-menu-group k-reset k-menu-group-\".concat(kendoThemeMaps.sizeMap[size] || size),\n role: \"menu\",\n attrs: _this2.v3 ? undefined : {\n role: \"menu\",\n id: _this2.guid,\n \"aria-labelledby\": _this2._anchor\n },\n id: _this2.guid,\n \"aria-labelledby\": _this2._anchor\n }, [renderChildItems.call(_this2)])])\n );\n };\n return h(\"div\", {\n \"class\": this.wrapperClass,\n onKeydown: this.onKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.onKeyDown,\n \"focusin\": this.onFocus,\n \"focusout\": this.onBlur\n },\n onFocusin: this.onFocus,\n onFocusout: this.onBlur,\n dir: dir,\n attrs: this.v3 ? undefined : {\n dir: dir\n }\n }, [\n // @ts-ignore function children\n h(KendoButton, {\n size: this.$props.size,\n attrs: this.v3 ? undefined : {\n size: this.$props.size,\n rounded: this.$props.rounded,\n fillMode: this.$props.fillMode,\n themeColor: this.$props.themeColor,\n disabled: disabled || undefined,\n tabIndex: tabIndex,\n accessKey: this.$props.accessKey,\n icon: this.$props.icon,\n svgIcon: this.$props.svgIcon,\n iconClass: this.$props.iconClass,\n imageUrl: this.$props.imageUrl,\n look: this.$props.look,\n dir: dir,\n id: this._anchor,\n type: \"button\",\n \"aria-disabled\": disabled,\n \"aria-haspopup\": 'menu',\n \"aria-expanded\": this.computedOpened,\n \"aria-label\": this.$props.ariaLabel || \"\".concat(this.$props.text || '', \" splitbutton\"),\n \"aria-controls\": this.guid,\n \"aria-activedescendant\": this.focusedIndex !== undefined && this.focusedIndex >= 0 ? \"\".concat(this.guid, \"-\").concat(this.focusedIndex) : undefined\n },\n rounded: this.$props.rounded,\n fillMode: this.$props.fillMode,\n themeColor: this.$props.themeColor,\n onClick: function onClick(event) {\n return _this.onItemClick(event, -1);\n },\n on: this.v3 ? undefined : {\n \"click\": function onClick(event) {\n return _this.onItemClick(event, -1);\n }\n },\n disabled: disabled || undefined,\n tabIndex: tabIndex,\n accessKey: this.$props.accessKey,\n \"class\": this.$props.buttonClass,\n icon: this.$props.icon,\n svgIcon: this.$props.svgIcon,\n iconClass: this.$props.iconClass,\n imageUrl: this.$props.imageUrl,\n look: this.$props.look,\n dir: dir,\n id: this._anchor,\n ref: this._anchor,\n type: \"button\",\n \"aria-disabled\": disabled,\n \"aria-haspopup\": 'menu',\n \"aria-expanded\": this.computedOpened,\n \"aria-label\": this.$props.ariaLabel || \"\".concat(this.$props.text || '', \" splitbutton\"),\n \"aria-controls\": this.guid,\n \"aria-activedescendant\": this.focusedIndex !== undefined && this.focusedIndex >= 0 ? \"\".concat(this.guid, \"-\").concat(this.focusedIndex) : undefined\n }, this.v3 ? function () {\n return [_this3.$props.text, defaultSlot];\n } : [_this3.$props.text, defaultSlot]),\n // @ts-ignore\n h(KendoButton, {\n svgIcon: caretAltDownIcon,\n attrs: this.v3 ? undefined : {\n svgIcon: caretAltDownIcon,\n size: this.$props.size,\n rounded: this.$props.rounded,\n fillMode: this.$props.fillMode,\n themeColor: this.$props.themeColor,\n icon: \"caret-alt-down\",\n disabled: disabled || undefined,\n tabIndex: -1,\n look: this.$props.look,\n dir: dir,\n \"aria-label\": \"menu toggling button\"\n },\n size: this.$props.size,\n rounded: this.$props.rounded,\n fillMode: this.$props.fillMode,\n themeColor: this.$props.themeColor,\n icon: \"caret-alt-down\",\n disabled: disabled || undefined,\n tabIndex: -1,\n look: this.$props.look,\n onClick: this.onSplitPartClick,\n on: this.v3 ? undefined : {\n \"click\": this.onSplitPartClick,\n \"mousedown\": this.onDownSplitPart,\n \"pointerdown\": this.onDownSplitPart\n },\n onMousedown: this.onDownSplitPart,\n onPointerdown: this.onDownSplitPart,\n dir: dir,\n \"aria-label\": \"menu toggling button\"\n }), renderPopup.call(this)]);\n },\n methods: {\n element: function element() {\n return this.mainButton;\n },\n onKeyDown: function onKeyDown(event) {\n if (event.altKey) {\n if (!this.computedOpened && event.keyCode === Keys.down) {\n this.dispatchPopupEvent(event, true);\n this.focusedIndex = 0;\n this.currentOpened = true;\n } else if (this.computedOpened && event.keyCode === Keys.up) {\n this.dispatchPopupEvent(event, false);\n this.focusedIndex = -1;\n this.currentOpened = false;\n }\n return;\n }\n var newState = undefined;\n if (event.keyCode === Keys.enter || event.keyCode === Keys.space) {\n // Prevent default because otherwise when an item is selected\n // click on the default button gets emitted which opens the popup again.\n event.preventDefault();\n this.dispatchClickEvent(event, this.focusedIndex);\n if (this.focusedIndex !== undefined && this.focusedIndex >= 0) {\n newState = {\n focusedIndex: this.computedOpened ? -1 : 0,\n currentOpened: !this.computedOpened\n };\n this.dispatchPopupEvent(event, newState.currentOpened);\n }\n } else if (this.computedOpened && event.keyCode === Keys.esc) {\n newState = {\n focusedIndex: -1,\n currentOpened: false\n };\n this.dispatchPopupEvent(event, newState.currentOpened);\n }\n if (this.computedOpened) {\n var newFocused = navigation(this.focusedIndex, event.keyCode, event.altKey, this.buttonsData.length);\n if (newFocused !== this.focusedIndex) {\n newState = newState || {};\n // @ts-ignore\n newState.focusedIndex = newFocused;\n }\n var arrowKey = event.keyCode === Keys.up || event.keyCode === Keys.down || event.keyCode === Keys.left || event.keyCode === Keys.right;\n if (!event.altKey && arrowKey) {\n // Needed to notify the parent listeners that event is handled.\n event.preventDefault();\n }\n }\n if (newState) {\n this.focusedIndex = newState.focusedIndex;\n this.focused = newState.focused;\n if (newState.currentOpened !== undefined) {\n this.currentOpened = newState.currentOpened;\n }\n }\n },\n onFocus: function onFocus(event) {\n if (!this.focused) {\n this.$emit('focus', event, this, undefined);\n this.focused = true;\n }\n this.focusedIndex = -1;\n clearTimeout(this._blurTimeout);\n },\n onItemClick: function onItemClick(event, clickedItemIndex) {\n var opened = this.computedOpened;\n if (opened) {\n this.focusedIndex = 0;\n this.currentOpened = false;\n }\n this.dispatchClickEvent(event, clickedItemIndex);\n if (opened) {\n this.dispatchPopupEvent(event, false);\n }\n },\n onBlur: function onBlur(event) {\n clearTimeout(this._blurTimeout);\n this.createBlurTimeout(event);\n },\n createBlurTimeout: function createBlurTimeout(event) {\n var _this = this;\n var that = this;\n this._blurTimeout = setTimeout(function () {\n if (canUseDOM && document.activeElement !== that.mainButton) {\n that.focused = false;\n that.focusedIndex = -1;\n that.$emit('blur', event, _this, undefined);\n var fireCloseEvent = that.computedOpened;\n if (fireCloseEvent) {\n that.currentOpened = false;\n that.dispatchPopupEvent(event, false);\n }\n }\n }, 200);\n },\n dispatchClickEvent: function dispatchClickEvent(dispatchedEvent, clickedItemIndex) {\n if (!this.isItemDisabled(clickedItemIndex)) {\n if (clickedItemIndex === -1) {\n this.$emit('buttonclick', dispatchedEvent, this, undefined);\n } else {\n this.$emit('itemclick', {\n event: dispatchedEvent,\n component: this,\n item: this.buttonsData[clickedItemIndex],\n itemIndex: clickedItemIndex\n });\n }\n }\n },\n onSplitPartClick: function onSplitPartClick(event) {\n if (this.buttonsData.length) {\n var toOpen = !this.computedOpened;\n this.dispatchPopupEvent(event, toOpen);\n this.focusedIndex = toOpen ? 0 : -1;\n this.currentOpened = toOpen;\n this.focused = true;\n }\n },\n onDownSplitPart: function onDownSplitPart(event) {\n event.preventDefault();\n if (this.element() && document.activeElement !== this.element()) {\n // @ts-ignore\n this.element().focus();\n }\n },\n onItemDown: function onItemDown(event) {\n if (document.activeElement === this.element()) {\n event.preventDefault();\n }\n },\n dispatchPopupEvent: function dispatchPopupEvent(dispatchedEvent, open) {\n this.$emit(open ? 'open' : 'close', dispatchedEvent, this, undefined);\n },\n isItemDisabled: function isItemDisabled(index) {\n return this.buttonsData[index] ? this.buttonsData[index].disabled : this.$props.disabled;\n },\n isRtl: function isRtl() {\n return this.$props.dir !== undefined ? this.$props.dir === 'rtl' : !!this.$el && getComputedStyle(this.$el).direction === 'rtl';\n }\n }\n};\n/**\n * @hidden\n */\nvar SplitButton = SplitButtonVue2;\nexport { SplitButton, SplitButtonVue2 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nvar ref = allVue.ref;\nimport { Button as KendoButton } from '../Button';\nimport { classNames, guid, Keys, kendoThemeMaps, getDefaultSlots } from '@progress/kendo-vue-common';\nimport navigation from './utils/navigation';\nimport { ButtonItem } from './ButtonItem';\nimport { Popup } from '@progress/kendo-vue-popup';\nimport { getAnchorAlign, getPopupAlign } from './utils/popup';\nimport { validatePackage, templateRendering, getListeners, canUseDOM } from '@progress/kendo-vue-common';\nimport { packageMetadata } from '../package-metadata';\n/**\n * @hidden\n */\nvar DropDownButtonVue2 = {\n name: 'KendoDropDownButton',\n // @ts-ignore\n emits: {\n focus: null,\n blur: null,\n itemclick: null,\n open: null,\n close: null\n },\n props: {\n accessKey: String,\n primary: Boolean,\n items: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n ariaLabel: String,\n text: String,\n textField: String,\n tabIndex: Number,\n disabled: Boolean,\n icon: String,\n svgIcon: Object,\n iconClass: String,\n imageUrl: String,\n popupSettings: Object,\n itemRender: [String, Object, Function],\n item: Function,\n size: {\n type: String,\n default: 'medium'\n },\n shape: {\n type: String,\n default: 'rectangle',\n validator: function validator(value) {\n return [null, 'rectangle', 'square'].includes(value);\n }\n },\n rounded: {\n type: String,\n default: 'medium'\n },\n fillMode: {\n type: String,\n default: 'solid',\n validator: function validator(value) {\n return [null, 'flat', 'link', 'outline', 'solid'].includes(value);\n }\n },\n // eslint-disable-next-line max-len\n themeColor: {\n type: String,\n default: 'base',\n validator: function validator(value) {\n return [null, 'base', 'dark', 'error', 'info', 'inverse', 'inverse', 'light', 'primary', 'secondary', 'success', 'tertiary', 'warning'].includes(value);\n }\n },\n opened: {\n type: Boolean,\n default: undefined\n },\n look: {\n type: String,\n validator: function validator(value) {\n return ['default', 'flat', 'outline'].includes(value);\n }\n },\n buttonClass: String,\n dir: String\n },\n created: function created() {\n this._blurTimeout = null;\n this._anchor = guid();\n this.wrapper = null;\n this.mainButton = null;\n this.guid = guid();\n this.buttonsData = [];\n validatePackage(packageMetadata);\n },\n mounted: function mounted() {\n this.mainButton = this.$refs[this._anchor];\n // If this.$props.opened is true during the initial render, the popup is not aligned.\n if (this.$props.dir === undefined && this.isRtl() || this.computedOpened) {\n this.$forceUpdate();\n }\n },\n updated: function updated() {\n if (this.focused && this.element()) {\n this.mainButton = this.$refs[this._anchor];\n this.mainButton.focus();\n }\n },\n data: function data() {\n return {\n currentOpened: false,\n focused: false,\n focusedIndex: -1\n };\n },\n computed: {\n computedOpened: function computedOpened() {\n return this.$props.opened === undefined ? this.currentOpened : this.$props.opened;\n },\n wrapperClass: function wrapperClass() {\n return {\n 'k-dropdown-button': true,\n 'k-focus': this.focused\n };\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n var kendoAnchorRef = ref(null);\n return {\n v3: v3,\n kendoAnchorRef: kendoAnchorRef\n };\n },\n render: function render(createElement) {\n var _this2 = this;\n var h = gh || createElement;\n var rtl = this.isRtl();\n var dir = rtl ? 'rtl' : undefined;\n var _a = this.$props,\n tabIndex = _a.tabIndex,\n disabled = _a.disabled;\n var defaultSlot = getDefaultSlots(this);\n this.buttonsData = this.$props.items;\n var renderChildItems = function renderChildItems() {\n var _a = this.$props,\n item = _a.item,\n itemRender = _a.itemRender,\n textField = _a.textField;\n return this.buttonsData.length > 0 ? this.buttonsData.map(function (dataItem, index) {\n var currentDataItem = typeof dataItem !== 'string' ? __assign(__assign({}, dataItem), {\n render: templateRendering.call(this, dataItem.render, getListeners.call(this))\n }) : dataItem;\n return (\n // @ts-ignore\n h(ButtonItem, {\n \"class\": \"k-menu-item\",\n dataItem: currentDataItem,\n attrs: this.v3 ? undefined : {\n dataItem: currentDataItem,\n textField: textField,\n focused: this.focusedIndex === index,\n render: templateRendering.call(this, itemRender, getListeners.call(this)),\n item: item,\n index: index,\n id: \"\".concat(this.guid, \"-\").concat(index)\n },\n textField: textField,\n focused: this.focusedIndex === index,\n onClick: this.onItemClick,\n on: this.v3 ? undefined : {\n \"click\": this.onItemClick,\n \"down\": this.onItemDown\n },\n onDown: this.onItemDown,\n render: templateRendering.call(this, itemRender, getListeners.call(this)),\n item: item,\n index: index,\n key: index,\n id: \"\".concat(this.guid, \"-\").concat(index)\n })\n );\n }, this) : null;\n };\n var renderPopup = function renderPopup() {\n var _this = this;\n var _a = this.$props,\n _b = _a.popupSettings,\n popupSettings = _b === void 0 ? {} : _b,\n size = _a.size;\n return (\n // @ts-ignore function children\n h(Popup, {\n anchor: this._anchor,\n attrs: this.v3 ? undefined : {\n anchor: this._anchor,\n show: this.computedOpened,\n animate: popupSettings.animate,\n popupClass: classNames('k-menu-popup', popupSettings.popupClass),\n anchorAlign: popupSettings.anchorAlign || getAnchorAlign(rtl),\n popupAlign: popupSettings.popupAlign || getPopupAlign(rtl)\n },\n show: this.computedOpened,\n animate: popupSettings.animate,\n popupClass: classNames('k-menu-popup', popupSettings.popupClass),\n anchorAlign: popupSettings.anchorAlign || getAnchorAlign(rtl),\n popupAlign: popupSettings.popupAlign || getPopupAlign(rtl),\n style: rtl ? {\n direction: 'rtl'\n } : undefined\n }, this.v3 ? function () {\n return [h(\"ul\", {\n \"class\": \"k-group k-menu-group k-reset k-menu-group-\".concat(kendoThemeMaps.sizeMap[size] || size),\n role: \"menu\",\n attrs: _this.v3 ? undefined : {\n role: \"menu\",\n id: _this.guid\n },\n id: _this.guid\n }, [renderChildItems.call(_this)])];\n } : [h(\"ul\", {\n \"class\": \"k-group k-menu-group k-reset k-menu-group-\".concat(kendoThemeMaps.sizeMap[size] || size),\n role: \"menu\",\n attrs: _this.v3 ? undefined : {\n role: \"menu\",\n id: _this.guid\n },\n id: _this.guid\n }, [renderChildItems.call(_this)])])\n );\n };\n return h(\"div\", {\n \"class\": this.wrapperClass,\n onKeydown: this.onKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.onKeyDown,\n \"focusin\": this.onFocus,\n \"focusout\": this.onBlur\n },\n onFocusin: this.onFocus,\n onFocusout: this.onBlur,\n dir: dir,\n attrs: this.v3 ? undefined : {\n dir: dir\n }\n }, [\n // @ts-ignore function children\n h(KendoButton, {\n size: this.$props.size,\n attrs: this.v3 ? undefined : {\n size: this.$props.size,\n shape: this.$props.shape,\n rounded: this.$props.rounded,\n fillMode: this.$props.fillMode,\n themeColor: this.$props.themeColor,\n disabled: disabled || undefined,\n tabIndex: tabIndex,\n accessKey: this.$props.accessKey,\n icon: this.$props.icon,\n svgIcon: this.$props.svgIcon,\n iconClass: this.$props.iconClass,\n imageUrl: this.$props.imageUrl,\n look: this.$props.look,\n primary: this.$props.primary,\n dir: dir,\n type: \"button\",\n \"aria-disabled\": disabled,\n \"aria-haspopup\": 'menu',\n \"aria-expanded\": this.computedOpened,\n \"aria-label\": this.$props.ariaLabel || \"\".concat(this.$props.text || '', \" dropdownbutton\"),\n \"aria-controls\": this.guid,\n \"aria-activedescendant\": this.focusedIndex !== undefined && this.focusedIndex >= 0 ? \"\".concat(this.guid, \"-\").concat(this.focusedIndex) : undefined\n },\n shape: this.$props.shape,\n rounded: this.$props.rounded,\n fillMode: this.$props.fillMode,\n themeColor: this.$props.themeColor,\n onClick: this.onClickMainButton,\n on: this.v3 ? undefined : {\n \"click\": this.onClickMainButton,\n \"mousedown\": this.mouseDown\n },\n onMousedown: this.mouseDown,\n disabled: disabled || undefined,\n tabIndex: tabIndex,\n accessKey: this.$props.accessKey,\n icon: this.$props.icon,\n svgIcon: this.$props.svgIcon,\n iconClass: this.$props.iconClass,\n \"class\": this.$props.buttonClass,\n imageUrl: this.$props.imageUrl,\n look: this.$props.look,\n primary: this.$props.primary,\n dir: dir,\n ref: this._anchor,\n type: \"button\",\n \"aria-disabled\": disabled,\n \"aria-haspopup\": 'menu',\n \"aria-expanded\": this.computedOpened,\n \"aria-label\": this.$props.ariaLabel || \"\".concat(this.$props.text || '', \" dropdownbutton\"),\n \"aria-controls\": this.guid,\n \"aria-activedescendant\": this.focusedIndex !== undefined && this.focusedIndex >= 0 ? \"\".concat(this.guid, \"-\").concat(this.focusedIndex) : undefined\n }, this.v3 ? function () {\n return [_this2.$props.text, defaultSlot];\n } : [_this2.$props.text, defaultSlot]), renderPopup.call(this)]);\n },\n methods: {\n element: function element() {\n return this.mainButton;\n },\n onKeyDown: function onKeyDown(event) {\n if (event.altKey) {\n if (!this.computedOpened && event.keyCode === Keys.down) {\n this.dispatchPopupEvent(event, true);\n this.focusedIndex = 0;\n this.currentOpened = true;\n } else if (this.computedOpened && event.keyCode === Keys.up) {\n this.dispatchPopupEvent(event, false);\n this.focusedIndex = -1;\n this.currentOpened = false;\n }\n return;\n }\n if (event.keyCode === Keys.enter || event.keyCode === Keys.space) {\n if (this.focusedIndex !== undefined && this.focusedIndex >= 0) {\n this.dispatchClickEvent(event, this.focusedIndex);\n }\n // Prevent default because otherwise when an item is selected\n // click on the default button gets emitted which opens the popup again.\n event.preventDefault();\n this.focusedIndex = this.computedOpened ? -1 : 0, this.currentOpened = !this.computedOpened;\n this.dispatchPopupEvent(event, this.currentOpened);\n } else if (this.computedOpened && event.keyCode === Keys.esc) {\n this.focusedIndex = -1;\n this.currentOpened = false;\n this.dispatchPopupEvent(event, this.currentOpened);\n }\n if (this.computedOpened) {\n var newFocused = navigation(this.focusedIndex, event.keyCode, event.altKey, this.buttonsData.length);\n this.focusedIndex = newFocused;\n var arrowKey = event.keyCode === Keys.up || event.keyCode === Keys.down || event.keyCode === Keys.left || event.keyCode === Keys.right;\n if (!event.altKey && arrowKey) {\n // Needed to notify the parent listeners that event is handled.\n event.preventDefault();\n }\n }\n },\n onFocus: function onFocus(event) {\n if (!this.focused) {\n this.focused = true;\n this.$emit('focus', event, this, undefined);\n }\n this.focusedIndex = this.computedOpened ? 0 : -1;\n clearTimeout(this._blurTimeout);\n },\n onBlur: function onBlur(event) {\n clearTimeout(this._blurTimeout);\n this.createBlurTimeout(event);\n },\n createBlurTimeout: function createBlurTimeout(event) {\n var that = this;\n this._blurTimeout = setTimeout(function () {\n if (canUseDOM && document.activeElement !== that.$el) {\n that.focused = false;\n that.focusedIndex = -1;\n that.$emit('blur', event, that, undefined);\n var fireCloseEvent = that.computedOpened;\n if (fireCloseEvent) {\n that.currentOpened = false;\n that.dispatchPopupEvent(event, false);\n }\n }\n }, 200);\n },\n onItemClick: function onItemClick(event, clickedItemIndex) {\n this.focusedIndex = -1;\n this.currentOpened = false;\n this.dispatchClickEvent(event, clickedItemIndex);\n this.dispatchPopupEvent(event, false);\n },\n onItemDown: function onItemDown(event) {\n if (document.activeElement === this.element()) {\n event.preventDefault();\n }\n },\n mouseDown: function mouseDown(event) {\n event.preventDefault();\n },\n dispatchClickEvent: function dispatchClickEvent(dispatchedEvent, index) {\n if (!this.isItemDisabled(index)) {\n this.$emit('itemclick', {\n event: dispatchedEvent,\n item: this.buttonsData[index],\n itemIndex: index\n });\n }\n },\n onClickMainButton: function onClickMainButton(event) {\n if (!this.buttonsData.length) {\n return;\n }\n var toOpen = !this.computedOpened;\n this.currentOpened = toOpen;\n this.focused = true;\n this.focusedIndex = toOpen ? 0 : -1;\n this.dispatchPopupEvent(event, toOpen);\n },\n dispatchPopupEvent: function dispatchPopupEvent(dispatchedEvent, open) {\n this.$emit(open ? 'open' : 'close', dispatchedEvent, this, undefined);\n },\n isItemDisabled: function isItemDisabled(index) {\n return this.buttonsData[index] ? this.buttonsData[index].disabled : this.$props.disabled;\n },\n isRtl: function isRtl() {\n return this.$props.dir !== undefined ? this.$props.dir === 'rtl' : !!this.$el && getComputedStyle(this.$el).direction === 'rtl';\n }\n }\n};\n/**\n * @hidden\n */\nvar DropDownButton = DropDownButtonVue2;\nexport { DropDownButton, DropDownButtonVue2 };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { Keys, validatePackage, getDefaultSlots, kendoThemeMaps } from '@progress/kendo-vue-common';\nimport { toolbarButtons, internalButtons } from './../util';\nimport { packageMetadata } from '../package-metadata';\n/**\n * @hidden\n */\nvar ToolbarVue2 = {\n name: 'KendoToolbar',\n props: {\n tabIndex: {\n type: Number,\n default: 0\n },\n dir: String,\n keyboardNavigation: {\n type: Boolean,\n default: true\n },\n buttons: {\n type: Array,\n default: function _default() {\n return undefined;\n }\n },\n size: {\n type: String,\n default: 'medium',\n validator: function validator(value) {\n return [null, 'small', 'medium', 'large'].includes(value);\n }\n },\n ariaLabel: String\n },\n created: function created() {\n this.offsetHeight = 0;\n this.offsetWidth = 0;\n this.currentButtons = [];\n this.focusedSelector = this.selectors.map(function (s) {\n return s + ':focus';\n }).join(',');\n validatePackage(packageMetadata);\n },\n computed: {\n selectors: function selectors() {\n return this.$props.buttons || toolbarButtons;\n },\n wrapperClass: function wrapperClass() {\n var _a;\n var size = this.$props.size;\n return _a = {\n 'k-toolbar': true\n }, _a[\"k-toolbar-\".concat(kendoThemeMaps.sizeMap[size] || size)] = size, _a;\n }\n },\n mounted: function mounted() {\n window.addEventListener('resize', this.onWindowResize);\n var element = this.$el;\n if (element) {\n this.offsetWidth = element.offsetWidth;\n this.offsetHeight = element.offsetHeight;\n if (this.$props.keyboardNavigation !== false) {\n this.currentButtons = this.getCurrentButtons();\n this.setTabIndex(0);\n }\n }\n },\n updated: function updated() {\n var element = this.$el;\n if (!element || this.$props.keyboardNavigation === false) {\n return;\n }\n this.currentButtons = this.getCurrentButtons();\n this.setTabIndex(this.focusedIndex());\n },\n destroyed: !!isV3 ? undefined : function () {\n window.removeEventListener('resize', this.onWindowResize);\n this.currentButtons.length = 0;\n },\n // @ts-ignore\n unmounted: function unmounted() {\n window.removeEventListener('resize', this.onWindowResize);\n this.currentButtons.length = 0;\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n return h(\"div\", {\n \"class\": this.wrapperClass,\n role: \"toolbar\",\n attrs: this.v3 ? undefined : {\n role: \"toolbar\",\n dir: this.$props.dir,\n \"aria-label\": this.$props.ariaLabel\n },\n dir: this.$props.dir,\n \"aria-label\": this.$props.ariaLabel,\n onKeydown: this.onKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.onKeyDown\n }\n }, [defaultSlot]);\n },\n methods: {\n getCurrentButtons: function getCurrentButtons() {\n return this.$el && this.$el.querySelectorAll ? Array.from(this.$el.querySelectorAll(this.selectors.join(','))) : [];\n },\n getInternalButtons: function getInternalButtons() {\n return this.$el && this.$el.querySelectorAll ? Array.from(this.$el.querySelectorAll(internalButtons)) : [];\n },\n focusedIndex: function focusedIndex() {\n var focused = this.$el && this.$el.querySelector && this.$el.querySelector(this.focusedSelector);\n return Math.max(0, this.currentButtons.findIndex(function (e) {\n return e === focused;\n }));\n },\n setTabIndex: function setTabIndex(focusedIndex) {\n var tabIndex = this.$props.tabIndex;\n this.currentButtons.forEach(function (button, index) {\n button.tabIndex = index === focusedIndex ? tabIndex : -1;\n });\n this.getInternalButtons().forEach(function (button) {\n button.tabIndex = -1;\n });\n },\n onKeyDown: function onKeyDown(event) {\n if (this.$props.keyboardNavigation === false) {\n return;\n }\n var target = event.target;\n var arrowKey = event.keyCode === Keys.left || event.keyCode === Keys.right;\n if (!arrowKey || event.defaultPrevented || this.currentButtons.findIndex(function (b) {\n return b === target;\n }) === -1) {\n return;\n }\n var focusedIndex = this.focusedIndex();\n if (event.keyCode === Keys.left) {\n this.focusButton(focusedIndex, focusedIndex - 1);\n } else {\n this.focusButton(focusedIndex, focusedIndex + 1);\n }\n },\n focusButton: function focusButton(prevIndex, index) {\n var tabIndex = this.$props.tabIndex;\n var button = this.currentButtons[index];\n if (button) {\n button.tabIndex = tabIndex;\n button.focus();\n var prevButton = this.currentButtons[prevIndex];\n if (prevButton) {\n prevButton.tabIndex = -1;\n }\n }\n },\n onWindowResize: function onWindowResize(event) {\n var element = this.$el;\n if (!element) {\n return;\n }\n var offsetWidth = element.offsetWidth;\n var offsetHeight = element.offsetHeight;\n if (this.offsetWidth !== offsetWidth || this.offsetHeight !== offsetHeight) {\n this.offsetWidth = offsetWidth;\n this.offsetHeight = offsetHeight;\n var newSizes = {\n offsetWidth: this.offsetWidth,\n offsetHeight: this.offsetHeight\n };\n this.$emit('resize', __assign(__assign({\n target: this\n }, newSizes), {\n nativeEvent: event\n }));\n }\n }\n }\n};\n/**\n * @hidden\n */\nvar Toolbar = ToolbarVue2;\nexport { Toolbar, ToolbarVue2 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * @hidden\n */\nvar ToolbarItemVue2 = {\n name: 'KendoToolbarItem',\n methods: {\n element: function element() {\n return this.$el;\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n return h(\"div\", {\n \"class\": 'k-toolbar-item'\n }, [defaultSlot]);\n }\n};\n/**\n * @hidden\n */\nvar ToolbarItem = ToolbarItemVue2;\nexport { ToolbarItem, ToolbarItemVue2 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\n/**\n * @hidden\n */\nvar ToolbarSeparatorVue2 = {\n name: 'KendoToolbarItem',\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n return h(\"div\", {\n \"class\": \"k-separator\"\n });\n }\n};\n/**\n * Represents the [Kendo UI for Vue ToolbarSeparator component]({% slug overview_toolbar %}). A separator element for the sub-elements of the Toolbar.\n *\n * ```jsx\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * ```\n */\nvar ToolbarSeparator = ToolbarSeparatorVue2;\nexport { ToolbarSeparator, ToolbarSeparatorVue2 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\n/**\n * @hidden\n */\nvar ToolbarSpacerVue2 = {\n name: 'KendoToolbarItem',\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n return h(\"span\", {\n \"class\": \"k-spacer\"\n });\n }\n};\n/**\n * Represents the [Kendo UI for Vue ToolbarSpacer component]({% slug overview_toolbar %}). A spacer element for the sub-elements of the Toolbar.\n *\n * ```jsx\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * ```\n */\nvar ToolbarSpacer = ToolbarSpacerVue2;\nexport { ToolbarSpacer, ToolbarSpacerVue2 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nvar ref = allVue.ref;\nvar inject = allVue.inject;\nimport { classNames } from '@progress/kendo-vue-common';\nimport { Button as KButton } from '@progress/kendo-vue-buttons';\nimport { UploadFileStatus } from './interfaces/UploadFileStatus';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { messages, cancel, retry, remove } from './messages/main';\n/**\n * @hidden\n */\nvar UploadListActionButtonVue2 = {\n name: 'KendoVueUploadListActionButton',\n props: {\n progress: Number,\n uid: String,\n status: Number,\n async: Object,\n disabled: Boolean,\n files: Array\n },\n // @ts-ignore\n emits: {\n 'cancel': null,\n 'retry': null,\n 'remove': null\n },\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n data: function data() {\n return {\n retryFocused: false,\n actionFocused: false\n };\n },\n methods: {\n actionButtonTitle: function actionButtonTitle(status, localizationService) {\n if (status === UploadFileStatus.Uploading) {\n return localizationService.toLanguageString(cancel, messages[cancel]);\n }\n return localizationService.toLanguageString(remove, messages[remove]);\n },\n retryButtonTitle: function retryButtonTitle(localizationService) {\n return localizationService.toLanguageString(retry, messages[retry]);\n },\n buttonClassNames: function buttonClassNames(type) {\n return classNames(this.actionFocused && type === 'action' || this.retryFocused && type === 'retry' ? 'k-focus' : '');\n },\n onRetryFocus: function onRetryFocus() {\n this.retryFocused = true;\n },\n onRetryBlur: function onRetryBlur() {\n this.retryFocused = false;\n },\n onActionFocus: function onActionFocus() {\n this.actionFocused = true;\n },\n onActionBlur: function onActionBlur() {\n this.actionFocused = false;\n },\n onActionClick: function onActionClick() {\n var _a = this.$props,\n status = _a.status,\n uid = _a.uid,\n disabled = _a.disabled;\n if (disabled || status === UploadFileStatus.Removing) {\n return;\n }\n if (status === UploadFileStatus.Uploading) {\n this.$emit('cancel', uid);\n } else {\n this.$emit('remove', uid);\n }\n },\n onRetryClick: function onRetryClick() {\n var _a = this.$props,\n uid = _a.uid,\n disabled = _a.disabled;\n if (disabled) {\n return;\n }\n this.$emit('retry', uid);\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n status = _a.status,\n progress = _a.progress;\n var isRetryVisible = status === UploadFileStatus.UploadFailed;\n var isProgressVisible = status === UploadFileStatus.Uploading;\n var isActionHidden = (status === UploadFileStatus.Uploaded || status === UploadFileStatus.Initial) && !this.$props.async.removeUrl;\n var localizationService = provideLocalizationService(this);\n var percent = '%';\n return h(\"div\", {\n \"class\": 'k-upload-actions'\n }, [isProgressVisible ? h(\"span\", {\n \"class\": 'k-upload-pct'\n }, [progress, percent]) : undefined, isRetryVisible ?\n // @ts-ignore\n h(KButton, {\n type: \"button\",\n attrs: this.v3 ? undefined : {\n type: \"button\",\n tabindex: -1,\n disabled: this.disabled,\n icon: 'arrow-rotate-cw-small'\n // svgIcon={isProgressVisible ? denyIcon : xIcon}\n ,\n iconClass: 'k-retry',\n ariaLabel: this.retryButtonTitle(localizationService),\n title: this.retryButtonTitle(localizationService)\n },\n tabindex: -1,\n disabled: this.disabled,\n \"class\": this.buttonClassNames('retry'),\n icon: 'arrow-rotate-cw-small',\n iconClass: 'k-retry',\n ariaLabel: this.retryButtonTitle(localizationService),\n title: this.retryButtonTitle(localizationService),\n onFocus: this.onRetryFocus,\n on: this.v3 ? undefined : {\n \"focus\": this.onRetryFocus,\n \"blur\": this.onRetryBlur,\n \"click\": this.onRetryClick\n },\n onBlur: this.onRetryBlur,\n onClick: this.onRetryClick\n }) : undefined, !isActionHidden ?\n // @ts-ignore\n h(KButton, {\n type: \"button\",\n attrs: this.v3 ? undefined : {\n type: \"button\",\n fillMode: 'flat',\n tabindex: -1,\n disabled: this.disabled,\n icon: isProgressVisible ? 'deny' : 'x'\n // svgIcon={isProgressVisible ? denyIcon : xIcon}\n ,\n ariaLabel: this.actionButtonTitle(status, localizationService),\n title: this.actionButtonTitle(status, localizationService)\n },\n fillMode: 'flat',\n tabindex: -1,\n disabled: this.disabled,\n \"class\": this.buttonClassNames('action'),\n onFocus: this.onActionFocus,\n on: this.v3 ? undefined : {\n \"focus\": this.onActionFocus,\n \"blur\": this.onActionBlur,\n \"click\": this.onActionClick\n },\n onBlur: this.onActionBlur,\n onClick: this.onActionClick,\n icon: isProgressVisible ? 'deny' : 'x',\n ariaLabel: this.actionButtonTitle(status, localizationService),\n title: this.actionButtonTitle(status, localizationService)\n }) : undefined]);\n }\n};\n/**\n * @hidden\n */\nvar UploadListActionButton = UploadListActionButtonVue2;\nexport { UploadListActionButton, UploadListActionButtonVue2 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nvar ref = allVue.ref;\nvar inject = allVue.inject;\nimport { classNames, Icon } from '@progress/kendo-vue-common';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { ProgressBar } from '@progress/kendo-vue-progressbars';\nimport { messages, statusUploaded, statusUploadFailed } from './messages/main';\nimport utils from './utils/utils';\nimport { UploadListActionButton } from './UploadListActionButton';\nimport { fileAudioIcon, fileConfigIcon, fileDataIcon, fileIcon, fileImageIcon, filePdfIcon, filePresentationIcon, fileProgrammingIcon, fileTxtIcon, fileVideoIcon, fileZipIcon } from '@progress/kendo-svg-icons';\n/**\n * @hidden\n */\nvar UploadListSingleItemVue2 = {\n name: 'KendoVueUploadListSingleItem',\n props: {\n files: Array,\n disabled: Boolean,\n async: Object\n },\n // @ts-ignore\n emits: {\n 'cancel': null,\n 'retry': null,\n 'remove': null\n },\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n methods: {\n onRetry: function onRetry(uid) {\n this.$emit('retry', uid);\n },\n onRemove: function onRemove(uid) {\n this.$emit('remove', uid);\n },\n onCancel: function onCancel(uid) {\n this.$emit('cancel', uid);\n },\n getFileExtension: function getFileExtension(file) {\n return file.extension ? file.extension.substring(1) : '';\n },\n getFileValidationMessage: function getFileValidationMessage(file, isUploadFailed) {\n var localizationService = provideLocalizationService(this);\n var validationMessage = '';\n if (isUploadFailed) {\n validationMessage = localizationService.toLanguageString(statusUploadFailed, messages[statusUploadFailed]);\n } else if (file.validationErrors && file.validationErrors.length > 0) {\n var messageKey = \"upload.\".concat(file.validationErrors[0]);\n validationMessage = localizationService.toLanguageString(messageKey, messages[messageKey]);\n }\n return validationMessage;\n },\n getFileExtensionName: function getFileExtensionName(file) {\n switch (file.extension) {\n case '.png':\n case '.jpg':\n case '.jpeg':\n case '.tiff':\n case '.bmp':\n case '.gif':\n return 'file-image';\n case '.mp3':\n case '.mp4':\n case '.wav':\n return 'file-audio';\n case '.mkv':\n case '.webm':\n case '.flv':\n case '.gifv':\n case '.avi':\n case '.wmv':\n return 'file-video';\n case '.txt':\n return 'file-txt';\n case '.pdf':\n return 'file-pdf';\n case '.ppt':\n case '.pptx':\n return 'file-presentation';\n case '.csv':\n case '.xls':\n case '.xlsx':\n return 'file-data';\n case '.html':\n case '.css':\n case '.js':\n case '.ts':\n return 'file-programming';\n case '.exe':\n return 'file-config';\n case '.zip':\n case '.rar':\n return 'file-zip';\n default:\n return 'file';\n }\n },\n getFileExtensionSVG: function getFileExtensionSVG(file) {\n switch (file.extension) {\n case '.png':\n case '.jpg':\n case '.jpeg':\n case '.tiff':\n case '.bmp':\n case '.gif':\n return fileImageIcon;\n case '.mp3':\n case '.mp4':\n case '.wav':\n return fileAudioIcon;\n case '.mkv':\n case '.webm':\n case '.flv':\n case '.gifv':\n case '.avi':\n case '.wmv':\n return fileVideoIcon;\n case '.txt':\n return fileTxtIcon;\n case '.pdf':\n return filePdfIcon;\n case '.ppt':\n case '.pptx':\n return filePresentationIcon;\n case '.csv':\n case '.xls':\n case '.xlsx':\n return fileDataIcon;\n case '.html':\n case '.css':\n case '.js':\n case '.ts':\n return fileProgrammingIcon;\n case '.exe':\n return fileConfigIcon;\n case '.zip':\n case '.rar':\n return fileZipIcon;\n default:\n return fileIcon;\n }\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n files = _a.files,\n disabled = _a.disabled,\n async = _a.async;\n var file = files[0];\n var itemClassName = classNames('k-file-single');\n var _b = utils.getFileStatus([file]),\n isUploaded = _b[1],\n isUploadFailed = _b[2],\n isUploadValidationFailed = _b[3];\n var showProgressBar = !isUploadValidationFailed && !isUploaded && !isUploadFailed;\n var renderValidationError = function renderValidationError(currentFile, isCurrentUploadFailed) {\n return h(\"span\", {\n \"class\": 'k-file-info',\n key: '2'\n }, [h(\"span\", {\n \"class\": 'k-file-name',\n title: currentFile.name,\n attrs: this.v3 ? undefined : {\n title: currentFile.name\n }\n }, [currentFile.name]), h(\"span\", {\n \"class\": 'k-file-validation-message'\n }, [this.getFileValidationMessage(currentFile, isCurrentUploadFailed)])]);\n };\n var renderFileDetails = function renderFileDetails(currentFile) {\n var localizationService = provideLocalizationService(this);\n var successMessage = localizationService.toLanguageString(statusUploaded, messages[statusUploaded]);\n return h(\"span\", {\n \"class\": 'k-file-info',\n key: '2'\n }, [h(\"span\", {\n \"class\": 'k-file-name',\n title: currentFile.name,\n attrs: this.v3 ? undefined : {\n title: currentFile.name\n }\n }, [currentFile.name]), currentFile.progress !== 100 ? h(\"span\", {\n \"class\": 'k-file-size'\n }, [utils.getTotalFilesSizeMessage([currentFile])]) : h(\"span\", {\n \"class\": 'k-file-validation-message'\n }, [successMessage])]);\n };\n return h(\"div\", {\n \"class\": itemClassName\n }, [showProgressBar && h(ProgressBar, {\n value: file.progress || 0,\n attrs: this.v3 ? undefined : {\n value: file.progress || 0,\n labelVisible: false\n },\n labelVisible: false\n }), h(\"span\", {\n \"class\": 'k-file-icon-wrapper',\n key: '1'\n }, [h(Icon, {\n name: this.getFileExtensionName(file),\n attrs: this.v3 ? undefined : {\n name: this.getFileExtensionName(file),\n icon: this.getFileExtensionSVG(file),\n size: 'xxxlarge'\n },\n icon: this.getFileExtensionSVG(file),\n size: 'xxxlarge',\n \"class\": 'k-file-icon'\n }), h(\"span\", {\n \"class\": 'k-file-state'\n })]), isUploadValidationFailed || isUploadFailed ? renderValidationError.call(this, file, isUploadFailed) : renderFileDetails.call(this, file),\n // @ts-ignore function children\n h(UploadListActionButton, {\n uid: file.uid,\n attrs: this.v3 ? undefined : {\n uid: file.uid,\n status: file.status,\n progress: file.progress,\n files: files,\n disabled: disabled,\n async: async\n },\n status: file.status,\n progress: file.progress,\n files: files,\n disabled: disabled,\n async: async,\n onCancel: this.onCancel,\n on: this.v3 ? undefined : {\n \"cancel\": this.onCancel,\n \"remove\": this.onRemove,\n \"retry\": this.onRetry\n },\n onRemove: this.onRemove,\n onRetry: this.onRetry\n })]);\n }\n};\n/**\n * @hidden\n */\nvar UploadListSingleItem = UploadListSingleItemVue2;\nexport { UploadListSingleItem, UploadListSingleItemVue2 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nvar ref = allVue.ref;\nvar inject = allVue.inject;\nimport { classNames, Icon } from '@progress/kendo-vue-common';\nimport utils from './utils/utils';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { messages, total, files as filesM, statusUploadFailed, statusUploaded } from './messages/main';\nimport { UploadListActionButton } from './UploadListActionButton';\nimport { ProgressBar } from '@progress/kendo-vue-progressbars';\nimport { copyIcon } from '@progress/kendo-svg-icons';\n/**\n * @hidden\n */\nvar UploadListMultiItemVue2 = {\n name: 'KendoVueUploadListMultiItem',\n props: {\n files: Array,\n disabled: Boolean,\n async: Object\n },\n // @ts-ignore\n emits: {\n 'cancel': null,\n 'retry': null,\n 'remove': null\n },\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n methods: {\n onRetry: function onRetry(uid) {\n this.$emit('retry', uid);\n },\n onRemove: function onRemove(uid) {\n this.$emit('remove', uid);\n },\n onCancel: function onCancel(uid) {\n this.$emit('cancel', uid);\n },\n getFileValidationMessage: function getFileValidationMessage(file) {\n var localizationService = provideLocalizationService(this);\n var validationMessage = '';\n if (file.validationErrors && file.validationErrors.length > 0) {\n var messageKey = \"upload.\".concat(file.validationErrors[0]);\n validationMessage = localizationService.toLanguageString(messageKey, messages[messageKey]);\n }\n return validationMessage;\n },\n progress: function progress() {\n var files = this.$props.files;\n var sum = 0;\n files.forEach(function (file) {\n sum += file.progress || 0;\n });\n return sum / files.length;\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n files = _a.files,\n disabled = _a.disabled,\n async = _a.async;\n var itemClassName = classNames('k-file-multiple');\n var _b = utils.getFileStatus(files),\n isUploaded = _b[1],\n isUploadFailed = _b[2],\n isUploadValidationFailed = _b[3];\n var localizationService = provideLocalizationService(this);\n var totalMessage = localizationService.toLanguageString(total, messages[total]);\n var filesMessage = localizationService.toLanguageString(filesM, messages[filesM]);\n var uploadFailedMessage = localizationService.toLanguageString(statusUploadFailed, messages[statusUploadFailed]);\n var successMessage = localizationService.toLanguageString(statusUploaded, messages[statusUploaded]);\n var progress = this.progress();\n var showProgressBar = !isUploadValidationFailed && !isUploaded && !isUploadFailed;\n var mapFiles = function mapFiles() {\n return files.map(function (file) {\n return h(\"span\", {\n key: file.name,\n \"class\": 'k-file-info'\n }, [h(\"span\", {\n \"class\": 'k-file-name',\n title: file.name,\n attrs: this.v3 ? undefined : {\n title: file.name\n }\n }, [file.name]), utils.fileHasValidationErrors(file) ? h(\"span\", {\n \"class\": 'k-file-validation-message'\n }, [this.getFileValidationMessage(file)]) : h(\"span\", {\n key: \"\".concat(file.name, \"-size\"),\n \"class\": 'k-file-size'\n }, [utils.getTotalFilesSizeMessage([file])])]);\n }, this);\n };\n return h(\"div\", {\n \"class\": itemClassName\n }, [showProgressBar && h(ProgressBar, {\n value: progress || 0,\n attrs: this.v3 ? undefined : {\n value: progress || 0,\n labelVisible: false\n },\n labelVisible: false\n }), h(\"span\", {\n \"class\": 'k-file-icon-wrapper'\n }, [h(Icon, {\n name: 'copy',\n attrs: this.v3 ? undefined : {\n name: 'copy',\n icon: copyIcon,\n size: 'xxxlarge'\n },\n icon: copyIcon,\n size: 'xxxlarge',\n \"class\": 'k-file-icon'\n })]), h(\"span\", {\n \"class\": \"k-multiple-files-wrapper\"\n }, [mapFiles.call(this), !isUploadFailed ? progress !== 100 ? h(\"span\", {\n \"class\": 'k-file-summary'\n }, [\"\".concat(totalMessage, \": \").concat(files.length, \" \").concat(filesMessage, \", \").concat(utils.getTotalFilesSizeMessage(files))]) : h(\"span\", {\n \"class\": 'k-file-summary k-text-success'\n }, [\"\".concat(files.length, \" \").concat(successMessage)]) : h(\"span\", {\n \"class\": 'k-file-validation-message'\n }, [\"\".concat(files.length, \" \").concat(uploadFailedMessage)])]),\n // @ts-ignore function children\n h(UploadListActionButton, {\n uid: files[0].uid,\n attrs: this.v3 ? undefined : {\n uid: files[0].uid,\n status: files[0].status,\n progress: progress,\n files: files,\n disabled: disabled,\n async: async\n },\n status: files[0].status,\n progress: progress,\n files: files,\n disabled: disabled,\n async: async,\n onCancel: this.onCancel,\n on: this.v3 ? undefined : {\n \"cancel\": this.onCancel,\n \"remove\": this.onRemove,\n \"retry\": this.onRetry\n },\n onRemove: this.onRemove,\n onRetry: this.onRetry\n })]);\n }\n};\n/**\n * @hidden\n */\nvar UploadListMultiItem = UploadListMultiItemVue2;\nexport { UploadListMultiItem, UploadListMultiItemVue2 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nvar ref = allVue.ref;\nimport { canUseDOM, classNames, getTemplate, setRef } from '@progress/kendo-vue-common';\nimport { UploadFileStatus } from './interfaces/UploadFileStatus';\nimport { UploadListSingleItem } from './UploadListSingleItem';\nimport { UploadListMultiItem } from './UploadListMultiItem';\nimport utils from './utils/utils';\n/**\n * @hidden\n */\nvar UploadListGroupVue2 = {\n name: 'KendoVueUploadListGroup',\n props: {\n files: Array,\n async: Object,\n disabled: Boolean,\n navigationIndex: Number,\n list: [String, Function, Object],\n index: Number\n },\n // @ts-ignore\n emits: {\n 'cancel': null,\n 'click': null,\n 'retry': null,\n 'remove': null\n },\n mounted: function mounted() {\n this._element = this.v3 ? this.elementRef : this.$refs.element;\n },\n updated: function updated() {\n var _a = this.$props,\n navigationIndex = _a.navigationIndex,\n index = _a.index;\n if (navigationIndex === index && this._element && canUseDOM && document.activeElement !== this._element) {\n this._element.focus();\n }\n },\n methods: {\n onClick: function onClick() {\n this.$emit('click', this.$props.index);\n },\n onRetry: function onRetry(uid) {\n this.$emit('retry', uid);\n },\n onRemove: function onRemove(uid) {\n this.$emit('remove', uid);\n },\n onCancel: function onCancel(uid) {\n this.$emit('cancel', uid);\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n var elementRef = ref(null);\n return {\n v3: v3,\n elementRef: elementRef\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n files = _a.files,\n async = _a.async,\n disabled = _a.disabled,\n navigationIndex = _a.navigationIndex,\n index = _a.index,\n list = _a.list;\n var firstFile = files[0];\n var isFileSuccess = firstFile.status === UploadFileStatus.Uploaded || firstFile.status === UploadFileStatus.Initial;\n var validationErrors = utils.filesHaveValidationErrors(files);\n var actionFailed = firstFile.status === UploadFileStatus.UploadFailed || firstFile.status === UploadFileStatus.RemoveFailed;\n var liClassName = classNames('k-file', {\n 'k-file-invalid': validationErrors,\n 'k-file-error': actionFailed,\n 'k-file-progress': firstFile.status === UploadFileStatus.Uploading,\n 'k-file-success': isFileSuccess,\n 'k-focus': navigationIndex === index\n });\n var itemComponent;\n var defaultItemRendering = files.length === 1 ?\n // @ts-ignore\n h(UploadListSingleItem, {\n files: files,\n attrs: this.v3 ? undefined : {\n files: files,\n async: async,\n disabled: disabled\n },\n async: async,\n disabled: disabled,\n onCancel: this.onCancel,\n on: this.v3 ? undefined : {\n \"cancel\": this.onCancel,\n \"remove\": this.onRemove,\n \"retry\": this.onRetry\n },\n onRemove: this.onRemove,\n onRetry: this.onRetry\n }) :\n // @ts-ignore\n h(UploadListMultiItem, {\n files: files,\n attrs: this.v3 ? undefined : {\n files: files,\n async: async,\n disabled: disabled\n },\n async: async,\n disabled: disabled,\n onCancel: this.onCancel,\n on: this.v3 ? undefined : {\n \"cancel\": this.onCancel,\n \"remove\": this.onRemove,\n \"retry\": this.onRetry\n },\n onRemove: this.onRemove,\n onRetry: this.onRetry\n });\n itemComponent = getTemplate.call(this, {\n h: h,\n template: this.$props.list,\n defaultRendering: defaultItemRendering,\n additionalProps: this.$props,\n additionalListeners: {\n retry: this.onRetry,\n remove: this.onRemove,\n cancel: this.onCancel\n }\n });\n return h(\"li\", {\n ref: setRef(this, 'element'),\n \"class\": liClassName,\n \"data-uid\": firstFile.uid,\n attrs: this.v3 ? undefined : {\n \"data-uid\": firstFile.uid,\n tabindex: -1\n },\n tabindex: -1,\n onClick: this.onClick,\n on: this.v3 ? undefined : {\n \"click\": this.onClick\n }\n }, [itemComponent]);\n }\n};\n/**\n * @hidden\n */\nvar UploadListGroup = UploadListGroupVue2;\nexport { UploadListGroup, UploadListGroupVue2 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nvar ref = allVue.ref;\nimport { classNames } from '@progress/kendo-vue-common';\nimport { UploadListGroup } from './UploadListGroup';\n/**\n * @hidden\n */\nvar UploadListVue2 = {\n name: 'KendoVueUploadList',\n props: {\n groupedFiles: Object,\n async: Object,\n disabled: Boolean,\n navigationIndex: {\n type: Number,\n default: undefined\n },\n list: [String, Function, Object]\n },\n // @ts-ignore\n emits: {\n 'cancel': null,\n 'click': null,\n 'retry': null,\n 'remove': null\n },\n methods: {\n onClick: function onClick(navIndex) {\n this.$emit('click', navIndex);\n },\n onRetry: function onRetry(uid) {\n this.$emit('retry', uid);\n },\n onRemove: function onRemove(uid) {\n this.$emit('remove', uid);\n },\n onCancel: function onCancel(uid) {\n this.$emit('cancel', uid);\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n groupedFiles = _a.groupedFiles,\n navigationIndex = _a.navigationIndex,\n async = _a.async,\n disabled = _a.disabled,\n list = _a.list;\n var ulClassName = classNames('k-upload-files', 'k-reset');\n return h(\"ul\", {\n \"class\": ulClassName\n }, [Object.keys(groupedFiles).map(function (key, index) {\n var files = groupedFiles[key];\n return (\n // @ts-ignore function children\n h(UploadListGroup, {\n key: key,\n files: files,\n attrs: this.v3 ? undefined : {\n files: files,\n index: index,\n navigationIndex: navigationIndex,\n async: async,\n disabled: disabled,\n list: list\n },\n index: index,\n navigationIndex: navigationIndex,\n async: async,\n disabled: disabled,\n list: list,\n onCancel: this.onCancel,\n on: this.v3 ? undefined : {\n \"cancel\": this.onCancel,\n \"click\": this.onClick,\n \"remove\": this.onRemove,\n \"retry\": this.onRetry\n },\n onClick: this.onClick,\n onRemove: this.onRemove,\n onRetry: this.onRetry\n })\n );\n }, this)]);\n }\n};\n/**\n * @hidden\n */\nvar UploadList = UploadListVue2;\nexport { UploadList, UploadListVue2 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nvar ref = allVue.ref;\nvar inject = allVue.inject;\nimport { classNames } from '@progress/kendo-vue-common';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { Button } from '@progress/kendo-vue-buttons';\nimport { messages, clearSelectedFiles, uploadSelectedFiles } from './messages/main';\n/**\n * @hidden\n */\nvar UploadActionButtonsVue2 = {\n name: 'KendoVueUploadActionButtons',\n props: {\n disabled: Boolean,\n navigationIndex: Number,\n clearButtonIndex: Number,\n uploadButtonIndex: Number,\n actionsLayout: String\n },\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n // @ts-ignore\n emits: {\n 'clear': null,\n 'click': null,\n 'upload': null\n },\n created: function created() {\n this._prevNavigationIndex = undefined;\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n var uploadElementRef = ref(null);\n var clearElementRef = ref(null);\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n uploadElementRef: uploadElementRef,\n clearElementRef: clearElementRef,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n mounted: function mounted() {\n this._clearElement = this.v3 ? this.clearElementRef : this.$refs.clearElement;\n this._uploadElement = this.v3 ? this.uploadElementRef : this.$refs.uploadElement;\n },\n watch: {\n navigationIndex: function navigationIndex(_newNavigationIndex, oldNavigationIndex) {\n this._prevNavigationIndex = oldNavigationIndex;\n }\n },\n updated: function updated() {\n var _a = this.$props,\n navigationIndex = _a.navigationIndex,\n clearButtonIndex = _a.clearButtonIndex,\n uploadButtonIndex = _a.uploadButtonIndex;\n if (navigationIndex !== this._prevNavigationIndex) {\n if (navigationIndex === clearButtonIndex && this._clearElement) {\n this._clearElement.focus();\n }\n if (navigationIndex === uploadButtonIndex && this._uploadElement) {\n this._uploadElement.focus();\n }\n }\n },\n methods: {\n onClearClick: function onClearClick() {\n if (this.$props.disabled) {\n return;\n }\n this.$emit('clear');\n },\n onUploadClick: function onUploadClick() {\n if (this.$props.disabled) {\n return;\n }\n this.$emit('click', this.$props.uploadButtonIndex);\n this.$emit('upload');\n }\n },\n render: function render(createElement) {\n var _this = this;\n var h = gh || createElement;\n var _a = this.$props,\n disabled = _a.disabled,\n navigationIndex = _a.navigationIndex,\n clearButtonIndex = _a.clearButtonIndex,\n uploadButtonIndex = _a.uploadButtonIndex,\n actionsLayout = _a.actionsLayout;\n var localizationService = provideLocalizationService(this);\n var wrapperClasses = classNames('k-actions', {\n 'k-actions-start': actionsLayout === 'start',\n 'k-actions-center': actionsLayout === 'center',\n 'k-actions-end': actionsLayout === 'end',\n 'k-actions-stretched': actionsLayout === 'stretched'\n });\n var clearButtonClasses = classNames('k-clear-selected', navigationIndex === clearButtonIndex ? 'k-focus' : '');\n var uploadButtonClasses = classNames('k-upload-selected', navigationIndex === uploadButtonIndex ? 'k-focus' : '');\n return h(\"div\", {\n \"class\": wrapperClasses\n }, [\n // @ts-ignore function children\n h(Button, {\n type: \"button\",\n attrs: this.v3 ? undefined : {\n type: \"button\",\n disabled: disabled,\n tabIndex: -1\n },\n ref: this.v3 ? function (el) {\n _this.clearElementRef = el;\n } : 'clearElement',\n disabled: disabled,\n \"class\": clearButtonClasses,\n tabIndex: -1,\n onClick: this.onClearClick,\n on: this.v3 ? undefined : {\n \"click\": this.onClearClick\n }\n }, this.v3 ? function () {\n return [localizationService.toLanguageString(clearSelectedFiles, messages[clearSelectedFiles])];\n } : [localizationService.toLanguageString(clearSelectedFiles, messages[clearSelectedFiles])]),\n // @ts-ignore function children\n h(Button, {\n type: \"button\",\n attrs: this.v3 ? undefined : {\n type: \"button\",\n disabled: disabled,\n themeColor: 'primary',\n tabIndex: -1\n },\n ref: this.v3 ? function (el) {\n _this.uploadElementRef = el;\n } : 'uploadElement',\n disabled: disabled,\n themeColor: 'primary',\n \"class\": uploadButtonClasses,\n tabIndex: -1,\n onClick: this.onUploadClick,\n on: this.v3 ? undefined : {\n \"click\": this.onUploadClick\n }\n }, this.v3 ? function () {\n return [localizationService.toLanguageString(uploadSelectedFiles, messages[uploadSelectedFiles])];\n } : [localizationService.toLanguageString(uploadSelectedFiles, messages[uploadSelectedFiles])])]);\n }\n};\n/**\n * @hidden\n */\nvar UploadActionButtons = UploadActionButtonsVue2;\nexport { UploadActionButtons, UploadActionButtonsVue2 };","// @ts-ignore\nimport { setRef } from '@progress/kendo-vue-common';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nvar ref = allVue.ref;\nimport { selectTitle, selectNoFilesTitle, select, messages } from './messages/main';\nvar CHROME_REGEX = /(chrome)[ \\/]([\\w.]+)/i;\nvar SAFARI_REGEX = /(webkit)[ \\/]([\\w.]+)/i;\n/**\n * @hidden\n */\nvar UploadInputVue2 = {\n name: 'KendoVueUploadInput',\n props: {\n async: Object,\n id: String,\n multiple: {\n type: Boolean,\n default: undefined\n },\n disabled: {\n type: Boolean,\n default: undefined\n },\n accept: {\n type: String,\n default: undefined\n },\n hasFiles: {\n type: Boolean,\n default: false\n },\n ariaLabelledBy: {\n type: String,\n default: undefined\n },\n ariaDescribedBy: {\n type: String,\n default: undefined\n }\n },\n // @ts-ignore\n emits: {\n 'mousedown': null,\n 'add': null\n },\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n mounted: function mounted() {\n this._input = this.v3 ? this.inputRef : this.$refs.input;\n },\n methods: {\n onMouseDown: function onMouseDown(e) {\n this.$emit('mousedown', e);\n },\n onAdd: function onAdd() {\n var ua = navigator.userAgent;\n var input = this._input;\n if (input) {\n if (input.files) {\n this.$emit('add', input.files);\n }\n /*\n Chrome and Internet Explorer do not trigger a `change` event\n when a file with the same name is selected a number of consecutive times.\n As a workaround, clear the input value after handling the file.\n */\n if (!(!ua.match(CHROME_REGEX) && ua.match(SAFARI_REGEX))) {\n input.type = '';\n input.type = 'file';\n }\n }\n },\n actionElement: function actionElement() {\n return this._input;\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n var inputRef = ref(null);\n return {\n v3: v3,\n inputRef: inputRef\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n multiple = _a.multiple,\n async = _a.async,\n disabled = _a.disabled,\n accept = _a.accept,\n hasFiles = _a.hasFiles,\n ariaLabelledBy = _a.ariaLabelledBy,\n ariaDescribedBy = _a.ariaDescribedBy;\n var localizationService = provideLocalizationService(this);\n var message = hasFiles ? selectTitle : selectNoFilesTitle;\n var selectMessage = localizationService.toLanguageString(message, messages[message]);\n var selectLabel = localizationService.toLanguageString(select, messages[select]);\n return h(\"input\", {\n ref: setRef(this, 'input'),\n id: this.id,\n attrs: this.v3 ? undefined : {\n id: this.id,\n autocomplete: 'off',\n name: async.saveField,\n accept: accept,\n type: 'file',\n tabindex: -1,\n multiple: multiple,\n disabled: disabled,\n title: selectMessage,\n \"aria-label\": ariaLabelledBy !== undefined ? undefined : selectLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy\n },\n \"class\": 'k-hidden',\n autocomplete: 'off',\n name: async.saveField,\n accept: accept,\n type: 'file',\n tabindex: -1,\n multiple: multiple,\n disabled: disabled,\n onChange: this.onAdd,\n on: this.v3 ? undefined : {\n \"change\": this.onAdd,\n \"mousedown\": this.onMouseDown\n },\n onMousedown: this.onMouseDown,\n title: selectMessage,\n \"aria-label\": ariaLabelledBy !== undefined ? undefined : selectLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy\n });\n }\n};\n/**\n * @hidden\n */\nvar UploadInput = UploadInputVue2;\nexport { UploadInput, UploadInputVue2 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nvar ref = allVue.ref;\nvar inject = allVue.inject;\nimport { classNames, guid, setRef } from '@progress/kendo-vue-common';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { messages, select } from './messages/main';\nimport { UploadInput } from './UploadInput';\nimport { Button } from '@progress/kendo-vue-buttons';\n/**\n * @hidden\n */\nvar UploadAddButtonVue2 = {\n name: 'KendoVueUploadAddButton',\n props: {\n addButtonIndex: Number,\n navigationIndex: Number,\n notFocusedIndex: Number,\n tabIndex: Number,\n async: Object,\n multiple: Boolean,\n disabled: Boolean,\n accept: String,\n id: String\n },\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n // @ts-ignore\n emits: {\n 'add': null,\n 'click': null\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n var elementRef = ref(null);\n var uploadInputRef = ref(null);\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n elementRef: elementRef,\n uploadInputRef: uploadInputRef,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n created: function created() {\n this.uploadInputId = guid();\n },\n mounted: function mounted() {\n this.element = this.v3 ? this.elementRef : this.$refs.element;\n this.uploadInput = this.v3 ? this.uploadInputRef : this.$refs.uploadInput;\n },\n watch: {\n navigationIndex: function navigationIndex(_newNavigationIndex, oldNavigationIndex) {\n this._prevNavigationIndex = oldNavigationIndex;\n }\n },\n updated: function updated() {\n var _a = this.$props,\n navigationIndex = _a.navigationIndex,\n addButtonIndex = _a.addButtonIndex,\n notFocusedIndex = _a.notFocusedIndex;\n if (navigationIndex !== this._prevNavigationIndex && this._prevNavigationIndex !== notFocusedIndex && navigationIndex === addButtonIndex && this.element) {\n this.element.focus();\n }\n },\n methods: {\n focus: function focus() {\n if (this.element) {\n this.element.focus();\n }\n },\n onClick: function onClick() {\n if (this.actionElement()) {\n this.actionElement().click();\n }\n this.$emit('click', this.$props.addButtonIndex);\n },\n onAdd: function onAdd(files) {\n this.$emit('add', files);\n },\n onInputMouseDown: function onInputMouseDown(e) {\n if (this.element) {\n e.preventDefault();\n this.element.focus();\n }\n },\n actionElement: function actionElement() {\n if (this.uploadInput) {\n return this.uploadInput.actionElement();\n }\n }\n },\n render: function render(createElement) {\n var _this = this;\n var h = gh || createElement;\n var _a = this.$props,\n navigationIndex = _a.navigationIndex,\n addButtonIndex = _a.addButtonIndex,\n tabIndex = _a.tabIndex,\n id = _a.id,\n async = _a.async,\n multiple = _a.multiple,\n disabled = _a.disabled,\n accept = _a.accept;\n var localizationService = provideLocalizationService(this);\n var selectMessage = localizationService.toLanguageString(select, messages[select]);\n var buttonClassName = classNames('k-upload-button', navigationIndex === addButtonIndex ? 'k-focus' : '');\n return h(\"div\", {\n \"class\": \"k-upload-button-wrap\"\n }, [\n // @ts-ignore function children\n h(Button, {\n id: id,\n attrs: this.v3 ? undefined : {\n id: id,\n role: 'button',\n type: \"button\",\n disabled: disabled,\n ariaLabel: selectMessage,\n tabindex: tabIndex\n },\n ref: setRef(this, 'element'),\n role: 'button',\n type: \"button\",\n disabled: disabled,\n ariaLabel: selectMessage,\n \"class\": buttonClassName,\n tabindex: tabIndex,\n onClick: this.onClick,\n on: this.v3 ? undefined : {\n \"click\": this.onClick\n }\n }, this.v3 ? function () {\n return [selectMessage];\n } : [selectMessage]),\n // @ts-ignore function children\n h(UploadInput, {\n id: this.uploadInputId,\n attrs: this.v3 ? undefined : {\n id: this.uploadInputId,\n async: async,\n multiple: multiple,\n disabled: disabled,\n accept: accept\n },\n async: async,\n multiple: multiple,\n disabled: disabled,\n accept: accept,\n onMousedown: this.onInputMouseDown,\n on: this.v3 ? undefined : {\n \"mousedown\": this.onInputMouseDown,\n \"add\": this.onAdd\n },\n onAdd: this.onAdd,\n ref: this.v3 ? function (el) {\n _this.uploadInputRef = el;\n } : 'uploadInput'\n })]);\n }\n};\n/**\n * @hidden\n */\nvar UploadAddButton = UploadAddButtonVue2;\nexport { UploadAddButton, UploadAddButtonVue2 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nvar inject = allVue.inject;\nimport { classNames, Icon } from '@progress/kendo-vue-common';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { messages, headerStatusUploading, headerStatusUploaded } from './messages/main';\nimport { checkIcon, exclamationCircleIcon, uploadIcon } from '@progress/kendo-svg-icons';\n/**\n * @hidden\n */\nvar UploadStatusVue2 = {\n props: {\n isUploading: Boolean,\n isUploaded: Boolean,\n isUploadFailed: Boolean\n },\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n isUploading = _a.isUploading,\n isUploaded = _a.isUploaded,\n isUploadFailed = _a.isUploadFailed;\n var statusText = '';\n var localizationService = provideLocalizationService(this);\n if (isUploading) {\n statusText = localizationService.toLanguageString(headerStatusUploading, messages[headerStatusUploading]);\n } else if (isUploaded || isUploadFailed) {\n statusText = localizationService.toLanguageString(headerStatusUploaded, messages[headerStatusUploaded]);\n }\n return h(\"div\", {\n \"class\": classNames('k-upload-status')\n }, [h(Icon, {\n name: !isUploading && !isUploadFailed && isUploaded ? 'check' : !isUploading && isUploadFailed ? 'exclamation-circle' : isUploading ? 'upload' : '',\n attrs: this.v3 ? undefined : {\n name: !isUploading && !isUploadFailed && isUploaded ? 'check' : !isUploading && isUploadFailed ? 'exclamation-circle' : isUploading ? 'upload' : '',\n icon: !isUploading && !isUploadFailed && isUploaded ? checkIcon : !isUploading && isUploadFailed ? exclamationCircleIcon : isUploading ? uploadIcon : {}\n },\n icon: !isUploading && !isUploadFailed && isUploaded ? checkIcon : !isUploading && isUploadFailed ? exclamationCircleIcon : isUploading ? uploadIcon : {}\n }), statusText]);\n }\n};\n/**\n * @hidden\n */\nvar UploadStatus = UploadStatusVue2;\nexport { UploadStatus, UploadStatusVue2 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nvar ref = allVue.ref;\nvar inject = allVue.inject;\nimport { classNames } from '@progress/kendo-vue-common';\nimport { UploadAddButton } from './UploadAddButton';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { messages, dropFilesHere } from './messages/main';\nimport utils from './utils/utils';\nimport { UploadStatus } from './UploadStatus';\n/**\n * @hidden\n */\nvar TIME_TO_CHECK_DRAG = 100;\n/**\n * @hidden\n */\nvar UploadDropZoneVue2 = {\n name: 'KendoVueUploadDropZone',\n props: {\n addButtonIndex: Number,\n async: Object,\n multiple: {\n type: Boolean,\n default: true\n },\n disabled: {\n type: Boolean,\n default: false\n },\n showFileList: Boolean,\n showActionButtons: Boolean,\n actionsLayout: {\n type: String,\n default: function _default() {\n return 'end';\n }\n },\n tabIndex: Number,\n accept: String,\n groupedFiles: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n navigationIndex: Number,\n notFocusedIndex: Number,\n list: [String, Function, Object],\n id: String,\n ariaLabelledBy: String,\n ariaDescribedBy: String,\n fileGroup: Object\n },\n // @ts-ignore\n emits: {\n 'add': null,\n 'click': null\n },\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n data: function data() {\n return {\n currentDocumentActive: false,\n currentElementActive: false\n };\n },\n created: function created() {\n this.currentElementActive = false;\n },\n mounted: function mounted() {\n this.uploadAddButton = this.v3 ? this.uploadAddButtonRef : this.$refs.uploadAddButton;\n document.addEventListener('dragenter', this.onDocumentDragEnter);\n document.addEventListener('dragover', this.onDocumentDragOver);\n },\n destroyed: !!isV3 ? undefined : function () {\n document.removeEventListener('dragenter', this.onDocumentDragEnter);\n document.removeEventListener('dragover', this.onDocumentDragOver);\n },\n // @ts-ignore\n unmounted: function unmounted() {\n document.removeEventListener('dragenter', this.onDocumentDragEnter);\n document.removeEventListener('dragover', this.onDocumentDragOver);\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n var uploadAddButtonRef = ref(null);\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n uploadAddButtonRef: uploadAddButtonRef,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n computed: {\n dropZoneClasses: function dropZoneClasses() {\n return {\n 'k-dropzone': true,\n 'k-upload-dropzone': true,\n 'k-active': this.currentDocumentActive,\n 'k-hover': this.currentElementActive\n };\n }\n },\n methods: {\n actionElement: function actionElement() {\n if (this.uploadAddButton) {\n return this.uploadAddButton.uploadInput;\n }\n },\n focus: function focus() {\n if (this.uploadAddButton) {\n return this.uploadAddButton.focus();\n }\n },\n onDocumentDragEnter: function onDocumentDragEnter() {\n var _this = this;\n if (!this.currentDocumentActive) {\n this.currentDocumentActive = true;\n var documentInterval = function documentInterval() {\n if (_this.isDragOver(_this._lastDocumentDragOver)) {\n _this.currentDocumentActive = false;\n clearInterval(_this._documentInterval);\n _this._documentInterval = null;\n _this._lastDocumentDragOver = null;\n }\n };\n this._documentInterval = setInterval(documentInterval, TIME_TO_CHECK_DRAG);\n }\n },\n onDocumentDragOver: function onDocumentDragOver() {\n this._lastDocumentDragOver = new Date();\n },\n onElementDragEnter: function onElementDragEnter() {\n var _this = this;\n if (!this.currentElementActive) {\n this.currentElementActive = true;\n var elementInterval = function elementInterval() {\n if (_this.isDragOver(_this._lastElementDragOver)) {\n _this.currentElementActive = false;\n clearInterval(_this._elementInterval);\n _this._elementInterval = null;\n _this._lastElementDragOver = null;\n }\n };\n this._elementInterval = setInterval(elementInterval, TIME_TO_CHECK_DRAG);\n }\n },\n onElementDragOver: function onElementDragOver(event) {\n event.preventDefault();\n this._lastElementDragOver = new Date();\n },\n onDrop: function onDrop(event) {\n event.preventDefault();\n var droppedFiles = event.dataTransfer.files;\n if (droppedFiles.length > 0 && !this.$props.disabled) {\n this.$emit('add', droppedFiles);\n }\n },\n isDragOver: function isDragOver(prevDate) {\n return new Date().getTime() - (prevDate || new Date()).getTime() > TIME_TO_CHECK_DRAG;\n },\n onClick: function onClick(eventIndex) {\n this.$emit('click', eventIndex);\n },\n onAdd: function onAdd(files) {\n this.$emit('add', files);\n }\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n multiple = _a.multiple,\n disabled = _a.disabled,\n tabIndex = _a.tabIndex,\n fileGroup = _a.fileGroup,\n accept = _a.accept,\n navigationIndex = _a.navigationIndex,\n notFocusedIndex = _a.notFocusedIndex,\n id = _a.id,\n ariaLabelledBy = _a.ariaLabelledBy,\n ariaDescribedBy = _a.ariaDescribedBy;\n var localizationService = provideLocalizationService(this);\n var dropFilesMessage = localizationService.toLanguageString(dropFilesHere, messages[dropFilesHere]);\n var _b = utils.getFileStatus(fileGroup),\n isUploading = _b[0],\n isUploaded = _b[1],\n isUploadFailed = _b[2],\n isUploadValidationFailed = _b[3];\n var dropZoneClassName = classNames('k-dropzone-hint', {\n // Unsure about that, since it hides the \"Drop Files Message\" when we remove all uploaded components.\n // 'k-hidden': this.isDragged && !this.elementActive\n });\n var addButtonComponent = function addButtonComponent() {\n var _this = this;\n return (\n // @ts-ignore function children\n h(UploadAddButton, {\n id: id,\n attrs: this.v3 ? undefined : {\n id: id,\n ariaLabelledBy: ariaLabelledBy,\n ariaDescribedBy: ariaDescribedBy,\n accept: accept,\n async: this.async,\n addButtonIndex: this.addButtonIndex,\n navigationIndex: navigationIndex,\n notFocusedIndex: notFocusedIndex,\n tabIndex: tabIndex,\n multiple: multiple,\n disabled: disabled\n },\n ariaLabelledBy: ariaLabelledBy,\n ariaDescribedBy: ariaDescribedBy,\n ref: this.v3 ? function (el) {\n _this.uploadAddButtonRef = el;\n } : 'uploadAddButton',\n accept: accept,\n async: this.async,\n addButtonIndex: this.addButtonIndex,\n navigationIndex: navigationIndex,\n notFocusedIndex: notFocusedIndex,\n tabIndex: tabIndex,\n multiple: multiple,\n disabled: disabled,\n onClick: this.onClick,\n on: this.v3 ? undefined : {\n \"click\": this.onClick,\n \"add\": this.onAdd\n },\n onAdd: this.onAdd\n })\n );\n };\n return h(\"div\", {\n \"class\": this.dropZoneClasses,\n onDrop: this.onDrop,\n on: this.v3 ? undefined : {\n \"drop\": this.onDrop,\n \"dragenter\": this.onElementDragEnter,\n \"dragover\": this.onElementDragOver\n },\n onDragenter: this.onElementDragEnter,\n onDragover: this.onElementDragOver\n }, [addButtonComponent.call(this), isUploading || isUploaded || isUploadFailed || isUploadValidationFailed ?\n // @ts-ignore function children\n h(UploadStatus, {\n isUploading: isUploading,\n attrs: this.v3 ? undefined : {\n isUploading: isUploading,\n isUploaded: isUploaded,\n isUploadFailed: isUploadFailed\n },\n isUploaded: isUploaded,\n isUploadFailed: isUploadFailed\n }) : h(\"div\", {\n \"class\": dropZoneClassName\n }, [dropFilesMessage])]);\n }\n};\n/**\n * @hidden\n */\nvar UploadDropZone = UploadDropZoneVue2;\nexport { UploadDropZone, UploadDropZoneVue2 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nvar ref = allVue.ref;\nimport { classNames, setRef } from '@progress/kendo-vue-common';\nimport { UploadList } from './UploadList';\nimport { UploadActionButtons } from './UploadActionButtons';\nimport { UploadDropZone } from './UploadDropZone';\nvar ADD_BUTTON_NAV_INDEX = -1;\n/**\n * @hidden\n */\nvar UploadUIVue2 = {\n name: 'KendoVueUploadUI',\n props: {\n async: Object,\n className: String,\n multiple: {\n type: Boolean,\n default: true\n },\n disabled: {\n type: Boolean,\n default: false\n },\n showFileList: Boolean,\n showActionButtons: Boolean,\n actionsLayout: {\n type: String,\n default: function _default() {\n return 'end';\n }\n },\n tabIndex: Number,\n accept: String,\n groupedFiles: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n navigationIndex: Number,\n notFocusedIndex: Number,\n list: [String, Function, Object],\n id: String,\n ariaLabelledBy: String,\n ariaDescribedBy: String\n },\n computed: {\n groupsCount: function groupsCount() {\n return Object.keys(this.$props.groupedFiles).length;\n },\n lastGroupIndex: function lastGroupIndex() {\n return this.groupsCount - 1;\n },\n addButtonIndex: function addButtonIndex() {\n return ADD_BUTTON_NAV_INDEX;\n },\n clearButtonIndex: function clearButtonIndex() {\n return this.lastGroupIndex + 1;\n },\n uploadButtonIndex: function uploadButtonIndex() {\n return this.lastGroupIndex + 2;\n },\n isRtl: function isRtl() {\n return this._container && getComputedStyle(this._container).direction === 'rtl' || false;\n }\n },\n methods: {\n actionElement: function actionElement() {\n if (this.uploadDropZone) {\n return this.uploadDropZone.actionElement();\n }\n },\n focus: function focus() {\n if (this.uploadDropZone) {\n return this.uploadDropZone.focus();\n }\n },\n onAdd: function onAdd(files) {\n this.$emit('add', files);\n },\n onRetry: function onRetry(uid) {\n this.$emit('retry', uid);\n },\n onCancel: function onCancel(uid) {\n this.$emit('cancel', uid);\n },\n onClear: function onClear() {\n this.$emit('clear');\n },\n onUpload: function onUpload() {\n this.$emit('upload');\n },\n onRemove: function onRemove(uid) {\n this.$emit('remove', uid);\n },\n onKeyDown: function onKeyDown(event) {\n this.$emit('keydown', event, this.isRtl);\n },\n onFocus: function onFocus(event) {\n this.$emit('focus', event);\n },\n onBlur: function onBlur(event) {\n this.$emit('blur', event);\n },\n onClick: function onClick(navIndex) {\n this.$emit('click', navIndex);\n }\n },\n // @ts-ignore\n emits: {\n 'add': null,\n 'retry': null,\n 'cancel': null,\n 'clear': null,\n 'upload': null,\n 'remove': null,\n 'keydown': null,\n 'click': null,\n 'focus': null,\n 'blur': null\n },\n mounted: function mounted() {\n this._container = this.v3 ? this.containerRef : this.$refs.container;\n this.uploadDropZone = this.v3 ? this.uploadDropZoneRef : this.$refs.uploadDropZone;\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n var containerRef = ref(null);\n var uploadDropZoneRef = ref(null);\n return {\n v3: v3,\n containerRef: containerRef,\n uploadDropZoneRef: uploadDropZoneRef\n };\n },\n render: function render(createElement) {\n var _this = this;\n var h = gh || createElement;\n var _a = this.$props,\n multiple = _a.multiple,\n disabled = _a.disabled,\n tabIndex = _a.tabIndex,\n accept = _a.accept,\n showFileList = _a.showFileList,\n groupedFiles = _a.groupedFiles,\n navigationIndex = _a.navigationIndex,\n showActionButtons = _a.showActionButtons,\n actionsLayout = _a.actionsLayout,\n notFocusedIndex = _a.notFocusedIndex,\n list = _a.list,\n id = _a.id,\n ariaLabelledBy = _a.ariaLabelledBy,\n ariaDescribedBy = _a.ariaDescribedBy,\n async = _a.async;\n var className = classNames('k-upload', 'k-upload-async', this.$props.className, disabled ? 'k-disabled' : '');\n return h(\"div\", {\n ref: setRef(this, 'container'),\n \"class\": className,\n onKeydown: this.onKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.onKeyDown,\n \"focus\": this.onFocus,\n \"blur\": this.onBlur\n },\n onFocus: this.onFocus,\n onBlur: this.onBlur\n }, [\n // @ts-ignore function children\n h(UploadDropZone, {\n id: id,\n attrs: this.v3 ? undefined : {\n id: id,\n ariaLabelledBy: ariaLabelledBy,\n ariaDescribedBy: ariaDescribedBy,\n accept: accept,\n async: async,\n addButtonIndex: this.addButtonIndex,\n navigationIndex: navigationIndex,\n notFocusedIndex: notFocusedIndex,\n tabIndex: tabIndex,\n multiple: multiple,\n fileGroup: groupedFiles,\n disabled: disabled\n },\n ariaLabelledBy: ariaLabelledBy,\n ariaDescribedBy: ariaDescribedBy,\n ref: this.v3 ? function (el) {\n _this.uploadDropZoneRef = el;\n } : 'uploadDropZone',\n accept: accept,\n async: async,\n addButtonIndex: this.addButtonIndex,\n navigationIndex: navigationIndex,\n notFocusedIndex: notFocusedIndex,\n tabIndex: tabIndex,\n multiple: multiple,\n onClick: this.onClick,\n on: this.v3 ? undefined : {\n \"click\": this.onClick,\n \"add\": this.onAdd\n },\n onAdd: this.onAdd,\n fileGroup: groupedFiles,\n disabled: disabled\n }), showFileList ?\n // @ts-ignore function children\n h(UploadList, {\n groupedFiles: groupedFiles,\n attrs: this.v3 ? undefined : {\n groupedFiles: groupedFiles,\n disabled: disabled,\n async: async,\n navigationIndex: navigationIndex,\n list: list\n },\n disabled: disabled,\n async: async,\n navigationIndex: navigationIndex,\n list: list,\n onCancel: this.onCancel,\n on: this.v3 ? undefined : {\n \"cancel\": this.onCancel,\n \"remove\": this.onRemove,\n \"retry\": this.onRetry,\n \"click\": this.onClick\n },\n onRemove: this.onRemove,\n onRetry: this.onRetry,\n onClick: this.onClick\n }) : undefined, showActionButtons ?\n // @ts-ignore function children\n h(UploadActionButtons, {\n disabled: disabled,\n attrs: this.v3 ? undefined : {\n disabled: disabled,\n navigationIndex: navigationIndex,\n clearButtonIndex: this.clearButtonIndex,\n uploadButtonIndex: this.uploadButtonIndex,\n actionsLayout: actionsLayout\n },\n navigationIndex: navigationIndex,\n clearButtonIndex: this.clearButtonIndex,\n uploadButtonIndex: this.uploadButtonIndex,\n actionsLayout: actionsLayout,\n onUpload: this.onUpload,\n on: this.v3 ? undefined : {\n \"upload\": this.onUpload,\n \"clear\": this.onClear,\n \"click\": this.onClick\n },\n onClear: this.onClear,\n onClick: this.onClick\n }) : undefined]);\n }\n};\n/**\n * @hidden\n */\nvar UploadUI = UploadUIVue2;\nexport { UploadUI, UploadUIVue2 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nvar ref = allVue.ref;\nimport { Keys, canUseDOM } from '@progress/kendo-vue-common';\nimport { UploadUI } from './UploadUI';\n/**\n * @hidden\n */\nvar NOT_FOCUSED_INDEX = -2;\n/**\n * @hidden\n */\nvar DEFAULT_INDEX = -1;\n/**\n * @hidden\n */\nvar UploadNavigationVue2 = {\n name: 'KendoVueUploadNavigation',\n props: {\n async: Object,\n className: String,\n multiple: {\n type: Boolean,\n default: true\n },\n disabled: {\n type: Boolean,\n default: false\n },\n showFileList: Boolean,\n showActionButtons: Boolean,\n actionsLayout: {\n type: String,\n default: function _default() {\n return 'end';\n }\n },\n tabIndex: Number,\n accept: String,\n groupedFiles: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n notFocusedIndex: Number,\n list: [String, Function, Object],\n id: String,\n ariaLabelledBy: String,\n ariaDescribedBy: String\n },\n // @ts-ignore\n emits: {\n 'add': null,\n 'cancel': null,\n 'clear': null,\n 'upload': null,\n 'retry': null,\n 'remove': null\n },\n data: function data() {\n return {\n currentNavIndex: NOT_FOCUSED_INDEX\n };\n },\n updated: function updated() {\n // const prevGroupLength = Object.keys(prevProps.groupedFiles).length;\n // const groupLength = Object.keys(this.$props.groupedFiles).length;\n // if (prevGroupLength > groupLength && this.navIndex > DEFAULT_INDEX) {\n // this.navIndex = this.navIndex - (prevGroupLength - groupLength);\n // }\n },\n methods: {\n actionElement: function actionElement() {\n if (this._uploadUI) {\n return this._uploadUI.actionElement();\n }\n },\n navIndex: function navIndex(_navIndex) {\n if (_navIndex === undefined) {\n return this.currentNavIndex;\n }\n var prevNavIndex = this.navIndex;\n this.currentNavIndex = _navIndex;\n if (_navIndex !== prevNavIndex) {\n this.$forceUpdate();\n }\n },\n focus: function focus() {\n if (this._uploadUI) {\n this._uploadUI.focus();\n }\n },\n onKeyDown: function onKeyDown(event, isRtl) {\n var _a;\n var navIndex = this.navIndex();\n var groupKeys = Object.keys(this.$props.groupedFiles);\n var maxFileIndex = groupKeys.length - 1;\n var maxNavIndex = this.$props.autoUpload || groupKeys.length === 0 ? maxFileIndex : maxFileIndex + 1;\n var cancelButtonIndex = maxFileIndex + 1;\n var uploadButtonIndex = cancelButtonIndex + 1;\n var prevIndex = navIndex === NOT_FOCUSED_INDEX ? DEFAULT_INDEX : navIndex;\n var nextIndex = navIndex;\n switch (event.keyCode) {\n case Keys.up:\n event.preventDefault();\n if (navIndex > -1) {\n nextIndex = prevIndex - 1;\n }\n break;\n case Keys.down:\n event.preventDefault();\n if (navIndex < maxNavIndex) {\n nextIndex = prevIndex + 1;\n }\n break;\n case Keys.left:\n event.preventDefault();\n if (isRtl) {\n if (navIndex === cancelButtonIndex) {\n nextIndex = prevIndex + 1;\n }\n } else {\n if (navIndex === uploadButtonIndex) {\n nextIndex = prevIndex - 1;\n }\n }\n break;\n case Keys.right:\n event.preventDefault();\n if (isRtl) {\n if (navIndex === uploadButtonIndex) {\n nextIndex = prevIndex - 1;\n }\n } else {\n if (navIndex === cancelButtonIndex) {\n nextIndex = prevIndex + 1;\n }\n }\n break;\n case Keys.enter:\n if (navIndex === DEFAULT_INDEX || navIndex === NOT_FOCUSED_INDEX) {\n if (this.actionElement()) {\n if (canUseDOM && ((_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.className.indexOf('k-upload-button')) === -1) {\n this.actionElement().$el.click();\n }\n }\n }\n if (navIndex >= 0 && navIndex <= maxFileIndex) {\n this.onRetry(groupKeys[navIndex]);\n }\n break;\n case Keys.space:\n event.preventDefault();\n if (navIndex === DEFAULT_INDEX || navIndex === NOT_FOCUSED_INDEX) {\n if (this.actionElement()) {\n this.actionElement().$el.click();\n }\n }\n break;\n case Keys.tab:\n nextIndex = NOT_FOCUSED_INDEX;\n break;\n case Keys.delete:\n if (navIndex >= 0 && navIndex <= maxFileIndex) {\n nextIndex = prevIndex - 1;\n this.onRemove(groupKeys[navIndex]);\n }\n break;\n case Keys.esc:\n if (navIndex >= 0 && navIndex <= maxFileIndex) {\n nextIndex = prevIndex - 1;\n this.onCancel(groupKeys[navIndex]);\n }\n break;\n default:\n }\n this.navIndex(nextIndex);\n },\n onCancel: function onCancel(uid) {\n this.$emit('cancel', uid);\n },\n onClear: function onClear() {\n this.navIndex(DEFAULT_INDEX);\n this.$emit('clear');\n },\n onUpload: function onUpload() {\n this.navIndex(DEFAULT_INDEX);\n this.$emit('upload');\n },\n onRetry: function onRetry(uid) {\n this.$emit('retry', uid);\n },\n onRemove: function onRemove(uid) {\n this.navIndex(this.navIndex() > DEFAULT_INDEX ? this.navIndex() - 1 : DEFAULT_INDEX);\n this.$emit('remove', uid);\n },\n onAdd: function onAdd(files) {\n this.navIndex(DEFAULT_INDEX);\n this.$emit('add', files);\n },\n onClick: function onClick(navIndex) {\n this.navIndex(navIndex);\n },\n onFocus: function onFocus() {\n if (this._blurTimeout) {\n clearTimeout(this._blurTimeout);\n this._blurTimeout = undefined;\n }\n },\n onBlurTimeout: function onBlurTimeout() {\n this.navIndex(NOT_FOCUSED_INDEX);\n this._blurTimeout = undefined;\n },\n onBlur: function onBlur() {\n clearTimeout(this._blurTimeout);\n this._blurTimeout = window.setTimeout(this.onBlurTimeout);\n }\n },\n mounted: function mounted() {\n this._uploadUI = this.v3 ? this.uploadUIRef : this.$refs.uploadUI;\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n var uploadUIRef = ref(null);\n return {\n v3: v3,\n uploadUIRef: uploadUIRef\n };\n },\n render: function render(createElement) {\n var _this = this;\n var h = gh || createElement;\n var _a = this.$props,\n multiple = _a.multiple,\n disabled = _a.disabled,\n showFileList = _a.showFileList,\n showActionButtons = _a.showActionButtons,\n actionsLayout = _a.actionsLayout,\n tabIndex = _a.tabIndex,\n accept = _a.accept,\n groupedFiles = _a.groupedFiles,\n list = _a.list,\n id = _a.id,\n ariaLabelledBy = _a.ariaLabelledBy,\n ariaDescribedBy = _a.ariaDescribedBy,\n async = _a.async;\n return (\n // @ts-ignore function children\n h(UploadUI, {\n ref: this.v3 ? function (el) {\n _this.uploadUIRef = el;\n } : 'uploadUI',\n \"class\": this.$props.className,\n onKeydown: this.onKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.onKeyDown,\n \"add\": this.onAdd,\n \"clear\": this.onClear,\n \"upload\": this.onUpload,\n \"remove\": this.onRemove,\n \"retry\": this.onRetry,\n \"cancel\": this.onCancel,\n \"click\": this.onClick,\n \"focus\": this.onFocus,\n \"blur\": this.onBlur\n },\n navigationIndex: this.currentNavIndex,\n attrs: this.v3 ? undefined : {\n navigationIndex: this.currentNavIndex,\n notFocusedIndex: NOT_FOCUSED_INDEX,\n multiple: multiple,\n disabled: disabled,\n showFileList: showFileList,\n showActionButtons: showActionButtons,\n actionsLayout: actionsLayout,\n tabIndex: tabIndex,\n accept: accept,\n groupedFiles: groupedFiles,\n list: list,\n id: id,\n ariaLabelledBy: ariaLabelledBy,\n ariaDescribedBy: ariaDescribedBy,\n async: async\n },\n notFocusedIndex: NOT_FOCUSED_INDEX,\n onAdd: this.onAdd,\n onClear: this.onClear,\n onUpload: this.onUpload,\n onRemove: this.onRemove,\n onRetry: this.onRetry,\n onCancel: this.onCancel,\n onClick: this.onClick,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n multiple: multiple,\n disabled: disabled,\n showFileList: showFileList,\n showActionButtons: showActionButtons,\n actionsLayout: actionsLayout,\n tabIndex: tabIndex,\n accept: accept,\n groupedFiles: groupedFiles,\n list: list,\n id: id,\n ariaLabelledBy: ariaLabelledBy,\n ariaDescribedBy: ariaDescribedBy,\n async: async\n })\n );\n }\n};\n/**\n * @hidden\n */\nvar UploadNavigation = UploadNavigationVue2;\nexport { UploadNavigation, UploadNavigationVue2 };","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { UploadFileStatus } from '../interfaces/UploadFileStatus';\nvar copyState = function (state) {\n return (state || []).map(function (file) {\n return __assign({}, file);\n });\n};\nvar add = function (file, filesState) {\n filesState.push(file);\n};\nvar addMany = function (fileList, filesState) {\n fileList.forEach(function (file) { return add(file, filesState); });\n};\nvar groupFilesByUid = function (files) {\n var fileGroup = {};\n files.forEach(function (file) {\n if (fileGroup[file.uid]) {\n fileGroup[file.uid].push(file);\n }\n else {\n fileGroup[file.uid] = [file];\n }\n });\n return fileGroup;\n};\nvar filesForUpload = function (files) {\n var notUploadedGroups = {};\n groupForEach(files, function (currentFiles, uid) {\n var currentFilesValid = true;\n currentFiles.forEach(function (file) {\n if (file.status !== UploadFileStatus.Selected ||\n (file.validationErrors && file.validationErrors.length > 0)) {\n currentFilesValid = false;\n }\n });\n if (currentFilesValid) {\n notUploadedGroups[uid] = currentFiles;\n }\n });\n return notUploadedGroups;\n};\nvar setFilesStatus = function (filesGroup, status) {\n groupForEach(filesGroup, function (currentFiles) {\n currentFiles.forEach(function (file) {\n file.status = status;\n });\n });\n};\nvar flatFileGroup = function (fileGroup) {\n var transformed = [];\n groupForEach(fileGroup, function (currentFiles) {\n transformed.push.apply(transformed, currentFiles);\n });\n return transformed;\n};\nvar groupForEach = function (fileGroup, callBack) {\n Object.keys(fileGroup).forEach(function (uidKey) {\n callBack(fileGroup[uidKey], uidKey);\n });\n};\n/**\n * @hidden\n */\nexport default {\n copyState: copyState,\n addMany: addMany,\n add: add,\n groupFilesByUid: groupFilesByUid,\n filesForUpload: filesForUpload,\n setFilesStatus: setFilesStatus,\n flatFileGroup: flatFileGroup,\n groupForEach: groupForEach\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar populateClientFormData = function (data, clientData) {\n Object.keys(clientData).forEach(function (key) {\n data.append(key, clientData[key]);\n });\n};\nvar populateUploadFormData = function (files, saveField, clientData) {\n var data = new FormData();\n populateClientFormData(data, clientData);\n files.forEach(function (file) {\n var rawFile = file.getRawFile ? file.getRawFile() : '';\n if (rawFile) {\n data.append(saveField, rawFile, file.name);\n }\n else {\n data.append(saveField, rawFile);\n }\n });\n return data;\n};\nvar populateRemoveFormData = function (fileNames, removeField, clientData) {\n var data = new FormData();\n populateClientFormData(data, clientData);\n fileNames.forEach(function (fileName) {\n data.append(removeField, fileName);\n });\n return data;\n};\nvar populateRequestOptions = function (headers, async) {\n return {\n headers: headers,\n responseType: async.responseType,\n withCredentials: async.withCredentials\n };\n};\nvar cloneRequestHeaders = function (headers) {\n var cloned = {};\n Object.keys(headers).forEach(function (key) {\n cloned[key] = headers[key];\n });\n return cloned;\n};\nvar convertAxiosResponse = function (event) {\n var data = event.data, config = event.config, others = __rest(event, [\"data\", \"config\"]);\n return __assign({ response: data }, others);\n};\n/**\n * @hidden\n */\nexport default {\n populateClientFormData: populateClientFormData,\n populateUploadFormData: populateUploadFormData,\n populateRemoveFormData: populateRemoveFormData,\n populateRequestOptions: populateRequestOptions,\n cloneRequestHeaders: cloneRequestHeaders,\n convertAxiosResponse: convertAxiosResponse\n};\n","var INVALIDMAXFILESIZE = 'invalidMaxFileSize';\nvar INVALIDMINFILESIZE = 'invalidMinFileSize';\nvar INVALIDFILEEXTENSION = 'invalidFileExtension';\nvar validateFileExtension = function (file, allowedExtensions) {\n if (allowedExtensions.length > 0) {\n if (allowedExtensions.indexOf((file.extension || '').toLowerCase()) < 0) {\n file.validationErrors = file.validationErrors || [];\n if (file.validationErrors.indexOf(INVALIDFILEEXTENSION) < 0) {\n file.validationErrors.push(INVALIDFILEEXTENSION);\n }\n }\n }\n};\nvar validateFileSize = function (file, minFileSize, maxFileSize) {\n if (minFileSize !== 0 && (file.size || 0) < minFileSize) {\n file.validationErrors = file.validationErrors || [];\n if (file.validationErrors.indexOf(INVALIDMINFILESIZE) < 0) {\n file.validationErrors.push(INVALIDMINFILESIZE);\n }\n }\n if (maxFileSize !== 0 && (file.size || 0) > maxFileSize) {\n file.validationErrors = file.validationErrors || [];\n if (file.validationErrors.indexOf(INVALIDMAXFILESIZE) < 0) {\n file.validationErrors.push(INVALIDMAXFILESIZE);\n }\n }\n};\nvar parseAllowedExtensions = function (extensions) {\n var allowedExtensions = extensions.map(function (ext) {\n var parsedExt = (ext.substring(0, 1) === '.') ? ext : ('.' + ext);\n return parsedExt.toLowerCase();\n });\n return allowedExtensions;\n};\nvar validateFiles = function (files, restrictionInfo, validateFile) {\n var allowedExtensions = parseAllowedExtensions(restrictionInfo.allowedExtensions || []);\n var maxFileSize = restrictionInfo.maxFileSize || 0;\n var minFileSize = restrictionInfo.minFileSize || 0;\n var i;\n for (i = 0; i < files.length; i++) {\n validateFileExtension(files[i], allowedExtensions);\n validateFileSize(files[i], minFileSize, maxFileSize);\n if (validateFile) {\n validateFile(files[i]);\n }\n }\n};\n/**\n * @hidden\n */\nexport default {\n validateFiles: validateFiles\n};\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-vue-upload',\n productName: 'Kendo UI for Vue',\n productCodes: ['KENDOUIVUE', 'KENDOUICOMPLETE'],\n publishDate: 1706640195,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning'\n};\n","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nvar ref = allVue.ref;\nimport { getListeners, getTabIndex, templateRendering, validatePackage } from '@progress/kendo-vue-common';\nimport { UploadFileStatus } from './interfaces/UploadFileStatus';\nimport { UploadNavigation } from './UploadNavigation';\nimport axios from 'axios';\nimport utils from './utils/utils';\nimport stateUtils from './utils/stateUtils';\nimport connectionUtils from './utils/connectionUtils';\nimport validationUtils from './utils/validationUtils';\nimport { packageMetadata } from './package-metadata';\n/**\n * @hidden\n */\nvar UploadVue2 = {\n name: 'KendoVueUpload',\n props: {\n autoUpload: {\n type: Boolean,\n default: true\n },\n batch: {\n type: Boolean,\n default: false\n },\n withCredentials: {\n type: Boolean,\n default: true\n },\n saveField: {\n type: String,\n default: function _default() {\n return 'files';\n }\n },\n saveHeaders: {\n type: [String, Function, Object],\n default: function _default() {\n return {};\n }\n },\n saveMethod: {\n type: String,\n default: function _default() {\n return 'POST';\n }\n },\n saveUrl: {\n type: [String, Function],\n default: function _default() {\n return '';\n }\n },\n responseType: {\n type: String,\n default: function _default() {\n return 'json';\n }\n },\n removeField: {\n type: String,\n default: function _default() {\n return 'fileNames';\n }\n },\n removeHeaders: {\n type: [String, Function, Object],\n default: function _default() {\n return {};\n }\n },\n removeMethod: {\n type: String,\n default: function _default() {\n return 'POST';\n }\n },\n removeUrl: {\n type: [String, Function],\n default: function _default() {\n return '';\n }\n },\n multiple: {\n type: Boolean,\n default: true\n },\n disabled: {\n type: Boolean,\n default: false\n },\n showFileList: {\n type: Boolean,\n default: true\n },\n showActionButtons: {\n type: Boolean,\n default: true\n },\n actionsLayout: {\n type: String,\n default: function _default() {\n return 'end';\n }\n },\n tabIndex: Number,\n accept: String,\n list: [String, Function, Object],\n restrictions: {\n type: Object,\n default: function _default() {\n return {\n allowedExtensions: [],\n maxFileSize: 0,\n minFileSize: 0\n };\n }\n },\n validateFile: Function,\n files: Array,\n defaultFiles: Array\n },\n // @ts-ignore\n emits: {\n 'add': null,\n 'beforeremove': null,\n 'beforeupload': null,\n 'cancel': null,\n 'statuschange': null,\n 'progress': null,\n 'remove': null\n },\n created: function created() {\n this._httpSubscriptions = {};\n validatePackage(packageMetadata);\n if (this.$props.defaultFiles) {\n this.currentFiles = this.$props.defaultFiles;\n }\n },\n data: function data() {\n return {\n currentFiles: []\n };\n },\n computed: {\n computedAsync: function computedAsync() {\n var _a = this.$props,\n autoUpload = _a.autoUpload,\n batch = _a.batch,\n removeField = _a.removeField,\n removeHeaders = _a.removeHeaders,\n removeMethod = _a.removeMethod,\n removeUrl = _a.removeUrl,\n responseType = _a.responseType,\n saveField = _a.saveField,\n saveHeaders = _a.saveHeaders,\n saveMethod = _a.saveMethod,\n saveUrl = _a.saveUrl,\n withCredentials = _a.withCredentials;\n return {\n autoUpload: autoUpload,\n batch: batch,\n removeField: removeField,\n removeHeaders: removeHeaders,\n removeMethod: removeMethod,\n removeUrl: removeUrl,\n responseType: responseType,\n saveField: saveField,\n saveHeaders: saveHeaders,\n saveMethod: saveMethod,\n saveUrl: saveUrl,\n withCredentials: withCredentials\n };\n },\n computedFiles: function computedFiles() {\n var files = this.isControlled ? this.$props.files : this.currentFiles;\n return files || [];\n },\n isControlled: function isControlled() {\n return !this.$props.defaultFiles;\n },\n isCustomSave: function isCustomSave() {\n return this.$props.saveUrl && typeof this.$props.saveUrl === 'function';\n },\n isCustomRemove: function isCustomRemove() {\n return this.$props.removeUrl && typeof this.$props.removeUrl === 'function';\n },\n fileStateCopy: function fileStateCopy() {\n return stateUtils.copyState(this.computedFiles);\n },\n actionElement: function actionElement() {\n if (this._uploadNavigation) {\n return this._uploadNavigation.actionElement;\n }\n }\n },\n mounted: function mounted() {\n this._uploadNavigation = this.v3 ? this.uploadNavigationRef : this.$refs.uploadNavigation;\n },\n methods: {\n focus: function focus() {\n if (this._uploadNavigation) {\n this._uploadNavigation.focus();\n }\n },\n uploadFiles: function uploadFiles(filesForUpload) {\n var _this = this;\n var async = this.computedAsync;\n stateUtils.setFilesStatus(filesForUpload, UploadFileStatus.Uploading);\n stateUtils.groupForEach(filesForUpload, function (currentFiles, uid) {\n var headers = connectionUtils.cloneRequestHeaders(async.saveHeaders || {});\n var additionalData = {};\n var eventData = {\n target: _this,\n files: currentFiles,\n headers: headers,\n additionalData: additionalData\n };\n _this.$emit('beforeupload', eventData);\n var requestOptions = connectionUtils.populateRequestOptions(eventData.headers, _this.computedAsync);\n var formData = connectionUtils.populateUploadFormData(currentFiles, async.saveField, eventData.additionalData);\n if (_this.isCustomSave) {\n _this.$props.saveUrl(currentFiles, {\n formData: formData,\n requestOptions: requestOptions\n }, _this.onUploadProgress).then(function (event) {\n return _this.onUploadSuccess(event.uid);\n }).catch(function (event) {\n return _this.onUploadError(event.uid);\n });\n } else {\n var cancelTokenSource = axios.CancelToken.source();\n _this._httpSubscriptions[uid] = cancelTokenSource;\n axios(__assign(__assign({\n method: async.saveMethod,\n url: async.saveUrl,\n data: formData,\n cancelToken: cancelTokenSource.token\n }, requestOptions), {\n onUploadProgress: function onUploadProgress(event) {\n return _this.onUploadProgress(uid, event);\n }\n })).then(function (event) {\n return _this.onUploadSuccess(uid, event);\n }).catch(function (event) {\n return _this.onUploadError(uid, event);\n });\n }\n });\n },\n removeFiles: function removeFiles(filesForRemove) {\n var _this = this;\n var async = this.computedAsync;\n stateUtils.groupForEach(filesForRemove, function (currentFiles, uid) {\n var headers = connectionUtils.cloneRequestHeaders(async.removeHeaders || {});\n var additionalData = {};\n var eventData = {\n target: _this,\n files: currentFiles,\n headers: headers,\n additionalData: additionalData\n };\n _this.$emit('beforeremove', eventData);\n var fileNames = currentFiles.map(function (file) {\n return file.name;\n });\n var requestOptions = connectionUtils.populateRequestOptions(eventData.headers, _this.computedAsync);\n var formData = connectionUtils.populateRemoveFormData(fileNames, async.removeField, eventData.additionalData);\n if (_this.isCustomRemove) {\n _this.$props.removeUrl(currentFiles, {\n formData: formData,\n requestOptions: requestOptions\n }).then(function (event) {\n return _this.onRemoveSuccess(event.uid);\n }).catch(function (event) {\n return _this.onRemoveError(event.uid);\n });\n } else {\n axios(__assign({\n method: async.removeMethod,\n url: async.removeUrl,\n data: formData\n }, requestOptions)).then(function (event) {\n return _this.onRemoveSuccess(uid, event);\n }).catch(function (event) {\n return _this.onRemoveError(uid, event);\n });\n }\n });\n },\n onUpload: function onUpload() {\n var _this = this;\n var newState = this.fileStateCopy;\n var groupedFiles = stateUtils.groupFilesByUid(newState);\n var filesForUpload = stateUtils.filesForUpload(groupedFiles);\n this.uploadFiles(filesForUpload);\n var onStatusChangeEvent = function onStatusChangeEvent() {\n var eventData = {\n target: _this,\n newState: newState,\n affectedFiles: stateUtils.flatFileGroup(filesForUpload)\n };\n _this.$emit('statuschange', eventData);\n };\n if (this.isControlled) {\n onStatusChangeEvent();\n } else {\n this.currentFiles = newState;\n onStatusChangeEvent();\n }\n },\n onAdd: function onAdd(files) {\n var _this = this;\n // The problem when removing rawFile is that there is no reliable way of preserving it internally.\n // For example, uid + filename - the filename can be changed at any moment.\n var selectedFiles = utils.getAllFileInfo(files);\n var newState;\n selectedFiles = utils.assignGuidToFiles(selectedFiles, this.computedAsync.batch);\n validationUtils.validateFiles(selectedFiles, this.$props.restrictions, this.validateFile);\n if (!this.$props.multiple) {\n newState = [];\n } else {\n newState = this.fileStateCopy;\n }\n stateUtils.addMany(selectedFiles, newState);\n if (this.computedAsync.autoUpload) {\n var groupedFiles = stateUtils.groupFilesByUid(newState);\n this.uploadFiles(stateUtils.filesForUpload(groupedFiles));\n }\n var onAddEvent = function onAddEvent() {\n var eventData = {\n target: _this,\n newState: newState,\n affectedFiles: selectedFiles\n };\n _this.$emit('add', eventData);\n };\n if (this.isControlled) {\n onAddEvent();\n } else {\n this.currentFiles = newState;\n onAddEvent();\n }\n },\n onUploadProgress: function onUploadProgress(uid, event) {\n var _this = this;\n var percentComplete = event.total ? Math.round(100 * event.loaded / event.total) : 0;\n var newState = this.fileStateCopy;\n var filesWithProgress = newState.filter(function (file) {\n return file.uid === uid;\n });\n if (!filesWithProgress.length) {\n return;\n }\n filesWithProgress.forEach(function (file) {\n file.progress = percentComplete;\n });\n var onProgressEvent = function onProgressEvent() {\n var eventData = {\n target: _this,\n newState: newState,\n affectedFiles: filesWithProgress\n };\n _this.$emit('progress', eventData);\n };\n if (this.isControlled) {\n onProgressEvent();\n } else {\n this.currentFiles = newState;\n onProgressEvent();\n }\n },\n onUploadSuccess: function onUploadSuccess(uid, event) {\n var _this = this;\n var newState = this.fileStateCopy;\n var successFiles = newState.filter(function (file) {\n return file.uid === uid;\n });\n successFiles.forEach(function (file) {\n file.status = UploadFileStatus.Uploaded;\n });\n delete this._httpSubscriptions[uid];\n var onStatusChangeEvent = function onStatusChangeEvent() {\n var eventData = {\n target: _this,\n newState: newState,\n affectedFiles: successFiles,\n response: event ? connectionUtils.convertAxiosResponse(event) : undefined\n };\n _this.$emit('statuschange', eventData);\n };\n if (this.isControlled) {\n onStatusChangeEvent();\n } else {\n this.currentFiles = newState;\n onStatusChangeEvent();\n }\n },\n onUploadError: function onUploadError(uid, event) {\n var _this = this;\n var newState = this.fileStateCopy;\n var failedFiles = newState.filter(function (file) {\n return file.uid === uid;\n });\n failedFiles.forEach(function (file) {\n file.status = UploadFileStatus.UploadFailed;\n });\n delete this._httpSubscriptions[uid];\n if (!failedFiles.length) {\n return;\n }\n var onStatusChangeEvent = function onStatusChangeEvent() {\n var eventData = {\n target: _this,\n newState: newState,\n affectedFiles: failedFiles,\n response: event ? connectionUtils.convertAxiosResponse(event) : undefined\n };\n _this.$emit('statuschange', eventData);\n };\n if (this.isControlled) {\n onStatusChangeEvent();\n } else {\n this.currentFiles = newState;\n onStatusChangeEvent();\n }\n },\n onRemove: function onRemove(uid) {\n var _a;\n var _this = this;\n var newState = this.fileStateCopy;\n var filesForRemove = newState.filter(function (file) {\n return file.uid === uid;\n });\n var filesToKeep = newState.filter(function (file) {\n return file.uid !== uid;\n });\n var remoteRemoveStatuses = [UploadFileStatus.Uploaded, UploadFileStatus.Initial, UploadFileStatus.RemoveFailed];\n if (filesForRemove[0] && remoteRemoveStatuses.indexOf(filesForRemove[0].status) > -1) {\n var fileGroup = (_a = {}, _a[uid] = filesForRemove, _a);\n stateUtils.setFilesStatus(fileGroup, UploadFileStatus.Removing);\n this.removeFiles(fileGroup);\n var onStatusChangeEvent = function onStatusChangeEvent() {\n var eventData = {\n target: _this,\n newState: newState,\n affectedFiles: filesForRemove\n };\n _this.$emit('statuschange', eventData);\n };\n if (this.isControlled) {\n onStatusChangeEvent();\n } else {\n this.currentFiles = newState;\n onStatusChangeEvent();\n }\n } else {\n var onRemoveEvent = function onRemoveEvent() {\n var eventData = {\n target: _this,\n newState: filesToKeep,\n affectedFiles: filesForRemove\n };\n _this.$emit('remove', eventData);\n };\n if (this.isControlled) {\n onRemoveEvent();\n } else {\n this.currentFiles = filesToKeep;\n onRemoveEvent();\n }\n }\n },\n onRemoveSuccess: function onRemoveSuccess(uid, event) {\n var _this = this;\n var newState = this.fileStateCopy;\n var filesForRemove = newState.filter(function (file) {\n return file.uid === uid;\n });\n var filesToKeep = newState.filter(function (file) {\n return file.uid !== uid;\n });\n var onRemoveEvent = function onRemoveEvent() {\n var eventData = {\n target: _this,\n newState: filesToKeep,\n affectedFiles: filesForRemove,\n response: event ? connectionUtils.convertAxiosResponse(event) : undefined\n };\n _this.$emit('remove', eventData);\n };\n if (this.isControlled) {\n onRemoveEvent();\n } else {\n this.currentFiles = filesToKeep;\n onRemoveEvent();\n }\n },\n onRemoveError: function onRemoveError(uid, event) {\n var _this = this;\n var newState = this.fileStateCopy;\n var failedFiles = newState.filter(function (file) {\n return file.uid === uid;\n });\n failedFiles.forEach(function (file) {\n file.status = UploadFileStatus.RemoveFailed;\n });\n var onStatusChangeEvent = function onStatusChangeEvent() {\n var eventData = {\n target: _this,\n newState: newState,\n affectedFiles: failedFiles,\n response: event ? connectionUtils.convertAxiosResponse(event) : undefined\n };\n _this.$emit('statuschange', eventData);\n };\n if (this.isControlled) {\n onStatusChangeEvent();\n } else {\n this.currentFiles = newState;\n onStatusChangeEvent();\n }\n },\n onRetry: function onRetry(uid) {\n var _this = this;\n var newState = this.fileStateCopy;\n var filesForRetry = stateUtils.groupFilesByUid(newState.filter(function (file) {\n return file.uid === uid;\n }));\n stateUtils.setFilesStatus(filesForRetry, UploadFileStatus.Uploading);\n this.uploadFiles(filesForRetry);\n var onStatusChangeEvent = function onStatusChangeEvent() {\n var eventData = {\n target: _this,\n newState: newState,\n affectedFiles: stateUtils.flatFileGroup(filesForRetry)\n };\n _this.$emit('statuschange', eventData);\n };\n if (this.isControlled) {\n onStatusChangeEvent();\n } else {\n this.currentFiles = newState;\n onStatusChangeEvent();\n }\n },\n onCancel: function onCancel(uid) {\n var _this = this;\n var newState = this.fileStateCopy;\n var filesToKeep = newState.filter(function (file) {\n return file.uid !== uid;\n });\n var filesForRemove = newState.filter(function (file) {\n return file.uid === uid;\n });\n if (this._httpSubscriptions[uid]) {\n this._httpSubscriptions[uid].cancel();\n delete this._httpSubscriptions[uid];\n }\n var eventData = {\n target: this,\n uid: uid\n };\n this.$emit('cancel', eventData);\n var onRemoveEvent = function onRemoveEvent() {\n var remEventData = {\n target: _this,\n newState: filesToKeep,\n affectedFiles: filesForRemove\n };\n _this.$emit('remove', remEventData);\n };\n if (this.isControlled) {\n onRemoveEvent();\n } else {\n this.currentFiles = newState;\n onRemoveEvent();\n }\n },\n onClear: function onClear() {\n var _this = this;\n if (!this.computedFiles.length) {\n return;\n }\n Object.keys(this._httpSubscriptions).forEach(function (key) {\n _this._httpSubscriptions[key].cancel();\n });\n this._httpSubscriptions = {};\n var onRemoveEvent = function onRemoveEvent() {\n var eventData = {\n target: _this,\n newState: [],\n affectedFiles: _this.fileStateCopy\n };\n _this.$emit('remove', eventData);\n };\n if (this.isControlled) {\n onRemoveEvent();\n } else {\n this.currentFiles = [];\n onRemoveEvent();\n }\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n return {\n v3: v3\n };\n },\n render: function render(createElement) {\n var _this = this;\n var h = gh || createElement;\n var _a = this.$props,\n showFileList = _a.showFileList,\n autoUpload = _a.autoUpload,\n showActionButtons = _a.showActionButtons,\n actionsLayout = _a.actionsLayout,\n tabIndex = _a.tabIndex,\n disabled = _a.disabled,\n batch = _a.batch,\n withCredentials = _a.withCredentials,\n saveField = _a.saveField,\n saveHeaders = _a.saveHeaders,\n saveMethod = _a.saveMethod,\n saveUrl = _a.saveUrl,\n responseType = _a.responseType,\n removeField = _a.removeField,\n removeHeaders = _a.removeHeaders,\n removeMethod = _a.removeMethod,\n removeUrl = _a.removeUrl,\n multiple = _a.multiple,\n accept = _a.accept,\n restrictions = _a.restrictions,\n files = _a.files,\n defaultFiles = _a.defaultFiles;\n var list = templateRendering.call(this, this.$props.list, getListeners.call(this));\n var groupedFiles = stateUtils.groupFilesByUid(this.computedFiles);\n var filesForUpload = stateUtils.filesForUpload(groupedFiles);\n return (\n // @ts-ignore function children\n h(UploadNavigation, {\n groupedFiles: groupedFiles,\n attrs: this.v3 ? undefined : {\n groupedFiles: groupedFiles,\n className: this.$props.className,\n showFileList: showFileList && !!Object.keys(groupedFiles).length,\n showActionButtons: showActionButtons && !autoUpload && !!Object.keys(filesForUpload).length,\n actionsLayout: actionsLayout,\n disabled: disabled,\n tabIndex: getTabIndex(tabIndex, disabled),\n multiple: multiple,\n accept: accept,\n list: list,\n restrictions: restrictions,\n files: files,\n defaultFiles: defaultFiles,\n async: this.computedAsync\n },\n className: this.$props.className,\n showFileList: showFileList && !!Object.keys(groupedFiles).length,\n showActionButtons: showActionButtons && !autoUpload && !!Object.keys(filesForUpload).length,\n actionsLayout: actionsLayout,\n disabled: disabled,\n onAdd: this.onAdd,\n on: this.v3 ? undefined : {\n \"add\": this.onAdd,\n \"remove\": this.onRemove,\n \"clear\": this.onClear,\n \"upload\": this.onUpload,\n \"retry\": this.onRetry,\n \"cancel\": this.onCancel\n },\n onRemove: this.onRemove,\n onClear: this.onClear,\n onUpload: this.onUpload,\n onRetry: this.onRetry,\n onCancel: this.onCancel,\n tabIndex: getTabIndex(tabIndex, disabled),\n ref: this.v3 ? function (el) {\n _this.uploadNavigationRef = el;\n } : 'uploadNavigation',\n multiple: multiple,\n accept: accept,\n list: list,\n restrictions: restrictions,\n files: files,\n defaultFiles: defaultFiles,\n async: this.computedAsync\n })\n );\n }\n};\n/**\n * @hidden\n */\nvar Upload = UploadVue2;\nexport { Upload, UploadVue2 };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar isV3 = allVue.version && allVue.version[0] === '3';\nvar ref = allVue.ref;\nvar inject = allVue.inject;\nimport { classNames, getListeners, getTabIndex, getTemplate, Icon, setRef, templateRendering, validatePackage } from '@progress/kendo-vue-common';\nimport { dropZoneHint, dropZoneNote, messages } from './messages/main';\nimport { uploadIcon } from '@progress/kendo-svg-icons';\nimport { packageMetadata } from './package-metadata';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\n/**\n * @hidden\n */\nvar TIME_TO_CHECK_DRAG = 100;\n/**\n * @hidden\n */\nvar ExternalDropZoneVue2 = {\n name: 'KendoVueExternalDropZone',\n props: {\n id: String,\n tabIndex: Number,\n innerStyle: Object,\n uploadRef: [String, Function, Object],\n disabled: Boolean,\n customHint: [String, Function, Object],\n customNote: [String, Function, Object]\n },\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n created: function created() {\n validatePackage(packageMetadata);\n this.elementInterval = null;\n this.elementActive = false;\n this.lastElementDragOverRef = null;\n },\n data: function data() {\n return {\n overDropZone: false\n };\n },\n mounted: function mounted() {\n this.externalDropZone = this.v3 ? this.externalDropZoneRef : this.$refs.externalDropZone;\n },\n methods: {\n focus: function focus() {\n if (this.externalDropZone && this.externalDropZone.focus) {\n this.externalDropZone.focus();\n }\n },\n isDragOver: function isDragOver(prevDate) {\n return new Date().getTime() - (prevDate || new Date()).getTime() > TIME_TO_CHECK_DRAG;\n },\n handleOnDrop: function handleOnDrop(event) {\n event.preventDefault();\n var droppedFiles = event.dataTransfer.files;\n var refToUpload = this.$parent.$refs[this.$props.uploadRef];\n if (droppedFiles.length > 0 && !this.$props.disabled && refToUpload) {\n if (refToUpload.onAdd) {\n event.preventDefault();\n refToUpload.onAdd(droppedFiles);\n }\n }\n },\n handleOnElementDragEnter: function handleOnElementDragEnter() {\n var _this = this;\n this.elementActive = true;\n var locElementInterval = function locElementInterval() {\n if (_this.isDragOver(_this.lastElementDragOver)) {\n _this.overDropZone = false;\n _this.elementActive = false;\n clearInterval(_this.elementInterval);\n _this.elementInterval = null;\n _this.lastElementDragOver = null;\n }\n };\n this.elementInterval = setInterval(locElementInterval, TIME_TO_CHECK_DRAG);\n },\n handleOnElementDragOver: function handleOnElementDragOver(event) {\n event.preventDefault();\n this.lastElementDragOver = new Date();\n this.overDropZone = true;\n }\n },\n // @ts-ignore\n setup: !isV3 ? undefined : function () {\n var v3 = !!isV3;\n var externalDropZoneRef = ref(null);\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n externalDropZoneRef: externalDropZoneRef,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n customNote = _a.customNote,\n customHint = _a.customHint;\n var localizationService = provideLocalizationService(this);\n var localizedHint = localizationService.toLanguageString(dropZoneHint, messages[dropZoneHint]);\n var localizedNote = localizationService.toLanguageString(dropZoneNote, messages[dropZoneNote]);\n var hintTemplate = templateRendering.call(this, customHint, getListeners.call(this));\n var noteTemplate = templateRendering.call(this, customNote, getListeners.call(this));\n var hintElement;\n var hintElementDefaultRendering = h(\"span\", [localizedHint]);\n hintElement = getTemplate.call(this, {\n h: h,\n template: hintTemplate,\n defaultRendering: hintElementDefaultRendering\n });\n var noteElement;\n var noteElementDefaultRendering = h(\"span\", [localizedNote]);\n noteElement = getTemplate.call(this, {\n h: h,\n template: noteTemplate,\n defaultRendering: noteElementDefaultRendering\n });\n return h(\"div\", {\n ref: setRef(this, 'externalDropZone'),\n id: this.$props.id,\n attrs: this.v3 ? undefined : {\n id: this.$props.id,\n tabindex: getTabIndex(this.$props.tabIndex, this.$props.disabled, undefined)\n },\n \"class\": classNames('k-external-dropzone', {\n 'k-external-dropzone-hover': this.overDropZone,\n 'k-disabled': this.$props.disabled\n }, this.$props.className),\n tabindex: getTabIndex(this.$props.tabIndex, this.$props.disabled, undefined),\n onDrop: this.handleOnDrop,\n on: this.v3 ? undefined : {\n \"drop\": this.handleOnDrop,\n \"dragenter\": this.handleOnElementDragEnter,\n \"dragover\": this.handleOnElementDragOver\n },\n onDragenter: this.handleOnElementDragEnter,\n onDragover: this.handleOnElementDragOver\n }, [h(\"div\", {\n style: this.$props.innerStyle,\n \"class\": 'k-dropzone-inner'\n }, [h(Icon, {\n name: 'upload',\n attrs: this.v3 ? undefined : {\n name: 'upload',\n icon: uploadIcon,\n size: 'xxxlarge'\n },\n icon: uploadIcon,\n \"class\": 'k-dropzone-icon',\n size: 'xxxlarge'\n }), h(\"span\", {\n \"class\": 'k-dropzone-hint'\n }, [hintElement]), h(\"span\", {\n \"class\": 'k-dropzone-note'\n }, [noteElement])]), h(\"div\", {\n \"class\": 'k-upload'\n })]);\n }\n};\n/**\n * @hidden\n */\nvar ExternalDropZone = ExternalDropZoneVue2;\nexport { ExternalDropZone, ExternalDropZoneVue2 };","var proxy = function (a, b) { return function (e) { return b(a(e)); }; };\n\nvar bind = function (el, event, callback) { return el.addEventListener && el.addEventListener(event, callback); };\n\nvar unbind = function (el, event, callback) { return el && el.removeEventListener && el.removeEventListener(event, callback); };\n\nvar noop = function () { /* empty */ };\n\nvar preventDefault = function (e) { return e.preventDefault(); };\n\nvar touchRegExp = /touch/;\n\n// 300ms is the usual mouse interval;\n// // However, an underpowered mobile device under a heavy load may queue mouse events for a longer period.\nvar IGNORE_MOUSE_TIMEOUT = 2000;\n\nfunction normalizeEvent(e) {\n if (e.type.match(touchRegExp)) {\n return {\n pageX: e.changedTouches[0].pageX,\n pageY: e.changedTouches[0].pageY,\n clientX: e.changedTouches[0].clientX,\n clientY: e.changedTouches[0].clientY,\n type: e.type,\n originalEvent: e,\n isTouch: true\n };\n }\n\n return {\n pageX: e.pageX,\n pageY: e.pageY,\n clientX: e.clientX,\n clientY: e.clientY,\n offsetX: e.offsetX,\n offsetY: e.offsetY,\n type: e.type,\n ctrlKey: e.ctrlKey,\n shiftKey: e.shiftKey,\n altKey: e.altKey,\n originalEvent: e\n };\n}\n\nexport var Draggable = function Draggable(ref) {\n var this$1 = this;\n var press = ref.press; if ( press === void 0 ) press = noop;\n var drag = ref.drag; if ( drag === void 0 ) drag = noop;\n var release = ref.release; if ( release === void 0 ) release = noop;\n var mouseOnly = ref.mouseOnly; if ( mouseOnly === void 0 ) mouseOnly = false;\n\n this._pressHandler = proxy(normalizeEvent, press);\n this._dragHandler = proxy(normalizeEvent, drag);\n this._releaseHandler = proxy(normalizeEvent, release);\n this._ignoreMouse = false;\n this._mouseOnly = mouseOnly;\n\n this._touchstart = function (e) {\n if (e.touches.length === 1) {\n this$1._pressHandler(e);\n }\n };\n\n this._touchmove = function (e) {\n if (e.touches.length === 1) {\n this$1._dragHandler(e);\n }\n };\n\n this._touchend = function (e) {\n // the last finger has been lifted, and the user is not doing gesture.\n // there might be a better way to handle this.\n if (e.touches.length === 0 && e.changedTouches.length === 1) {\n this$1._releaseHandler(e);\n this$1._ignoreMouse = true;\n setTimeout(this$1._restoreMouse, IGNORE_MOUSE_TIMEOUT);\n }\n };\n\n this._restoreMouse = function () {\n this$1._ignoreMouse = false;\n };\n\n this._mousedown = function (e) {\n var which = e.which;\n\n if ((which && which > 1) || this$1._ignoreMouse) {\n return;\n }\n\n bind(document, \"mousemove\", this$1._mousemove);\n bind(document, \"mouseup\", this$1._mouseup);\n this$1._pressHandler(e);\n };\n\n this._mousemove = function (e) {\n this$1._dragHandler(e);\n };\n\n this._mouseup = function (e) {\n unbind(document, \"mousemove\", this$1._mousemove);\n unbind(document, \"mouseup\", this$1._mouseup);\n this$1._releaseHandler(e);\n };\n\n this._pointerdown = function (e) {\n if (e.isPrimary && e.button === 0) {\n bind(document, \"pointermove\", this$1._pointermove);\n bind(document, \"pointerup\", this$1._pointerup);\n bind(document, \"pointercancel\", this$1._pointerup);\n bind(document, \"contextmenu\", preventDefault);\n\n this$1._pressHandler(e);\n }\n };\n\n this._pointermove = function (e) {\n if (e.isPrimary) {\n this$1._dragHandler(e);\n }\n };\n\n this._pointerup = function (e) {\n if (e.isPrimary) {\n unbind(document, \"pointermove\", this$1._pointermove);\n unbind(document, \"pointerup\", this$1._pointerup);\n unbind(document, \"pointercancel\", this$1._pointerup);\n unbind(document, \"contextmenu\", preventDefault);\n\n this$1._releaseHandler(e);\n }\n };\n};\n\nDraggable.supportPointerEvent = function supportPointerEvent () {\n return (typeof window !== 'undefined') && window.PointerEvent;\n};\n\nDraggable.prototype.bindTo = function bindTo (element) {\n if (element === this._element) {\n return;\n }\n\n if (this._element) {\n this._unbindFromCurrent();\n }\n\n this._element = element;\n this._bindToCurrent();\n};\n\nDraggable.prototype._bindToCurrent = function _bindToCurrent () {\n var element = this._element;\n\n if (this._usePointers()) {\n bind(element, \"pointerdown\", this._pointerdown);\n return;\n }\n\n bind(element, \"mousedown\", this._mousedown);\n\n if (!this._mouseOnly) {\n bind(element, \"touchstart\", this._touchstart);\n bind(element, \"touchmove\", this._touchmove);\n bind(element, \"touchend\", this._touchend);\n }\n};\n\nDraggable.prototype._unbindFromCurrent = function _unbindFromCurrent () {\n var element = this._element;\n\n if (this._usePointers()) {\n unbind(element, \"pointerdown\", this._pointerdown);\n unbind(document, \"pointermove\", this._pointermove);\n unbind(document, \"pointerup\", this._pointerup);\n unbind(document, \"contextmenu\", preventDefault);\n unbind(document, \"pointercancel\", this._pointerup);\n return;\n }\n\n unbind(element, \"mousedown\", this._mousedown);\n\n if (!this._mouseOnly) {\n unbind(element, \"touchstart\", this._touchstart);\n unbind(element, \"touchmove\", this._touchmove);\n unbind(element, \"touchend\", this._touchend);\n }\n};\n\nDraggable.prototype._usePointers = function _usePointers () {\n return !this._mouseOnly && Draggable.supportPointerEvent();\n};\n\nDraggable.prototype.update = function update (ref) {\n var press = ref.press; if ( press === void 0 ) press = noop;\n var drag = ref.drag; if ( drag === void 0 ) drag = noop;\n var release = ref.release; if ( release === void 0 ) release = noop;\n var mouseOnly = ref.mouseOnly; if ( mouseOnly === void 0 ) mouseOnly = false;\n\n this._pressHandler = proxy(normalizeEvent, press);\n this._dragHandler = proxy(normalizeEvent, drag);\n this._releaseHandler = proxy(normalizeEvent, release);\n this._mouseOnly = mouseOnly;\n};\n\nDraggable.prototype.destroy = function destroy () {\n this._unbindFromCurrent();\n this._element = null;\n};\n\n// Re-export as \"default\" field to address a bug\n// where the ES Module is imported by CommonJS code.\n//\n// See https://github.com/telerik/kendo-angular/issues/1314\nDraggable.default = Draggable;\n\n// Rollup won't output exports['default'] otherwise\nexport default Draggable;\n\n","/**\n* @vue/reactivity v3.5.12\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { hasChanged, extend, isArray, isIntegerKey, isSymbol, isMap, hasOwn, isObject, makeMap, toRawType, capitalize, def, isFunction, EMPTY_OBJ, isSet, isPlainObject, NOOP, remove } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this._isPaused = false;\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n pause() {\n if (this._active) {\n this._isPaused = true;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].pause();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].pause();\n }\n }\n }\n /**\n * Resumes the effect scope, including all child scopes and effects.\n */\n resume() {\n if (this._active) {\n if (this._isPaused) {\n this._isPaused = false;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].resume();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].resume();\n }\n }\n }\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this._active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n this._active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn, failSilently = false) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeSub;\nconst EffectFlags = {\n \"ACTIVE\": 1,\n \"1\": \"ACTIVE\",\n \"RUNNING\": 2,\n \"2\": \"RUNNING\",\n \"TRACKING\": 4,\n \"4\": \"TRACKING\",\n \"NOTIFIED\": 8,\n \"8\": \"NOTIFIED\",\n \"DIRTY\": 16,\n \"16\": \"DIRTY\",\n \"ALLOW_RECURSE\": 32,\n \"32\": \"ALLOW_RECURSE\",\n \"PAUSED\": 64,\n \"64\": \"PAUSED\"\n};\nconst pausedQueueEffects = /* @__PURE__ */ new WeakSet();\nclass ReactiveEffect {\n constructor(fn) {\n this.fn = fn;\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 1 | 4;\n /**\n * @internal\n */\n this.next = void 0;\n /**\n * @internal\n */\n this.cleanup = void 0;\n this.scheduler = void 0;\n if (activeEffectScope && activeEffectScope.active) {\n activeEffectScope.effects.push(this);\n }\n }\n pause() {\n this.flags |= 64;\n }\n resume() {\n if (this.flags & 64) {\n this.flags &= ~64;\n if (pausedQueueEffects.has(this)) {\n pausedQueueEffects.delete(this);\n this.trigger();\n }\n }\n }\n /**\n * @internal\n */\n notify() {\n if (this.flags & 2 && !(this.flags & 32)) {\n return;\n }\n if (!(this.flags & 8)) {\n batch(this);\n }\n }\n run() {\n if (!(this.flags & 1)) {\n return this.fn();\n }\n this.flags |= 2;\n cleanupEffect(this);\n prepareDeps(this);\n const prevEffect = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = this;\n shouldTrack = true;\n try {\n return this.fn();\n } finally {\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub !== this) {\n warn(\n \"Active effect was not restored correctly - this is likely a Vue internal bug.\"\n );\n }\n cleanupDeps(this);\n activeSub = prevEffect;\n shouldTrack = prevShouldTrack;\n this.flags &= ~2;\n }\n }\n stop() {\n if (this.flags & 1) {\n for (let link = this.deps; link; link = link.nextDep) {\n removeSub(link);\n }\n this.deps = this.depsTail = void 0;\n cleanupEffect(this);\n this.onStop && this.onStop();\n this.flags &= ~1;\n }\n }\n trigger() {\n if (this.flags & 64) {\n pausedQueueEffects.add(this);\n } else if (this.scheduler) {\n this.scheduler();\n } else {\n this.runIfDirty();\n }\n }\n /**\n * @internal\n */\n runIfDirty() {\n if (isDirty(this)) {\n this.run();\n }\n }\n get dirty() {\n return isDirty(this);\n }\n}\nlet batchDepth = 0;\nlet batchedSub;\nlet batchedComputed;\nfunction batch(sub, isComputed = false) {\n sub.flags |= 8;\n if (isComputed) {\n sub.next = batchedComputed;\n batchedComputed = sub;\n return;\n }\n sub.next = batchedSub;\n batchedSub = sub;\n}\nfunction startBatch() {\n batchDepth++;\n}\nfunction endBatch() {\n if (--batchDepth > 0) {\n return;\n }\n if (batchedComputed) {\n let e = batchedComputed;\n batchedComputed = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= ~8;\n e = next;\n }\n }\n let error;\n while (batchedSub) {\n let e = batchedSub;\n batchedSub = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= ~8;\n if (e.flags & 1) {\n try {\n ;\n e.trigger();\n } catch (err) {\n if (!error) error = err;\n }\n }\n e = next;\n }\n }\n if (error) throw error;\n}\nfunction prepareDeps(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n link.version = -1;\n link.prevActiveLink = link.dep.activeLink;\n link.dep.activeLink = link;\n }\n}\nfunction cleanupDeps(sub) {\n let head;\n let tail = sub.depsTail;\n let link = tail;\n while (link) {\n const prev = link.prevDep;\n if (link.version === -1) {\n if (link === tail) tail = prev;\n removeSub(link);\n removeDep(link);\n } else {\n head = link;\n }\n link.dep.activeLink = link.prevActiveLink;\n link.prevActiveLink = void 0;\n link = prev;\n }\n sub.deps = head;\n sub.depsTail = tail;\n}\nfunction isDirty(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) {\n return true;\n }\n }\n if (sub._dirty) {\n return true;\n }\n return false;\n}\nfunction refreshComputed(computed) {\n if (computed.flags & 4 && !(computed.flags & 16)) {\n return;\n }\n computed.flags &= ~16;\n if (computed.globalVersion === globalVersion) {\n return;\n }\n computed.globalVersion = globalVersion;\n const dep = computed.dep;\n computed.flags |= 2;\n if (dep.version > 0 && !computed.isSSR && computed.deps && !isDirty(computed)) {\n computed.flags &= ~2;\n return;\n }\n const prevSub = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = computed;\n shouldTrack = true;\n try {\n prepareDeps(computed);\n const value = computed.fn(computed._value);\n if (dep.version === 0 || hasChanged(value, computed._value)) {\n computed._value = value;\n dep.version++;\n }\n } catch (err) {\n dep.version++;\n throw err;\n } finally {\n activeSub = prevSub;\n shouldTrack = prevShouldTrack;\n cleanupDeps(computed);\n computed.flags &= ~2;\n }\n}\nfunction removeSub(link, soft = false) {\n const { dep, prevSub, nextSub } = link;\n if (prevSub) {\n prevSub.nextSub = nextSub;\n link.prevSub = void 0;\n }\n if (nextSub) {\n nextSub.prevSub = prevSub;\n link.nextSub = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && dep.subsHead === link) {\n dep.subsHead = nextSub;\n }\n if (dep.subs === link) {\n dep.subs = prevSub;\n if (!prevSub && dep.computed) {\n dep.computed.flags &= ~4;\n for (let l = dep.computed.deps; l; l = l.nextDep) {\n removeSub(l, true);\n }\n }\n }\n if (!soft && !--dep.sc && dep.map) {\n dep.map.delete(dep.key);\n }\n}\nfunction removeDep(link) {\n const { prevDep, nextDep } = link;\n if (prevDep) {\n prevDep.nextDep = nextDep;\n link.prevDep = void 0;\n }\n if (nextDep) {\n nextDep.prevDep = prevDep;\n link.nextDep = void 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const e = new ReactiveEffect(fn);\n if (options) {\n extend(e, options);\n }\n try {\n e.run();\n } catch (err) {\n e.stop();\n throw err;\n }\n const runner = e.run.bind(e);\n runner.effect = e;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction onEffectCleanup(fn, failSilently = false) {\n if (activeSub instanceof ReactiveEffect) {\n activeSub.cleanup = fn;\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onEffectCleanup() was called when there was no active effect to associate with.`\n );\n }\n}\nfunction cleanupEffect(e) {\n const { cleanup } = e;\n e.cleanup = void 0;\n if (cleanup) {\n const prevSub = activeSub;\n activeSub = void 0;\n try {\n cleanup();\n } finally {\n activeSub = prevSub;\n }\n }\n}\n\nlet globalVersion = 0;\nclass Link {\n constructor(sub, dep) {\n this.sub = sub;\n this.dep = dep;\n this.version = dep.version;\n this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;\n }\n}\nclass Dep {\n constructor(computed) {\n this.computed = computed;\n this.version = 0;\n /**\n * Link between this dep and the current active effect\n */\n this.activeLink = void 0;\n /**\n * Doubly linked list representing the subscribing effects (tail)\n */\n this.subs = void 0;\n /**\n * For object property deps cleanup\n */\n this.map = void 0;\n this.key = void 0;\n /**\n * Subscriber counter\n */\n this.sc = 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.subsHead = void 0;\n }\n }\n track(debugInfo) {\n if (!activeSub || !shouldTrack || activeSub === this.computed) {\n return;\n }\n let link = this.activeLink;\n if (link === void 0 || link.sub !== activeSub) {\n link = this.activeLink = new Link(activeSub, this);\n if (!activeSub.deps) {\n activeSub.deps = activeSub.depsTail = link;\n } else {\n link.prevDep = activeSub.depsTail;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n }\n addSub(link);\n } else if (link.version === -1) {\n link.version = this.version;\n if (link.nextDep) {\n const next = link.nextDep;\n next.prevDep = link.prevDep;\n if (link.prevDep) {\n link.prevDep.nextDep = next;\n }\n link.prevDep = activeSub.depsTail;\n link.nextDep = void 0;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n if (activeSub.deps === link) {\n activeSub.deps = next;\n }\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub.onTrack) {\n activeSub.onTrack(\n extend(\n {\n effect: activeSub\n },\n debugInfo\n )\n );\n }\n return link;\n }\n trigger(debugInfo) {\n this.version++;\n globalVersion++;\n this.notify(debugInfo);\n }\n notify(debugInfo) {\n startBatch();\n try {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (let head = this.subsHead; head; head = head.nextSub) {\n if (head.sub.onTrigger && !(head.sub.flags & 8)) {\n head.sub.onTrigger(\n extend(\n {\n effect: head.sub\n },\n debugInfo\n )\n );\n }\n }\n }\n for (let link = this.subs; link; link = link.prevSub) {\n if (link.sub.notify()) {\n ;\n link.sub.dep.notify();\n }\n }\n } finally {\n endBatch();\n }\n }\n}\nfunction addSub(link) {\n link.dep.sc++;\n if (link.sub.flags & 4) {\n const computed = link.dep.computed;\n if (computed && !link.dep.subs) {\n computed.flags |= 4 | 16;\n for (let l = computed.deps; l; l = l.nextDep) {\n addSub(l);\n }\n }\n const currentTail = link.dep.subs;\n if (currentTail !== link) {\n link.prevSub = currentTail;\n if (currentTail) currentTail.nextSub = link;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && link.dep.subsHead === void 0) {\n link.dep.subsHead = link;\n }\n link.dep.subs = link;\n }\n}\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Object iterate\" : \"\"\n);\nconst MAP_KEY_ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Map keys iterate\" : \"\"\n);\nconst ARRAY_ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Array iterate\" : \"\"\n);\nfunction track(target, type, key) {\n if (shouldTrack && activeSub) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = new Dep());\n dep.map = depsMap;\n dep.key = key;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.track({\n target,\n type,\n key\n });\n } else {\n dep.track();\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n globalVersion++;\n return;\n }\n const run = (dep) => {\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.trigger({\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n });\n } else {\n dep.trigger();\n }\n }\n };\n startBatch();\n if (type === \"clear\") {\n depsMap.forEach(run);\n } else {\n const targetIsArray = isArray(target);\n const isArrayIndex = targetIsArray && isIntegerKey(key);\n if (targetIsArray && key === \"length\") {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) {\n run(dep);\n }\n });\n } else {\n if (key !== void 0 || depsMap.has(void 0)) {\n run(depsMap.get(key));\n }\n if (isArrayIndex) {\n run(depsMap.get(ARRAY_ITERATE_KEY));\n }\n switch (type) {\n case \"add\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isArrayIndex) {\n run(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n run(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n }\n endBatch();\n}\nfunction getDepFromReactive(object, key) {\n const depMap = targetMap.get(object);\n return depMap && depMap.get(key);\n}\n\nfunction reactiveReadArray(array) {\n const raw = toRaw(array);\n if (raw === array) return raw;\n track(raw, \"iterate\", ARRAY_ITERATE_KEY);\n return isShallow(array) ? raw : raw.map(toReactive);\n}\nfunction shallowReadArray(arr) {\n track(arr = toRaw(arr), \"iterate\", ARRAY_ITERATE_KEY);\n return arr;\n}\nconst arrayInstrumentations = {\n __proto__: null,\n [Symbol.iterator]() {\n return iterator(this, Symbol.iterator, toReactive);\n },\n concat(...args) {\n return reactiveReadArray(this).concat(\n ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x)\n );\n },\n entries() {\n return iterator(this, \"entries\", (value) => {\n value[1] = toReactive(value[1]);\n return value;\n });\n },\n every(fn, thisArg) {\n return apply(this, \"every\", fn, thisArg, void 0, arguments);\n },\n filter(fn, thisArg) {\n return apply(this, \"filter\", fn, thisArg, (v) => v.map(toReactive), arguments);\n },\n find(fn, thisArg) {\n return apply(this, \"find\", fn, thisArg, toReactive, arguments);\n },\n findIndex(fn, thisArg) {\n return apply(this, \"findIndex\", fn, thisArg, void 0, arguments);\n },\n findLast(fn, thisArg) {\n return apply(this, \"findLast\", fn, thisArg, toReactive, arguments);\n },\n findLastIndex(fn, thisArg) {\n return apply(this, \"findLastIndex\", fn, thisArg, void 0, arguments);\n },\n // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement\n forEach(fn, thisArg) {\n return apply(this, \"forEach\", fn, thisArg, void 0, arguments);\n },\n includes(...args) {\n return searchProxy(this, \"includes\", args);\n },\n indexOf(...args) {\n return searchProxy(this, \"indexOf\", args);\n },\n join(separator) {\n return reactiveReadArray(this).join(separator);\n },\n // keys() iterator only reads `length`, no optimisation required\n lastIndexOf(...args) {\n return searchProxy(this, \"lastIndexOf\", args);\n },\n map(fn, thisArg) {\n return apply(this, \"map\", fn, thisArg, void 0, arguments);\n },\n pop() {\n return noTracking(this, \"pop\");\n },\n push(...args) {\n return noTracking(this, \"push\", args);\n },\n reduce(fn, ...args) {\n return reduce(this, \"reduce\", fn, args);\n },\n reduceRight(fn, ...args) {\n return reduce(this, \"reduceRight\", fn, args);\n },\n shift() {\n return noTracking(this, \"shift\");\n },\n // slice could use ARRAY_ITERATE but also seems to beg for range tracking\n some(fn, thisArg) {\n return apply(this, \"some\", fn, thisArg, void 0, arguments);\n },\n splice(...args) {\n return noTracking(this, \"splice\", args);\n },\n toReversed() {\n return reactiveReadArray(this).toReversed();\n },\n toSorted(comparer) {\n return reactiveReadArray(this).toSorted(comparer);\n },\n toSpliced(...args) {\n return reactiveReadArray(this).toSpliced(...args);\n },\n unshift(...args) {\n return noTracking(this, \"unshift\", args);\n },\n values() {\n return iterator(this, \"values\", toReactive);\n }\n};\nfunction iterator(self, method, wrapValue) {\n const arr = shallowReadArray(self);\n const iter = arr[method]();\n if (arr !== self && !isShallow(self)) {\n iter._next = iter.next;\n iter.next = () => {\n const result = iter._next();\n if (result.value) {\n result.value = wrapValue(result.value);\n }\n return result;\n };\n }\n return iter;\n}\nconst arrayProto = Array.prototype;\nfunction apply(self, method, fn, thisArg, wrappedRetFn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n const methodFn = arr[method];\n if (methodFn !== arrayProto[method]) {\n const result2 = methodFn.apply(self, args);\n return needsWrap ? toReactive(result2) : result2;\n }\n let wrappedFn = fn;\n if (arr !== self) {\n if (needsWrap) {\n wrappedFn = function(item, index) {\n return fn.call(this, toReactive(item), index, self);\n };\n } else if (fn.length > 2) {\n wrappedFn = function(item, index) {\n return fn.call(this, item, index, self);\n };\n }\n }\n const result = methodFn.call(arr, wrappedFn, thisArg);\n return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;\n}\nfunction reduce(self, method, fn, args) {\n const arr = shallowReadArray(self);\n let wrappedFn = fn;\n if (arr !== self) {\n if (!isShallow(self)) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, toReactive(item), index, self);\n };\n } else if (fn.length > 3) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, item, index, self);\n };\n }\n }\n return arr[method](wrappedFn, ...args);\n}\nfunction searchProxy(self, method, args) {\n const arr = toRaw(self);\n track(arr, \"iterate\", ARRAY_ITERATE_KEY);\n const res = arr[method](...args);\n if ((res === -1 || res === false) && isProxy(args[0])) {\n args[0] = toRaw(args[0]);\n return arr[method](...args);\n }\n return res;\n}\nfunction noTracking(self, method, args = []) {\n pauseTracking();\n startBatch();\n const res = toRaw(self)[method].apply(self, args);\n endBatch();\n resetTracking();\n return res;\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nfunction hasOwnProperty(key) {\n if (!isSymbol(key)) key = String(key);\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the receiver is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n let fn;\n if (targetIsArray && (fn = arrayInstrumentations[key])) {\n return fn;\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(\n target,\n key,\n // if this is a proxy wrapping a ref, return methods using the raw ref\n // as receiver so that we don't have to call `toRaw` on the ref in all\n // its class methods\n isRef(target) ? target : receiver\n );\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n return false;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(\n target,\n key,\n value,\n isRef(target) ? target : receiver\n );\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction createIterableMethod(method, isReadonly2, isShallow2) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations(readonly, shallow) {\n const instrumentations = {\n get(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has } = getProto(rawTarget);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n if (has.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n },\n get size() {\n const target = this[\"__v_raw\"];\n !readonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n },\n has(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n },\n forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n !readonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n }\n };\n extend(\n instrumentations,\n readonly ? {\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\")\n } : {\n add(value) {\n if (!shallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n },\n set(key, value) {\n if (!shallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n },\n delete(key) {\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get ? get.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n },\n clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(\n target,\n \"clear\",\n void 0,\n void 0,\n oldTarget\n );\n }\n return result;\n }\n }\n );\n const iteratorMethods = [\n \"keys\",\n \"values\",\n \"entries\",\n Symbol.iterator\n ];\n iteratorMethods.forEach((method) => {\n instrumentations[method] = createIterableMethod(method, readonly, shallow);\n });\n return instrumentations;\n}\nfunction createInstrumentationGetter(isReadonly2, shallow) {\n const instrumentations = createInstrumentations(isReadonly2, shallow);\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has.call(target, rawKey)) {\n const type = toRawType(target);\n warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `value cannot be made ${isReadonly2 ? \"readonly\" : \"reactive\"}: ${String(\n target\n )}`\n );\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return value ? !!value[\"__v_raw\"] : false;\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (!hasOwn(value, \"__v_skip\") && Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction isRef(r) {\n return r ? r[\"__v_isRef\"] === true : false;\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, isShallow2) {\n this.dep = new Dep();\n this[\"__v_isRef\"] = true;\n this[\"__v_isShallow\"] = false;\n this._rawValue = isShallow2 ? value : toRaw(value);\n this._value = isShallow2 ? value : toReactive(value);\n this[\"__v_isShallow\"] = isShallow2;\n }\n get value() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n });\n } else {\n this.dep.track();\n }\n return this._value;\n }\n set value(newValue) {\n const oldValue = this._rawValue;\n const useDirectValue = this[\"__v_isShallow\"] || isShallow(newValue) || isReadonly(newValue);\n newValue = useDirectValue ? newValue : toRaw(newValue);\n if (hasChanged(newValue, oldValue)) {\n this._rawValue = newValue;\n this._value = useDirectValue ? newValue : toReactive(newValue);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.trigger({\n target: this,\n type: \"set\",\n key: \"value\",\n newValue,\n oldValue\n });\n } else {\n this.dep.trigger();\n }\n }\n }\n}\nfunction triggerRef(ref2) {\n if (ref2.dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n ref2.dep.trigger({\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: ref2._value\n });\n } else {\n ref2.dep.trigger();\n }\n }\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => key === \"__v_raw\" ? target : unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n const dep = this.dep = new Dep();\n const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep));\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._value = this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n }\n get value() {\n const val = this._object[this._key];\n return this._value = val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this[\"__v_isRef\"] = true;\n this[\"__v_isReadonly\"] = true;\n this._value = void 0;\n }\n get value() {\n return this._value = this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nclass ComputedRefImpl {\n constructor(fn, setter, isSSR) {\n this.fn = fn;\n this.setter = setter;\n /**\n * @internal\n */\n this._value = void 0;\n /**\n * @internal\n */\n this.dep = new Dep(this);\n /**\n * @internal\n */\n this.__v_isRef = true;\n // TODO isolatedDeclarations \"__v_isReadonly\"\n // A computed is also a subscriber that tracks other deps\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 16;\n /**\n * @internal\n */\n this.globalVersion = globalVersion - 1;\n /**\n * @internal\n */\n this.next = void 0;\n // for backwards compat\n this.effect = this;\n this[\"__v_isReadonly\"] = !setter;\n this.isSSR = isSSR;\n }\n /**\n * @internal\n */\n notify() {\n this.flags |= 16;\n if (!(this.flags & 8) && // avoid infinite self recursion\n activeSub !== this) {\n batch(this, true);\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) ;\n }\n get value() {\n const link = !!(process.env.NODE_ENV !== \"production\") ? this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n }) : this.dep.track();\n refreshComputed(this);\n if (link) {\n link.version = this.dep.version;\n }\n return this._value;\n }\n set value(newValue) {\n if (this.setter) {\n this.setter(newValue);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\"Write operation failed: computed value is readonly\");\n }\n }\n}\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n if (isFunction(getterOrOptions)) {\n getter = getterOrOptions;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.onTrack = debugOptions.onTrack;\n cRef.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nconst TrackOpTypes = {\n \"GET\": \"get\",\n \"HAS\": \"has\",\n \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n \"SET\": \"set\",\n \"ADD\": \"add\",\n \"DELETE\": \"delete\",\n \"CLEAR\": \"clear\"\n};\nconst ReactiveFlags = {\n \"SKIP\": \"__v_skip\",\n \"IS_REACTIVE\": \"__v_isReactive\",\n \"IS_READONLY\": \"__v_isReadonly\",\n \"IS_SHALLOW\": \"__v_isShallow\",\n \"RAW\": \"__v_raw\",\n \"IS_REF\": \"__v_isRef\"\n};\n\nconst WatchErrorCodes = {\n \"WATCH_GETTER\": 2,\n \"2\": \"WATCH_GETTER\",\n \"WATCH_CALLBACK\": 3,\n \"3\": \"WATCH_CALLBACK\",\n \"WATCH_CLEANUP\": 4,\n \"4\": \"WATCH_CLEANUP\"\n};\nconst INITIAL_WATCHER_VALUE = {};\nconst cleanupMap = /* @__PURE__ */ new WeakMap();\nlet activeWatcher = void 0;\nfunction getCurrentWatcher() {\n return activeWatcher;\n}\nfunction onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) {\n if (owner) {\n let cleanups = cleanupMap.get(owner);\n if (!cleanups) cleanupMap.set(owner, cleanups = []);\n cleanups.push(cleanupFn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onWatcherCleanup() was called when there was no active watcher to associate with.`\n );\n }\n}\nfunction watch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, once, scheduler, augmentJob, call } = options;\n const warnInvalidSource = (s) => {\n (options.onWarn || warn)(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const reactiveGetter = (source2) => {\n if (deep) return source2;\n if (isShallow(source2) || deep === false || deep === 0)\n return traverse(source2, 1);\n return traverse(source2);\n };\n let effect;\n let getter;\n let cleanup;\n let boundCleanup;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return call ? call(s, 2) : s();\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = call ? () => call(source, 2) : source;\n } else {\n getter = () => {\n if (cleanup) {\n pauseTracking();\n try {\n cleanup();\n } finally {\n resetTracking();\n }\n }\n const currentEffect = activeWatcher;\n activeWatcher = effect;\n try {\n return call ? call(source, 3, [boundCleanup]) : source(boundCleanup);\n } finally {\n activeWatcher = currentEffect;\n }\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n const depth = deep === true ? Infinity : deep;\n getter = () => traverse(baseGetter(), depth);\n }\n const scope = getCurrentScope();\n const watchHandle = () => {\n effect.stop();\n if (scope) {\n remove(scope.effects, effect);\n }\n };\n if (once && cb) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n watchHandle();\n };\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = (immediateFirstRun) => {\n if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {\n if (cleanup) {\n cleanup();\n }\n const currentWatcher = activeWatcher;\n activeWatcher = effect;\n try {\n const args = [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n boundCleanup\n ];\n call ? call(cb, 3, args) : (\n // @ts-expect-error\n cb(...args)\n );\n oldValue = newValue;\n } finally {\n activeWatcher = currentWatcher;\n }\n }\n } else {\n effect.run();\n }\n };\n if (augmentJob) {\n augmentJob(job);\n }\n effect = new ReactiveEffect(getter);\n effect.scheduler = scheduler ? () => scheduler(job, false) : job;\n boundCleanup = (fn) => onWatcherCleanup(fn, false, effect);\n cleanup = effect.onStop = () => {\n const cleanups = cleanupMap.get(effect);\n if (cleanups) {\n if (call) {\n call(cleanups, 4);\n } else {\n for (const cleanup2 of cleanups) cleanup2();\n }\n cleanupMap.delete(effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = options.onTrack;\n effect.onTrigger = options.onTrigger;\n }\n if (cb) {\n if (immediate) {\n job(true);\n } else {\n oldValue = effect.run();\n }\n } else if (scheduler) {\n scheduler(job.bind(null, true), true);\n } else {\n effect.run();\n }\n watchHandle.pause = effect.pause.bind(effect);\n watchHandle.resume = effect.resume.bind(effect);\n watchHandle.stop = watchHandle;\n return watchHandle;\n}\nfunction traverse(value, depth = Infinity, seen) {\n if (depth <= 0 || !isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n depth--;\n if (isRef(value)) {\n traverse(value.value, depth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, seen);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n if (Object.prototype.propertyIsEnumerable.call(value, key)) {\n traverse(value[key], depth, seen);\n }\n }\n }\n return value;\n}\n\nexport { ARRAY_ITERATE_KEY, EffectFlags, EffectScope, ITERATE_KEY, MAP_KEY_ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, WatchErrorCodes, computed, customRef, effect, effectScope, enableTracking, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onEffectCleanup, onScopeDispose, onWatcherCleanup, pauseTracking, proxyRefs, reactive, reactiveReadArray, readonly, ref, resetTracking, shallowReactive, shallowReadArray, shallowReadonly, shallowRef, stop, toRaw, toReactive, toReadonly, toRef, toRefs, toValue, track, traverse, trigger, triggerRef, unref, watch };\n","/**\n* @vue/runtime-core v3.5.12\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, traverse, shallowRef, readonly, isReactive, ref, isShallow, shallowReadArray, toReactive, shallowReadonly, track, reactive, shallowReactive, trigger, ReactiveEffect, watch as watch$1, customRef, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, onWatcherCleanup, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, EMPTY_OBJ, NOOP, getGlobalThis, extend, isBuiltInDirective, hasOwn, remove, def, isOn, isReservedProp, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, getEscapedCssVarName, isObject, isRegExp, invokeArrayFns, toHandlerKey, capitalize, camelize, isSymbol, isGloballyAllowed, NO, hyphenate, EMPTY_ARR, toRawType, makeMap, hasChanged, looseToNumber, isModelListener, toNumber } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nlet isWarning = false;\nfunction warn$1(msg, ...args) {\n if (isWarning) return;\n isWarning = true;\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n // eslint-disable-next-line no-restricted-syntax\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n isWarning = false;\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\")) return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\",\n \"COMPONENT_UPDATE\": 15,\n \"15\": \"COMPONENT_UPDATE\",\n \"APP_UNMOUNT_CLEANUP\": 16,\n \"16\": \"APP_UNMOUNT_CLEANUP\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush\",\n [15]: \"component update\",\n [16]: \"app unmount cleanup function\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n if (isArray(fn)) {\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}`\n );\n }\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n if (errorHandler) {\n pauseTracking();\n callWithErrorHandling(errorHandler, null, 10, [\n err,\n exposedInstance,\n errorInfo\n ]);\n resetTracking();\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);\n}\nfunction logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else if (throwInProd) {\n throw err;\n } else {\n console.error(err);\n }\n}\n\nconst queue = [];\nlet flushIndex = -1;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.flags & 2) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!(job.flags & 1)) {\n const jobId = getId(job);\n const lastJob = queue[queue.length - 1];\n if (!lastJob || // fast path when the job id is larger than the tail\n !(job.flags & 2) && jobId >= getId(lastJob)) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(jobId), 0, job);\n }\n job.flags |= 1;\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!currentFlushPromise) {\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (activePostFlushCbs && cb.id === -1) {\n activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);\n } else if (!(cb.flags & 1)) {\n pendingPostFlushCbs.push(cb);\n cb.flags |= 1;\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = flushIndex + 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.flags & 2) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n if (cb.flags & 4) {\n cb.flags &= ~1;\n }\n cb();\n if (!(cb.flags & 4)) {\n cb.flags &= ~1;\n }\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n const cb = activePostFlushCbs[postFlushIndex];\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n if (cb.flags & 4) {\n cb.flags &= ~1;\n }\n if (!(cb.flags & 8)) cb();\n cb.flags &= ~1;\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;\nfunction flushJobs(seen) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && !(job.flags & 8)) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n if (job.flags & 4) {\n job.flags &= ~1;\n }\n callWithErrorHandling(\n job,\n job.i,\n job.i ? 15 : 14\n );\n if (!(job.flags & 4)) {\n job.flags &= ~1;\n }\n }\n }\n } finally {\n for (; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job) {\n job.flags &= ~1;\n }\n }\n flushIndex = -1;\n queue.length = 0;\n flushPostFlushCbs(seen);\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n const count = seen.get(fn) || 0;\n if (count > RECURSION_LIMIT) {\n const instance = fn.i;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n }\n seen.set(fn, count + 1);\n return false;\n}\n\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Map();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record) return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (let i = 0; i < instances.length; i++) {\n const instance = instances[i];\n const oldComp = normalizeClassComponent(instance.type);\n let dirtyInstances = hmrDirtyComponents.get(oldComp);\n if (!dirtyInstances) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());\n }\n dirtyInstances.add(instance);\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n dirtyInstances.add(instance);\n instance.ceReload(newComp.styles);\n dirtyInstances.delete(instance);\n } else if (instance.parent) {\n queueJob(() => {\n isHmrUpdating = true;\n instance.parent.update();\n isHmrUpdating = false;\n dirtyInstances.delete(instance);\n });\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n if (instance.root.ce && instance !== instance.root) {\n instance.root.ce._removeChildStyle(oldComp);\n }\n }\n queuePostFlushCb(() => {\n hmrDirtyComponents.clear();\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n // eslint-disable-next-line no-restricted-syntax\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx) return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getComponentPublicInstance(currentRenderingInstance);\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nconst TeleportEndKey = Symbol(\"_vte\");\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === \"\");\nconst isTeleportDeferred = (props) => props && (props.defer || props.defer === \"\");\nconst isTargetSVG = (target) => typeof SVGElement !== \"undefined\" && target instanceof SVGElement;\nconst isTargetMathML = (target) => typeof MathMLElement === \"function\" && target instanceof MathMLElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (isString(targetSelector)) {\n if (!select) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`\n );\n return null;\n } else {\n const target = select(targetSelector);\n if (!!(process.env.NODE_ENV !== \"production\") && !target && !isTeleportDisabled(props)) {\n warn$1(\n `Failed to locate Teleport target with selector \"${targetSelector}\". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`\n );\n }\n return target;\n }\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && !targetSelector && !isTeleportDisabled(props)) {\n warn$1(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n name: \"Teleport\",\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {\n const {\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n o: { insert, querySelector, createText, createComment }\n } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { shapeFlag, children, dynamicChildren } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n if (n1 == null) {\n const placeholder = n2.el = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport start\") : createText(\"\");\n const mainAnchor = n2.anchor = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport end\") : createText(\"\");\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n const mount = (container2, anchor2) => {\n if (shapeFlag & 16) {\n if (parentComponent && parentComponent.isCE) {\n parentComponent.ce._teleportTarget = container2;\n }\n mountChildren(\n children,\n container2,\n anchor2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountToTarget = () => {\n const target = n2.target = resolveTarget(n2.props, querySelector);\n const targetAnchor = prepareAnchor(target, n2, createText, insert);\n if (target) {\n if (namespace !== \"svg\" && isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace !== \"mathml\" && isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (!disabled) {\n mount(target, targetAnchor);\n updateCssVars(n2, false);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && !disabled) {\n warn$1(\n \"Invalid Teleport target on mount:\",\n target,\n `(${typeof target})`\n );\n }\n };\n if (disabled) {\n mount(container, mainAnchor);\n updateCssVars(n2, true);\n }\n if (isTeleportDeferred(n2.props)) {\n queuePostRenderEffect(mountToTarget, parentSuspense);\n } else {\n mountToTarget();\n }\n } else {\n n2.el = n1.el;\n n2.targetStart = n1.targetStart;\n const mainAnchor = n2.anchor = n1.anchor;\n const target = n2.target = n1.target;\n const targetAnchor = n2.targetAnchor = n1.targetAnchor;\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n if (namespace === \"svg\" || isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n currentContainer,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n traverseStaticChildren(n1, n2, true);\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n currentContainer,\n currentAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n false\n );\n }\n if (disabled) {\n if (!wasDisabled) {\n moveTeleport(\n n2,\n container,\n mainAnchor,\n internals,\n 1\n );\n } else {\n if (n2.props && n1.props && n2.props.to !== n1.props.to) {\n n2.props.to = n1.props.to;\n }\n }\n } else {\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = n2.target = resolveTarget(\n n2.props,\n querySelector\n );\n if (nextTarget) {\n moveTeleport(\n n2,\n nextTarget,\n null,\n internals,\n 0\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Invalid Teleport target on update:\",\n target,\n `(${typeof target})`\n );\n }\n } else if (wasDisabled) {\n moveTeleport(\n n2,\n target,\n targetAnchor,\n internals,\n 1\n );\n }\n }\n updateCssVars(n2, disabled);\n }\n },\n remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {\n const {\n shapeFlag,\n children,\n anchor,\n targetStart,\n targetAnchor,\n target,\n props\n } = vnode;\n if (target) {\n hostRemove(targetStart);\n hostRemove(targetAnchor);\n }\n doRemove && hostRemove(anchor);\n if (shapeFlag & 16) {\n const shouldRemove = doRemove || !isTeleportDisabled(props);\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n unmount(\n child,\n parentComponent,\n parentSuspense,\n shouldRemove,\n !!child.dynamicChildren\n );\n }\n }\n },\n move: moveTeleport,\n hydrate: hydrateTeleport\n};\nfunction moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {\n if (moveType === 0) {\n insert(vnode.targetAnchor, container, parentAnchor);\n }\n const { el, anchor, shapeFlag, children, props } = vnode;\n const isReorder = moveType === 2;\n if (isReorder) {\n insert(el, container, parentAnchor);\n }\n if (!isReorder || isTeleportDisabled(props)) {\n if (shapeFlag & 16) {\n for (let i = 0; i < children.length; i++) {\n move(\n children[i],\n container,\n parentAnchor,\n 2\n );\n }\n }\n }\n if (isReorder) {\n insert(anchor, container, parentAnchor);\n }\n}\nfunction hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {\n o: { nextSibling, parentNode, querySelector, insert, createText }\n}, hydrateChildren) {\n const target = vnode.target = resolveTarget(\n vnode.props,\n querySelector\n );\n if (target) {\n const disabled = isTeleportDisabled(vnode.props);\n const targetNode = target._lpa || target.firstChild;\n if (vnode.shapeFlag & 16) {\n if (disabled) {\n vnode.anchor = hydrateChildren(\n nextSibling(node),\n vnode,\n parentNode(node),\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n vnode.targetStart = targetNode;\n vnode.targetAnchor = targetNode && nextSibling(targetNode);\n } else {\n vnode.anchor = nextSibling(node);\n let targetAnchor = targetNode;\n while (targetAnchor) {\n if (targetAnchor && targetAnchor.nodeType === 8) {\n if (targetAnchor.data === \"teleport start anchor\") {\n vnode.targetStart = targetAnchor;\n } else if (targetAnchor.data === \"teleport anchor\") {\n vnode.targetAnchor = targetAnchor;\n target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);\n break;\n }\n }\n targetAnchor = nextSibling(targetAnchor);\n }\n if (!vnode.targetAnchor) {\n prepareAnchor(target, vnode, createText, insert);\n }\n hydrateChildren(\n targetNode && nextSibling(targetNode),\n vnode,\n target,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n }\n updateCssVars(vnode, disabled);\n }\n return vnode.anchor && nextSibling(vnode.anchor);\n}\nconst Teleport = TeleportImpl;\nfunction updateCssVars(vnode, isDisabled) {\n const ctx = vnode.ctx;\n if (ctx && ctx.ut) {\n let node, anchor;\n if (isDisabled) {\n node = vnode.el;\n anchor = vnode.anchor;\n } else {\n node = vnode.targetStart;\n anchor = vnode.targetAnchor;\n }\n while (node && node !== anchor) {\n if (node.nodeType === 1) node.setAttribute(\"data-v-owner\", ctx.uid);\n node = node.nextSibling;\n }\n ctx.ut();\n }\n}\nfunction prepareAnchor(target, vnode, createText, insert) {\n const targetStart = vnode.targetStart = createText(\"\");\n const targetAnchor = vnode.targetAnchor = createText(\"\");\n targetStart[TeleportEndKey] = targetAnchor;\n if (target) {\n insert(targetStart, target);\n insert(targetAnchor, target);\n }\n return targetAnchor;\n}\n\nconst leaveCbKey = Symbol(\"_leaveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst recursiveGetSubtree = (instance) => {\n const subTree = instance.subTree;\n return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n const child = findNonCommentChild(children);\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn$1(`invalid mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getInnerChild$1(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n let enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance,\n // #11061, ensure enterHooks is fresh after clone\n (hooks) => enterHooks = hooks\n );\n if (innerChild.type !== Comment) {\n setTransitionHooks(innerChild, enterHooks);\n }\n const oldChild = instance.subTree;\n const oldInnerChild = oldChild && getInnerChild$1(oldChild);\n if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild) && recursiveGetSubtree(instance).type !== Comment) {\n const leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\" && innerChild.type !== Comment) {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n delete leavingHooks.afterLeave;\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n };\n enterHooks.delayedLeave = delayedLeave;\n };\n }\n }\n return child;\n };\n }\n};\nfunction findNonCommentChild(children) {\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn$1(\n \" can only be used on a single element or component. Use for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\")) break;\n }\n }\n }\n return child;\n}\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance, postClone) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1)) done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n const done = el[enterCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey] = void 0;\n };\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el[enterCbKey]) {\n el[enterCbKey](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = el[leaveCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n const hooks2 = resolveTransitionHooks(\n vnode2,\n props,\n state,\n instance,\n postClone\n );\n if (postClone) postClone(hooks2);\n return hooks2;\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getInnerChild$1(vnode) {\n if (!isKeepAlive(vnode)) {\n if (isTeleport(vnode.type) && vnode.children) {\n return findNonCommentChild(vnode.children);\n }\n return vnode;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.component) {\n return vnode.component.subTree;\n }\n const { shapeFlag, children } = vnode;\n if (children) {\n if (shapeFlag & 16) {\n return children[0];\n }\n if (shapeFlag & 32 && isFunction(children.default)) {\n return children.default();\n }\n }\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n vnode.transition = hooks;\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128) keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8236: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nfunction useId() {\n const i = getCurrentInstance();\n if (i) {\n return (i.appContext.config.idPrefix || \"v\") + \"-\" + i.ids[0] + i.ids[1]++;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useId() is called when there is no active component instance to be associated with.`\n );\n }\n return \"\";\n}\nfunction markAsyncBoundary(instance) {\n instance.ids = [instance.ids[0] + instance.ids[2]++ + \"-\", 0, 0];\n}\n\nconst knownTemplateRefs = /* @__PURE__ */ new WeakSet();\nfunction useTemplateRef(key) {\n const i = getCurrentInstance();\n const r = shallowRef(null);\n if (i) {\n const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;\n let desc;\n if (!!(process.env.NODE_ENV !== \"production\") && (desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable) {\n warn$1(`useTemplateRef('${key}') already exists.`);\n } else {\n Object.defineProperty(refs, key, {\n enumerable: true,\n get: () => r.value,\n set: (val) => r.value = val\n });\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useTemplateRef() is called when there is no active component instance to be associated with.`\n );\n }\n const ret = !!(process.env.NODE_ENV !== \"production\") ? readonly(r) : r;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n knownTemplateRefs.add(ret);\n }\n return ret;\n}\n\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray(rawRef)) {\n rawRef.forEach(\n (r, i) => setRef(\n r,\n oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef),\n parentSuspense,\n vnode,\n isUnmount\n )\n );\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n return;\n }\n const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n if (!!(process.env.NODE_ENV !== \"production\") && !owner) {\n warn$1(\n `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`\n );\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n const setupState = owner.setupState;\n const rawSetupState = toRaw(setupState);\n const canSetSetupRef = setupState === EMPTY_OBJ ? () => false : (key) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) {\n warn$1(\n `Template ref \"${key}\" used on a non-ref value. It will not work in the production build.`\n );\n }\n if (knownTemplateRefs.has(rawSetupState[key])) {\n return false;\n }\n }\n return hasOwn(rawSetupState, key);\n };\n if (oldRef != null && oldRef !== ref) {\n if (isString(oldRef)) {\n refs[oldRef] = null;\n if (canSetSetupRef(oldRef)) {\n setupState[oldRef] = null;\n }\n } else if (isRef(oldRef)) {\n oldRef.value = null;\n }\n }\n if (isFunction(ref)) {\n callWithErrorHandling(ref, owner, 12, [value, refs]);\n } else {\n const _isString = isString(ref);\n const _isRef = isRef(ref);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : ref.value;\n if (isUnmount) {\n isArray(existing) && remove(existing, refValue);\n } else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (canSetSetupRef(ref)) {\n setupState[ref] = refs[ref];\n }\n } else {\n ref.value = [refValue];\n if (rawRef.k) refs[rawRef.k] = ref.value;\n }\n } else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n } else if (_isString) {\n refs[ref] = value;\n if (canSetSetupRef(ref)) {\n setupState[ref] = value;\n }\n } else if (_isRef) {\n ref.value = value;\n if (rawRef.k) refs[rawRef.k] = value;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n };\n if (value) {\n doSet.id = -1;\n queuePostRenderEffect(doSet, parentSuspense);\n } else {\n doSet();\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n }\n}\n\nlet hasLoggedMismatchError = false;\nconst logMismatchError = () => {\n if (hasLoggedMismatchError) {\n return;\n }\n console.error(\"Hydration completed but contains mismatches.\");\n hasLoggedMismatchError = true;\n};\nconst isSVGContainer = (container) => container.namespaceURI.includes(\"svg\") && container.tagName !== \"foreignObject\";\nconst isMathMLContainer = (container) => container.namespaceURI.includes(\"MathML\");\nconst getContainerType = (container) => {\n if (container.nodeType !== 1) return void 0;\n if (isSVGContainer(container)) return \"svg\";\n if (isMathMLContainer(container)) return \"mathml\";\n return void 0;\n};\nconst isComment = (node) => node.nodeType === 8;\nfunction createHydrationFunctions(rendererInternals) {\n const {\n mt: mountComponent,\n p: patch,\n o: {\n patchProp,\n createText,\n nextSibling,\n parentNode,\n remove,\n insert,\n createComment\n }\n } = rendererInternals;\n const hydrate = (vnode, container) => {\n if (!container.hasChildNodes()) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`\n );\n patch(null, vnode, container);\n flushPostFlushCbs();\n container._vnode = vnode;\n return;\n }\n hydrateNode(container.firstChild, vnode, null, null, null);\n flushPostFlushCbs();\n container._vnode = vnode;\n };\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const isFragmentStart = isComment(node) && node.data === \"[\";\n const onMismatch = () => handleMismatch(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n isFragmentStart\n );\n const { type, ref, shapeFlag, patchFlag } = vnode;\n let domType = node.nodeType;\n vnode.el = node;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n def(node, \"__vnode\", vnode, true);\n def(node, \"__vueParentComponent\", parentComponent, true);\n }\n if (patchFlag === -2) {\n optimized = false;\n vnode.dynamicChildren = null;\n }\n let nextNode = null;\n switch (type) {\n case Text:\n if (domType !== 3) {\n if (vnode.children === \"\") {\n insert(vnode.el = createText(\"\"), parentNode(node), node);\n nextNode = node;\n } else {\n nextNode = onMismatch();\n }\n } else {\n if (node.data !== vnode.children) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text mismatch in`,\n node.parentNode,\n `\n - rendered on server: ${JSON.stringify(\n node.data\n )}\n - expected on client: ${JSON.stringify(vnode.children)}`\n );\n logMismatchError();\n node.data = vnode.children;\n }\n nextNode = nextSibling(node);\n }\n break;\n case Comment:\n if (isTemplateNode(node)) {\n nextNode = nextSibling(node);\n replaceNode(\n vnode.el = node.content.firstChild,\n node,\n parentComponent\n );\n } else if (domType !== 8 || isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = nextSibling(node);\n }\n break;\n case Static:\n if (isFragmentStart) {\n node = nextSibling(node);\n domType = node.nodeType;\n }\n if (domType === 1 || domType === 3) {\n nextNode = node;\n const needToAdoptContent = !vnode.children.length;\n for (let i = 0; i < vnode.staticCount; i++) {\n if (needToAdoptContent)\n vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data;\n if (i === vnode.staticCount - 1) {\n vnode.anchor = nextNode;\n }\n nextNode = nextSibling(nextNode);\n }\n return isFragmentStart ? nextSibling(nextNode) : nextNode;\n } else {\n onMismatch();\n }\n break;\n case Fragment:\n if (!isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateFragment(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n break;\n default:\n if (shapeFlag & 1) {\n if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateElement(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n } else if (shapeFlag & 6) {\n vnode.slotScopeIds = slotScopeIds;\n const container = parentNode(node);\n if (isFragmentStart) {\n nextNode = locateClosingAnchor(node);\n } else if (isComment(node) && node.data === \"teleport start\") {\n nextNode = locateClosingAnchor(node, node.data, \"teleport end\");\n } else {\n nextNode = nextSibling(node);\n }\n mountComponent(\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n optimized\n );\n if (isAsyncWrapper(vnode)) {\n let subTree;\n if (isFragmentStart) {\n subTree = createVNode(Fragment);\n subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;\n } else {\n subTree = node.nodeType === 3 ? createTextVNode(\"\") : createVNode(\"div\");\n }\n subTree.el = node;\n vnode.component.subTree = subTree;\n }\n } else if (shapeFlag & 64) {\n if (domType !== 8) {\n nextNode = onMismatch();\n } else {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateChildren\n );\n }\n } else if (shapeFlag & 128) {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n getContainerType(parentNode(node)),\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateNode\n );\n } else if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) {\n warn$1(\"Invalid HostVNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode);\n }\n return nextNode;\n };\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode;\n const forcePatch = type === \"input\" || type === \"option\";\n if (!!(process.env.NODE_ENV !== \"production\") || forcePatch || patchFlag !== -1) {\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n let needCallTransitionHooks = false;\n if (isTemplateNode(el)) {\n needCallTransitionHooks = needTransition(\n null,\n // no need check parentSuspense in hydration\n transition\n ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;\n const content = el.content.firstChild;\n if (needCallTransitionHooks) {\n transition.beforeEnter(content);\n }\n replaceNode(content, el, parentComponent);\n vnode.el = el = content;\n }\n if (shapeFlag & 16 && // skip if element has innerHTML / textContent\n !(props && (props.innerHTML || props.textContent))) {\n let next = hydrateChildren(\n el.firstChild,\n vnode,\n el,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n let hasWarned = false;\n while (next) {\n if (!isMismatchAllowed(el, 1 /* CHILDREN */)) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n warn$1(\n `Hydration children mismatch on`,\n el,\n `\nServer rendered element contains more child nodes than client vdom.`\n );\n hasWarned = true;\n }\n logMismatchError();\n }\n const cur = next;\n next = next.nextSibling;\n remove(cur);\n }\n } else if (shapeFlag & 8) {\n let clientText = vnode.children;\n if (clientText[0] === \"\\n\" && (el.tagName === \"PRE\" || el.tagName === \"TEXTAREA\")) {\n clientText = clientText.slice(1);\n }\n if (el.textContent !== clientText) {\n if (!isMismatchAllowed(el, 0 /* TEXT */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text content mismatch on`,\n el,\n `\n - rendered on server: ${el.textContent}\n - expected on client: ${vnode.children}`\n );\n logMismatchError();\n }\n el.textContent = vnode.children;\n }\n }\n if (props) {\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ || forcePatch || !optimized || patchFlag & (16 | 32)) {\n const isCustomElement = el.tagName.includes(\"-\");\n for (const key in props) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && // #11189 skip if this node has directives that have created hooks\n // as it could have mutated the DOM in any possible way\n !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) {\n logMismatchError();\n }\n if (forcePatch && (key.endsWith(\"value\") || key === \"indeterminate\") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers\n key[0] === \".\" || isCustomElement) {\n patchProp(el, key, null, props[key], void 0, parentComponent);\n }\n }\n } else if (props.onClick) {\n patchProp(\n el,\n \"onClick\",\n null,\n props.onClick,\n void 0,\n parentComponent\n );\n } else if (patchFlag & 4 && isReactive(props.style)) {\n for (const key in props.style) props.style[key];\n }\n }\n let vnodeHooks;\n if (vnodeHooks = props && props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {\n queueEffectWithSuspense(() => {\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n }\n return el.nextSibling;\n };\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!parentVNode.dynamicChildren;\n const children = parentVNode.children;\n const l = children.length;\n let hasWarned = false;\n for (let i = 0; i < l; i++) {\n const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);\n const isText = vnode.type === Text;\n if (node) {\n if (isText && !optimized) {\n if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) {\n insert(\n createText(\n node.data.slice(vnode.children.length)\n ),\n container,\n nextSibling(node)\n );\n node.data = vnode.children;\n }\n }\n node = hydrateNode(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n } else if (isText && !vnode.children) {\n insert(vnode.el = createText(\"\"), container);\n } else {\n if (!isMismatchAllowed(container, 1 /* CHILDREN */)) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n warn$1(\n `Hydration children mismatch on`,\n container,\n `\nServer rendered element contains fewer child nodes than client vdom.`\n );\n hasWarned = true;\n }\n logMismatchError();\n }\n patch(\n null,\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n }\n }\n return node;\n };\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n const container = parentNode(node);\n const next = hydrateChildren(\n nextSibling(node),\n vnode,\n container,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && isComment(next) && next.data === \"]\") {\n return nextSibling(vnode.anchor = next);\n } else {\n logMismatchError();\n insert(vnode.anchor = createComment(`]`), container, next);\n return next;\n }\n };\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n if (!isMismatchAllowed(node.parentElement, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration node mismatch:\n- rendered on server:`,\n node,\n node.nodeType === 3 ? `(text)` : isComment(node) && node.data === \"[\" ? `(start of fragment)` : ``,\n `\n- expected on client:`,\n vnode.type\n );\n logMismatchError();\n }\n vnode.el = null;\n if (isFragment) {\n const end = locateClosingAnchor(node);\n while (true) {\n const next2 = nextSibling(node);\n if (next2 && next2 !== end) {\n remove(next2);\n } else {\n break;\n }\n }\n }\n const next = nextSibling(node);\n const container = parentNode(node);\n remove(node);\n patch(\n null,\n vnode,\n container,\n next,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n return next;\n };\n const locateClosingAnchor = (node, open = \"[\", close = \"]\") => {\n let match = 0;\n while (node) {\n node = nextSibling(node);\n if (node && isComment(node)) {\n if (node.data === open) match++;\n if (node.data === close) {\n if (match === 0) {\n return nextSibling(node);\n } else {\n match--;\n }\n }\n }\n }\n return node;\n };\n const replaceNode = (newNode, oldNode, parentComponent) => {\n const parentNode2 = oldNode.parentNode;\n if (parentNode2) {\n parentNode2.replaceChild(newNode, oldNode);\n }\n let parent = parentComponent;\n while (parent) {\n if (parent.vnode.el === oldNode) {\n parent.vnode.el = parent.subTree.el = newNode;\n }\n parent = parent.parent;\n }\n };\n const isTemplateNode = (node) => {\n return node.nodeType === 1 && node.tagName === \"TEMPLATE\";\n };\n return [hydrate, hydrateNode];\n}\nfunction propHasMismatch(el, key, clientValue, vnode, instance) {\n let mismatchType;\n let mismatchKey;\n let actual;\n let expected;\n if (key === \"class\") {\n actual = el.getAttribute(\"class\");\n expected = normalizeClass(clientValue);\n if (!isSetEqual(toClassSet(actual || \"\"), toClassSet(expected))) {\n mismatchType = 2 /* CLASS */;\n mismatchKey = `class`;\n }\n } else if (key === \"style\") {\n actual = el.getAttribute(\"style\") || \"\";\n expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));\n const actualMap = toStyleMap(actual);\n const expectedMap = toStyleMap(expected);\n if (vnode.dirs) {\n for (const { dir, value } of vnode.dirs) {\n if (dir.name === \"show\" && !value) {\n expectedMap.set(\"display\", \"none\");\n }\n }\n }\n if (instance) {\n resolveCssVars(instance, vnode, expectedMap);\n }\n if (!isMapEqual(actualMap, expectedMap)) {\n mismatchType = 3 /* STYLE */;\n mismatchKey = \"style\";\n }\n } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {\n if (isBooleanAttr(key)) {\n actual = el.hasAttribute(key);\n expected = includeBooleanAttr(clientValue);\n } else if (clientValue == null) {\n actual = el.hasAttribute(key);\n expected = false;\n } else {\n if (el.hasAttribute(key)) {\n actual = el.getAttribute(key);\n } else if (key === \"value\" && el.tagName === \"TEXTAREA\") {\n actual = el.value;\n } else {\n actual = false;\n }\n expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;\n }\n if (actual !== expected) {\n mismatchType = 4 /* ATTRIBUTE */;\n mismatchKey = key;\n }\n }\n if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) {\n const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}=\"${v}\"`;\n const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`;\n const postSegment = `\n - rendered on server: ${format(actual)}\n - expected on client: ${format(expected)}\n Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\n You should fix the source of the mismatch.`;\n {\n warn$1(preSegment, el, postSegment);\n }\n return true;\n }\n return false;\n}\nfunction toClassSet(str) {\n return new Set(str.trim().split(/\\s+/));\n}\nfunction isSetEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const s of a) {\n if (!b.has(s)) {\n return false;\n }\n }\n return true;\n}\nfunction toStyleMap(str) {\n const styleMap = /* @__PURE__ */ new Map();\n for (const item of str.split(\";\")) {\n let [key, value] = item.split(\":\");\n key = key.trim();\n value = value && value.trim();\n if (key && value) {\n styleMap.set(key, value);\n }\n }\n return styleMap;\n}\nfunction isMapEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const [key, value] of a) {\n if (value !== b.get(key)) {\n return false;\n }\n }\n return true;\n}\nfunction resolveCssVars(instance, vnode, expectedMap) {\n const root = instance.subTree;\n if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {\n const cssVars = instance.getCssVars();\n for (const key in cssVars) {\n expectedMap.set(\n `--${getEscapedCssVarName(key, false)}`,\n String(cssVars[key])\n );\n }\n }\n if (vnode === root && instance.parent) {\n resolveCssVars(instance.parent, instance.vnode, expectedMap);\n }\n}\nconst allowMismatchAttr = \"data-allow-mismatch\";\nconst MismatchTypeString = {\n [0 /* TEXT */]: \"text\",\n [1 /* CHILDREN */]: \"children\",\n [2 /* CLASS */]: \"class\",\n [3 /* STYLE */]: \"style\",\n [4 /* ATTRIBUTE */]: \"attribute\"\n};\nfunction isMismatchAllowed(el, allowedType) {\n if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) {\n while (el && !el.hasAttribute(allowMismatchAttr)) {\n el = el.parentElement;\n }\n }\n const allowedAttr = el && el.getAttribute(allowMismatchAttr);\n if (allowedAttr == null) {\n return false;\n } else if (allowedAttr === \"\") {\n return true;\n } else {\n const list = allowedAttr.split(\",\");\n if (allowedType === 0 /* TEXT */ && list.includes(\"children\")) {\n return true;\n }\n return allowedAttr.split(\",\").includes(MismatchTypeString[allowedType]);\n }\n}\n\nconst requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1));\nconst cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id));\nconst hydrateOnIdle = (timeout = 1e4) => (hydrate) => {\n const id = requestIdleCallback(hydrate, { timeout });\n return () => cancelIdleCallback(id);\n};\nfunction elementIsVisibleInViewport(el) {\n const { top, left, bottom, right } = el.getBoundingClientRect();\n const { innerHeight, innerWidth } = window;\n return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth);\n}\nconst hydrateOnVisible = (opts) => (hydrate, forEach) => {\n const ob = new IntersectionObserver((entries) => {\n for (const e of entries) {\n if (!e.isIntersecting) continue;\n ob.disconnect();\n hydrate();\n break;\n }\n }, opts);\n forEach((el) => {\n if (!(el instanceof Element)) return;\n if (elementIsVisibleInViewport(el)) {\n hydrate();\n ob.disconnect();\n return false;\n }\n ob.observe(el);\n });\n return () => ob.disconnect();\n};\nconst hydrateOnMediaQuery = (query) => (hydrate) => {\n if (query) {\n const mql = matchMedia(query);\n if (mql.matches) {\n hydrate();\n } else {\n mql.addEventListener(\"change\", hydrate, { once: true });\n return () => mql.removeEventListener(\"change\", hydrate);\n }\n }\n};\nconst hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {\n if (isString(interactions)) interactions = [interactions];\n let hasHydrated = false;\n const doHydrate = (e) => {\n if (!hasHydrated) {\n hasHydrated = true;\n teardown();\n hydrate();\n e.target.dispatchEvent(new e.constructor(e.type, e));\n }\n };\n const teardown = () => {\n forEach((el) => {\n for (const i of interactions) {\n el.removeEventListener(i, doHydrate);\n }\n });\n };\n forEach((el) => {\n for (const i of interactions) {\n el.addEventListener(i, doHydrate, { once: true });\n }\n });\n return teardown;\n};\nfunction forEachElement(node, cb) {\n if (isComment(node) && node.data === \"[\") {\n let depth = 1;\n let next = node.nextSibling;\n while (next) {\n if (next.nodeType === 1) {\n const result = cb(next);\n if (result === false) {\n break;\n }\n } else if (isComment(next)) {\n if (next.data === \"]\") {\n if (--depth === 0) break;\n } else if (next.data === \"[\") {\n depth++;\n }\n }\n next = next.nextSibling;\n }\n } else {\n cb(node);\n }\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n hydrate: hydrateStrategy,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn$1(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n __asyncHydrate(el, instance, hydrate) {\n const doHydrate = hydrateStrategy ? () => {\n const teardown = hydrateStrategy(\n hydrate,\n (cb) => forEachElement(el, cb)\n );\n if (teardown) {\n (instance.bum || (instance.bum = [])).push(teardown);\n }\n } : hydrate;\n if (resolvedComp) {\n doHydrate();\n } else {\n load().then(() => !instance.isUnmounted && doHydrate());\n }\n },\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n markAsyncBoundary(instance);\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n instance.parent.update();\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createVNode(loadingComponent);\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n namespace,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n invalidateMount(instance2.m);\n invalidateMount(instance2.a);\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(vnode.type);\n if (name && !filter(name)) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (cached && (!current || !isSameVNodeType(cached, current))) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n if (isSuspense(instance.subTree.type)) {\n queuePostRenderEffect(() => {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }, instance.subTree.suspense);\n } else {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return current = null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n if (vnode.type === Comment) {\n current = null;\n return vnode;\n }\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n vnode.shapeFlag &= ~256;\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n pattern.lastIndex = 0;\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= ~256;\n vnode.shapeFlag &= ~512;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => {\n if (!isInSSRComponentSetup || lifecycle === \"sp\") {\n injectHook(lifecycle, (...args) => hook(...args), target);\n }\n};\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\n \"bu\"\n);\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\n \"bum\"\n);\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\n \"sp\"\n);\nconst onRenderTriggered = createHook(\"rtg\");\nconst onRenderTracked = createHook(\"rtc\");\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n const sourceIsArray = isArray(source);\n if (sourceIsArray || isString(source)) {\n const sourceIsReactiveArray = sourceIsArray && isReactive(source);\n let needsWrap = false;\n if (sourceIsReactiveArray) {\n needsWrap = !isShallow(source);\n source = shallowReadArray(source);\n }\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(\n needsWrap ? toReactive(source[i]) : source[i],\n i,\n void 0,\n cached && cached[i]\n );\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && !Number.isInteger(source)) {\n warn$1(`The v-for range expect an integer value but got ${source}.`);\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res) res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {\n if (name !== \"default\") props.name = name;\n return openBlock(), createBlock(\n Fragment,\n null,\n [createVNode(\"slot\", props, fallback && fallback())],\n 64\n );\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn$1(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key;\n const rendered = createBlock(\n Fragment,\n {\n key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content\n (!validSlotContent && fallback ? \"_fb\" : \"\")\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child)) return true;\n if (child.type === Comment) return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i) return null;\n if (isStatefulComponent(i)) return getComponentPublicInstance(i);\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $host: (i) => i.ce,\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n if (key === \"__v_skip\") {\n return true;\n }\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance.attrs, \"get\", \"\");\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate