jquery.dgtable 0.5.48 → 0.5.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/jquery.dgtable.cjs.js +502 -230
- package/dist/jquery.dgtable.cjs.js.map +1 -1
- package/dist/jquery.dgtable.cjs.min.js +2 -2
- package/dist/jquery.dgtable.cjs.min.js.map +1 -1
- package/dist/jquery.dgtable.es6.js +501 -229
- package/dist/jquery.dgtable.es6.js.map +1 -1
- package/dist/jquery.dgtable.es6.min.js +2 -2
- package/dist/jquery.dgtable.es6.min.js.map +1 -1
- package/dist/jquery.dgtable.umd.js +2382 -1862
- package/dist/jquery.dgtable.umd.js.map +1 -1
- package/dist/jquery.dgtable.umd.min.js +2 -2
- package/dist/jquery.dgtable.umd.min.js.map +1 -1
- package/package.json +12 -11
- package/src/index.js +31 -27
- package/src/row_collection.js +6 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["node_modules/core-js/internals/global.js","node_modules/core-js/internals/fails.js","node_modules/core-js/internals/descriptors.js","node_modules/core-js/internals/object-property-is-enumerable.js","node_modules/core-js/internals/engine-v8-version.js","node_modules/core-js/internals/create-property-descriptor.js","node_modules/core-js/internals/classof-raw.js","node_modules/core-js/internals/indexed-object.js","node_modules/core-js/internals/require-object-coercible.js","node_modules/core-js/internals/to-indexed-object.js","node_modules/core-js/internals/is-object.js","node_modules/core-js/internals/get-built-in.js","node_modules/core-js/internals/engine-user-agent.js","node_modules/core-js/internals/native-symbol.js","node_modules/core-js/internals/use-symbol-as-uid.js","node_modules/core-js/internals/is-symbol.js","node_modules/core-js/internals/ordinary-to-primitive.js","node_modules/core-js/internals/set-global.js","node_modules/core-js/internals/shared-store.js","node_modules/core-js/internals/shared.js","node_modules/core-js/internals/to-object.js","node_modules/core-js/internals/has.js","node_modules/core-js/internals/uid.js","node_modules/core-js/internals/well-known-symbol.js","node_modules/core-js/internals/to-primitive.js","node_modules/core-js/internals/to-property-key.js","node_modules/core-js/internals/document-create-element.js","node_modules/core-js/internals/ie8-dom-define.js","node_modules/core-js/internals/object-get-own-property-descriptor.js","node_modules/core-js/internals/an-object.js","node_modules/core-js/internals/object-define-property.js","node_modules/core-js/internals/create-non-enumerable-property.js","node_modules/core-js/internals/inspect-source.js","node_modules/core-js/internals/internal-state.js","node_modules/core-js/internals/native-weak-map.js","node_modules/core-js/internals/shared-key.js","node_modules/core-js/internals/hidden-keys.js","node_modules/core-js/internals/redefine.js","node_modules/core-js/internals/to-integer.js","node_modules/core-js/internals/to-length.js","node_modules/core-js/internals/to-absolute-index.js","node_modules/core-js/internals/array-includes.js","node_modules/core-js/internals/object-keys-internal.js","node_modules/core-js/internals/enum-bug-keys.js","node_modules/core-js/internals/object-get-own-property-names.js","node_modules/core-js/internals/object-get-own-property-symbols.js","node_modules/core-js/internals/own-keys.js","node_modules/core-js/internals/copy-constructor-properties.js","node_modules/core-js/internals/is-forced.js","node_modules/core-js/internals/export.js","node_modules/core-js/internals/array-method-is-strict.js","node_modules/core-js/modules/es.array.index-of.js","node_modules/core-js/internals/to-string.js","node_modules/core-js/internals/string-trim.js","node_modules/core-js/internals/number-parse-float.js","node_modules/core-js/modules/es.parse-float.js","node_modules/core-js/internals/is-array.js","node_modules/core-js/internals/create-property.js","node_modules/core-js/internals/array-species-constructor.js","node_modules/core-js/internals/array-species-create.js","node_modules/core-js/internals/array-method-has-species-support.js","node_modules/core-js/modules/es.array.concat.js","node_modules/core-js/modules/es.array.slice.js","node_modules/core-js/internals/number-parse-int.js","node_modules/core-js/internals/whitespaces.js","node_modules/core-js/modules/es.parse-int.js","node_modules/core-js/internals/a-function.js","node_modules/core-js/internals/function-bind-context.js","node_modules/core-js/internals/array-iteration.js","node_modules/core-js/modules/es.array.filter.js","node_modules/core-js/modules/es.array.splice.js","node_modules/core-js/modules/es.function.name.js","node_modules/core-js/internals/regexp-flags.js","node_modules/core-js/internals/regexp-sticky-helpers.js","node_modules/core-js/internals/object-keys.js","node_modules/core-js/internals/object-create.js","node_modules/core-js/internals/object-define-properties.js","node_modules/core-js/internals/html.js","node_modules/core-js/internals/regexp-exec.js","node_modules/core-js/internals/regexp-unsupported-dot-all.js","node_modules/core-js/internals/regexp-unsupported-ncg.js","node_modules/core-js/modules/es.regexp.exec.js","node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","node_modules/core-js/internals/is-regexp.js","node_modules/core-js/internals/species-constructor.js","node_modules/core-js/internals/string-multibyte.js","node_modules/core-js/internals/advance-string-index.js","node_modules/core-js/internals/regexp-exec-abstract.js","node_modules/core-js/modules/es.string.split.js","node_modules/core-js/internals/add-to-unscopables.js","node_modules/core-js/modules/es.array.find.js","node_modules/core-js/internals/array-sort.js","node_modules/core-js/internals/engine-ff-version.js","node_modules/core-js/internals/engine-is-ie-or-edge.js","node_modules/core-js/internals/engine-webkit-version.js","node_modules/core-js/modules/es.array.sort.js","node_modules/core-js/internals/iterators-core.js","node_modules/core-js/internals/iterators.js","node_modules/core-js/internals/correct-prototype-getter.js","node_modules/core-js/internals/object-get-prototype-of.js","node_modules/core-js/internals/set-to-string-tag.js","node_modules/core-js/internals/create-iterator-constructor.js","node_modules/core-js/internals/a-possible-prototype.js","node_modules/core-js/internals/object-set-prototype-of.js","node_modules/core-js/internals/define-iterator.js","node_modules/core-js/modules/es.array.iterator.js","node_modules/core-js/internals/to-string-tag-support.js","node_modules/core-js/internals/classof.js","node_modules/core-js/internals/object-to-string.js","node_modules/core-js/modules/es.object.to-string.js","node_modules/core-js/modules/es.string.iterator.js","node_modules/core-js/modules/web.dom-collections.iterator.js","node_modules/core-js/internals/dom-iterables.js","node_modules/core-js/internals/native-url.js","node_modules/core-js/internals/an-instance.js","node_modules/core-js/internals/object-assign.js","node_modules/core-js/internals/iterator-close.js","node_modules/core-js/internals/call-with-safe-iteration-closing.js","node_modules/core-js/internals/is-array-iterator-method.js","node_modules/core-js/internals/get-iterator-method.js","node_modules/core-js/internals/array-from.js","node_modules/core-js/internals/string-punycode-to-ascii.js","node_modules/core-js/internals/redefine-all.js","node_modules/core-js/internals/get-iterator.js","node_modules/core-js/modules/web.url-search-params.js","node_modules/core-js/modules/web.url.js","node_modules/core-js/internals/get-substitution.js","node_modules/core-js/modules/es.string.replace.js","src/util.js","node_modules/core-js/modules/es.object.assign.js","src/row_collection.js","src/column_collection.js","src/css_util.js","node_modules/core-js/modules/es.regexp.to-string.js","src/SelectionHelper.js","src/by_column_filter.js","src/index.js"],"sourcesContent":["var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] < 4 ? 1 : match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var getBuiltIn = require('../internals/get-built-in');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return typeof $Symbol == 'function' && Object(it) instanceof $Symbol;\n};\n","var isObject = require('../internals/is-object');\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (pref !== 'string' && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (key, value) {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.16.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var toObject = require('../internals/to-object');\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n if (NATIVE_SYMBOL && has(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = input[TO_PRIMITIVE];\n var result;\n if (exoticToPrim !== undefined) {\n if (pref === undefined) pref = 'default';\n result = exoticToPrim.call(input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : String(key);\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var isSymbol = require('../internals/is-symbol');\n\nmodule.exports = function (argument) {\n if (isSymbol(argument)) throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var global = require('../internals/global');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseFloat = global.parseFloat;\nvar FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity;\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n var trimmedString = trim(toString(string));\n var result = $parseFloat(trimmedString);\n return result === 0 && trimmedString.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n","var $ = require('../internals/export');\nvar parseFloatImplementation = require('../internals/number-parse-float');\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\n$({ global: true, forced: parseFloat != parseFloatImplementation }, {\n parseFloat: parseFloatImplementation\n});\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","var global = require('../internals/global');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar hex = /^[+-]?0[Xx]/;\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22;\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(toString(string));\n return $parseInt(S, (radix >>> 0) || (hex.test(S) ? 16 : 10));\n} : $parseInt;\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var $ = require('../internals/export');\nvar parseIntImplementation = require('../internals/number-parse-int');\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\n$({ global: true, forced: parseInt != parseIntImplementation }, {\n parseInt: parseIntImplementation\n});\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push.call(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var fails = require('../internals/fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\nvar RE = function (s, f) {\n return RegExp(s, f);\n};\n\nexports.UNSUPPORTED_Y = fails(function () {\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n if (iframe.style) {\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n }\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = document.domain && activeXDocument ?\n NullProtoObjectViaActiveX(activeXDocument) : // old IE\n NullProtoObjectViaIFrame() ||\n NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\n/* eslint-disable regexp/no-assertion-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeExec = RegExp.prototype.exec;\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n // eslint-disable-next-line max-statements -- TODO\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = patchedExec.call(raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = str.slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str.charAt(re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","var fails = require('./fails');\n\nmodule.exports = fails(function () {\n // babel-minify transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\n var re = RegExp('.', (typeof '').charAt(0));\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('./fails');\n\nmodule.exports = fails(function () {\n // babel-minify transpiles RegExp('.', 'g') -> /./g and it causes SyntaxError\n var re = RegExp('(?<a>b)', (typeof '').charAt(5));\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$<a>c') !== 'bc';\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n redefine(String.prototype, KEY, methods[0]);\n redefine(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var toInteger = require('../internals/to-integer');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.codePointAt` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = toString(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n\n if (res.done) return res.value;\n\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? S.slice(q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","// TODO: use something more complex like timsort?\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n mergeSort(array.slice(0, middle), comparefn),\n mergeSort(array.slice(middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n var result = [];\n\n while (lindex < llength || rindex < rlength) {\n if (lindex < llength && rindex < rlength) {\n result.push(comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]);\n } else {\n result.push(lindex < llength ? left[lindex++] : right[rindex++]);\n }\n } return result;\n};\n\nmodule.exports = mergeSort;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar nativeSort = test.sort;\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aFunction(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? nativeSort.call(array) : nativeSort.call(array, comparefn);\n\n var items = [];\n var arrayLength = toLength(array.length);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) items.push(array[index]);\n }\n\n items = internalSort(items, getSortCompare(comparefn));\n itemsLength = items.length;\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) delete array[index++];\n\n return array;\n }\n});\n","'use strict';\nvar fails = require('../internals/fails');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","/* eslint-disable no-proto -- safe */\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var anObject = require('../internals/an-object');\n\nmodule.exports = function (iterator) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\n// eslint-disable-next-line max-statements -- TODO\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n output.push(delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n for (var k = base; /* no condition */; k += base) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n return output.join('');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = input.toLowerCase().replace(regexSeparators, '\\u002E').split('.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);\n }\n return encoded.join('.');\n};\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","var anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (it) {\n var iteratorMethod = getIteratorMethod(it);\n if (typeof iteratorMethod != 'function') {\n throw TypeError(String(it) + ' is not iterable');\n } return anObject(iteratorMethod.call(it));\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar $toString = require('../internals/to-string');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar nativeFetch = getBuiltIn('fetch');\nvar NativeRequest = getBuiltIn('Request');\nvar RequestPrototype = NativeRequest && NativeRequest.prototype;\nvar Headers = getBuiltIn('Headers');\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = it.replace(plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = result.replace(percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replace[match];\n};\n\nvar serialize = function (it) {\n return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function (result, query) {\n if (query) {\n var attributes = query.split('&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = attribute.split('=');\n result.push({\n key: deserialize(entry.shift()),\n value: deserialize(entry.join('='))\n });\n }\n }\n }\n};\n\nvar updateSearchParams = function (query) {\n this.entries.length = 0;\n parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n});\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var that = this;\n var entries = [];\n var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key;\n\n setInternalState(that, {\n type: URL_SEARCH_PARAMS,\n entries: entries,\n updateURL: function () { /* empty */ },\n updateSearchParams: updateSearchParams\n });\n\n if (init !== undefined) {\n if (isObject(init)) {\n iteratorMethod = getIteratorMethod(init);\n if (typeof iteratorMethod === 'function') {\n iterator = iteratorMethod.call(init);\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = entryNext.call(entryIterator)).done ||\n (second = entryNext.call(entryIterator)).done ||\n !entryNext.call(entryIterator).done\n ) throw TypeError('Expected sequence with length 2');\n entries.push({ key: $toString(first.value), value: $toString(second.value) });\n }\n } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: $toString(init[key]) });\n } else {\n parseSearchParams(\n entries,\n typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : $toString(init)\n );\n }\n }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n state.entries.push({ key: $toString(name), value: $toString(value) });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) entries.splice(index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) result.push(entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = $toString(name);\n var val = $toString(value);\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) entries.splice(index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) entries.push({ key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n var entries = state.entries;\n // Array#sort is not stable in some engines\n var slice = entries.slice();\n var entry, entriesIndex, sliceIndex;\n entries.length = 0;\n for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {\n entry = slice[sliceIndex];\n for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {\n if (entries[entriesIndex].key > entry.key) {\n entries.splice(entriesIndex, 0, entry);\n break;\n }\n }\n if (entriesIndex === sliceIndex) entries.push(entry);\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n var entries = getInternalParamsState(this).entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n result.push(serialize(entry.key) + '=' + serialize(entry.value));\n } return result.join('&');\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams`\nif (!USE_NATIVE_URL && typeof Headers == 'function') {\n var wrapRequestOptions = function (init) {\n if (isObject(init)) {\n var body = init.body;\n var headers;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headers.has('content-type')) {\n headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n return create(init, {\n body: createPropertyDescriptor(0, String(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n } return init;\n };\n\n if (typeof nativeFetch == 'function') {\n $({ global: true, enumerable: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n return nativeFetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n }\n });\n }\n\n if (typeof NativeRequest == 'function') {\n var RequestConstructor = function Request(input /* , init */) {\n anInstance(this, RequestConstructor, 'Request');\n return new NativeRequest(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n };\n\n RequestPrototype.constructor = RequestConstructor;\n RequestConstructor.prototype = RequestPrototype;\n\n $({ global: true, forced: true }, {\n Request: RequestConstructor\n });\n }\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar defineProperties = require('../internals/object-define-properties');\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar has = require('../internals/has');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar $toString = require('../internals/to-string');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n/* eslint-disable no-control-regex -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u0020]+|[\\u0000-\\u0020]+$/g;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable no-control-regex -- safe */\nvar EOF;\n\nvar parseHost = function (url, input) {\n var result, codePoints, index;\n if (input.charAt(0) == '[') {\n if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(input.slice(1, -1));\n if (!result) return INVALID_HOST;\n url.host = result;\n // opaque host\n } else if (!isSpecial(url)) {\n if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n url.host = result;\n } else {\n input = toASCII(input);\n if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n url.host = result;\n }\n};\n\nvar parseIPv4 = function (input) {\n var parts = input.split('.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.pop();\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && part.charAt(0) == '0') {\n radix = HEX_START.test(part) ? 16 : 8;\n part = part.slice(radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n number = parseInt(part, radix);\n }\n numbers.push(number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = numbers.pop();\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var char = function () {\n return input.charAt(pointer);\n };\n\n if (char() == ':') {\n if (input.charAt(1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (char()) {\n if (pieceIndex == 8) return;\n if (char() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && HEX.test(char())) {\n value = value * 16 + parseInt(char(), 16);\n pointer++;\n length++;\n }\n if (char() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (char()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (char() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!DIGIT.test(char())) return;\n while (DIGIT.test(char())) {\n number = parseInt(char(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (char() == ':') {\n pointer++;\n if (!char()) return;\n } else if (char()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n result.unshift(host % 256);\n host = floor(host / 256);\n } return result.join('.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += host[index].toString(16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n var code = codeAt(char, 0);\n return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nvar isSpecial = function (url) {\n return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && ALPHA.test(string.charAt(0))\n && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n string.length == 2 ||\n ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\nvar shortenURLsPath = function (url) {\n var path = url.path;\n var pathSize = path.length;\n if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.pop();\n }\n};\n\nvar isSingleDot = function (segment) {\n return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n segment = segment.toLowerCase();\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseURL = function (url, input, stateOverride, base) {\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, char, bufferCodePoints, failure;\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = input.replace(TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n char = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (char && ALPHA.test(char)) {\n buffer += char.toLowerCase();\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n buffer += char.toLowerCase();\n } else if (char == ':') {\n if (stateOverride && (\n (isSpecial(url) != has(specialSchemes, buffer)) ||\n (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (isSpecial(url)) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n url.path.push('');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && char == '#') {\n url.scheme = base.scheme;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (char == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (char == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (char == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n state = RELATIVE_SLASH;\n } else if (char == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.path.pop();\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (char == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (char != '/' && char != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (char == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += char;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (char == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (isSpecial(url) && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (char == '[') seenBracket = true;\n else if (char == ']') seenBracket = false;\n buffer += char;\n } break;\n\n case PORT:\n if (DIGIT.test(char)) {\n buffer += char;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url)) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (char == '/' || char == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (char == EOF) {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '?') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n url.host = base.host;\n url.path = base.path.slice();\n shortenURLsPath(url);\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (char == '/' || char == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = parseHost(url, buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += char;\n break;\n\n case PATH_START:\n if (isSpecial(url)) {\n state = PATH;\n if (char != '/' && char != '\\\\') continue;\n } else if (!stateOverride && char == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n state = PATH;\n if (char != '/') continue;\n } break;\n\n case PATH:\n if (\n char == EOF || char == '/' ||\n (char == '\\\\' && isSpecial(url)) ||\n (!stateOverride && (char == '?' || char == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n shortenURLsPath(url);\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else if (isSingleDot(buffer)) {\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n }\n url.path.push(buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n url.path.shift();\n }\n }\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(char, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n if (char == \"'\" && isSpecial(url)) url.query += '%27';\n else if (char == '#') url.query += '%23';\n else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLConstructor, 'URL');\n var base = arguments.length > 1 ? arguments[1] : undefined;\n var urlString = $toString(url);\n var state = setInternalState(that, { type: 'URL' });\n var baseState, failure;\n if (base !== undefined) {\n if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n else {\n failure = parseURL(baseState = {}, $toString(base));\n if (failure) throw TypeError(failure);\n }\n }\n failure = parseURL(state, urlString, null, baseState);\n if (failure) throw TypeError(failure);\n var searchParams = state.searchParams = new URLSearchParams();\n var searchParamsState = getInternalSearchParamsState(searchParams);\n searchParamsState.updateSearchParams(state.query);\n searchParamsState.updateURL = function () {\n state.query = String(searchParams) || null;\n };\n if (!DESCRIPTORS) {\n that.href = serializeURL.call(that);\n that.origin = getOrigin.call(that);\n that.protocol = getProtocol.call(that);\n that.username = getUsername.call(that);\n that.password = getPassword.call(that);\n that.host = getHost.call(that);\n that.hostname = getHostname.call(that);\n that.port = getPort.call(that);\n that.pathname = getPathname.call(that);\n that.search = getSearch.call(that);\n that.searchParams = getSearchParams.call(that);\n that.hash = getHash.call(that);\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (includesCredentials(url)) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n};\n\nvar getOrigin = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var port = url.port;\n if (scheme == 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !isSpecial(url)) return 'null';\n return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n var url = getInternalURLState(this);\n var host = url.host;\n var port = url.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n var host = getInternalURLState(this).host;\n return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n var port = getInternalURLState(this).port;\n return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n var url = getInternalURLState(this);\n var path = url.path;\n return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n var query = getInternalURLState(this).query;\n return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n var fragment = getInternalURLState(this).fragment;\n return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor(serializeURL, function (href) {\n var url = getInternalURLState(this);\n var urlString = $toString(href);\n var failure = parseURL(url, urlString);\n if (failure) throw TypeError(failure);\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor(getOrigin),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor(getProtocol, function (protocol) {\n var url = getInternalURLState(this);\n parseURL(url, $toString(protocol) + ':', SCHEME_START);\n }),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor(getUsername, function (username) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom($toString(username));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor(getPassword, function (password) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom($toString(password));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor(getHost, function (host) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, $toString(host), HOST);\n }),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor(getHostname, function (hostname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, $toString(hostname), HOSTNAME);\n }),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor(getPort, function (port) {\n var url = getInternalURLState(this);\n if (cannotHaveUsernamePasswordPort(url)) return;\n port = $toString(port);\n if (port == '') url.port = null;\n else parseURL(url, port, PORT);\n }),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor(getPathname, function (pathname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n url.path = [];\n parseURL(url, $toString(pathname), PATH_START);\n }),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor(getSearch, function (search) {\n var url = getInternalURLState(this);\n search = $toString(search);\n if (search == '') {\n url.query = null;\n } else {\n if ('?' == search.charAt(0)) search = search.slice(1);\n url.query = '';\n parseURL(url, search, QUERY);\n }\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor(getSearchParams),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor(getHash, function (hash) {\n var url = getInternalURLState(this);\n hash = $toString(hash);\n if (hash == '') {\n url.fragment = null;\n return;\n }\n if ('#' == hash.charAt(0)) hash = hash.slice(1);\n url.fragment = '';\n parseURL(url, hash, FRAGMENT);\n })\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n return nativeCreateObjectURL.apply(NativeURL, arguments);\n });\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n return nativeRevokeObjectURL.apply(NativeURL, arguments);\n });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","var toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar replace = ''.replace;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue === 'string' &&\n replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1 &&\n replaceValue.indexOf('$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = toString(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","'use strict';\r\n\r\nconst indexOf = Array.prototype.indexOf;\r\n\r\nexport const includes = function includes (array, item) {\r\n return indexOf.call(array, item) >= 0;\r\n};\r\n\r\nexport const find = function find (array, predicate) {\r\n for (let i = 0, len = array.length; i >= 0 && i < len; i += 1) {\r\n if (predicate(array[i], i, array))\r\n return array[i];\r\n }\r\n};\r\n\r\nexport const htmlEncode = function htmlEncode (text) {\r\n return text.replace(/&/g, \"&\")\r\n .replace(/</g, \"<\")\r\n .replace(/>/g, \">\")\r\n .replace(/'/g, \"'\")\r\n .replace(/\"/g, \""\")\r\n .replace(/\\n/g, '<br />');\r\n};\r\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\r\n\r\n// Define class RowCollection\r\nfunction RowCollection () {\r\n\r\n // Instantiate an Array. Seems like the `.length = ` of an inherited Array does not work well.\r\n // I will not use the IFRAME solution either in fear of memory leaks, and we're supporting large datasets...\r\n let collection = [];\r\n\r\n // Synthetically set the 'prototype'\r\n Object.assign(collection, RowCollection.prototype);\r\n\r\n // Call initializer\r\n collection.initialize.apply(collection, arguments);\r\n\r\n return collection;\r\n}\r\n\r\n// Inherit Array\r\nRowCollection.prototype = [];\r\n\r\nRowCollection.prototype.initialize = function (options) {\r\n\r\n options = options || {};\r\n\r\n /** @field {string} sortColumn */\r\n this.sortColumn = options.sortColumn == null ? [] : options.sortColumn;\r\n};\r\n\r\n/**\r\n * @param {Object|Object[]} rows - row or array of rows to add to this collection\r\n * @param {number?} at - position to insert rows at\r\n */\r\nRowCollection.prototype.add = function (rows, at) {\r\n let isArray = ('splice' in rows && 'length' in rows), i, len;\r\n if (isArray) {\r\n if (typeof at === 'number') {\r\n for (i = 0, len = rows.length; i < len; i++) {\r\n this.splice(at++, 0, rows[i]);\r\n }\r\n } else {\r\n for (i = 0, len = rows.length; i < len; i++) {\r\n this.push(rows[i]);\r\n }\r\n }\r\n } else {\r\n if (typeof at === 'number') {\r\n this.splice(at, 0, rows);\r\n } else {\r\n this.push(rows);\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * @param {Object|Object[]=} rows Row or array of rows to add to this collection\r\n */\r\nRowCollection.prototype.reset = function (rows) {\r\n this.length = 0;\r\n if (rows) {\r\n this.add(rows);\r\n }\r\n};\r\n\r\n/**\r\n * @param {Function} filterFunc - Filtering function\r\n * @param {Object|null} args? - Options to pass to the function\r\n * @returns {RowCollection} success result\r\n */\r\nRowCollection.prototype.filteredCollection = function (filterFunc, args) {\r\n if (filterFunc && args) {\r\n let rows = new RowCollection({ sortColumn: this.sortColumn });\r\n \r\n for (let i = 0, len = this.length, row; i < len; i++) {\r\n row = this[i];\r\n if (filterFunc(row, args)) {\r\n row['__i'] = i;\r\n rows.push(row);\r\n }\r\n }\r\n return rows;\r\n } else {\r\n return null;\r\n }\r\n};\r\n\r\n/**\r\n * @type {Function|null|undefined}\r\n */\r\nRowCollection.prototype.onComparatorRequired = null;\r\n\r\n/**\r\n * @type {Function|null|undefined}\r\n */\r\nRowCollection.prototype.onSort = null;\r\n\r\nlet nativeSort = RowCollection.prototype.sort;\r\n\r\nfunction getDefaultComparator(column, descending) {\r\n let columnName = column.column;\r\n let comparePath = column.comparePath || columnName;\r\n if (typeof comparePath === 'string') {\r\n comparePath = comparePath.split('.');\r\n }\r\n let pathLength = comparePath.length,\r\n hasPath = pathLength > 1,\r\n i;\r\n\r\n let lessVal = descending ? 1 : -1, moreVal = descending ? -1 : 1;\r\n return function(leftRow, rightRow) {\r\n let leftVal = leftRow[comparePath[0]],\r\n rightVal = rightRow[comparePath[0]];\r\n if (hasPath) {\r\n for (i = 1; i < pathLength; i++) {\r\n leftVal = leftVal && leftVal[comparePath[i]];\r\n rightVal = rightVal && rightVal[comparePath[i]];\r\n }\r\n }\r\n if (leftVal === rightVal) return 0;\r\n if (leftVal == null) return lessVal;\r\n if (rightVal == null) return moreVal;\r\n if (leftVal < rightVal) return lessVal;\r\n return moreVal;\r\n };\r\n}\r\n\r\n/**\r\n * @param {Boolean=false} silent\r\n * @returns {RowCollection} self\r\n */\r\nRowCollection.prototype.sort = function (silent) {\r\n if (this.sortColumn.length) {\r\n let comparators = [], i, comparator;\r\n\r\n for (i = 0; i < this.sortColumn.length; i++) {\r\n comparator = null;\r\n if (this.onComparatorRequired) {\r\n comparator = this.onComparatorRequired(this.sortColumn[i].column, this.sortColumn[i].descending);\r\n }\r\n if (!comparator) {\r\n comparator = getDefaultComparator(this.sortColumn[i], this.sortColumn[i].descending);\r\n }\r\n comparators.push(comparator.bind(this));\r\n }\r\n\r\n if (comparators.length === 1) {\r\n nativeSort.call(this, comparators[0]);\r\n } else {\r\n let len = comparators.length,\r\n value;\r\n\r\n comparator = function(leftRow, rightRow) {\r\n for (i = 0; i < len; i++) {\r\n value = comparators[i](leftRow, rightRow);\r\n if (value !== 0) {\r\n return value;\r\n }\r\n }\r\n return value;\r\n };\r\n\r\n nativeSort.call(this, comparator);\r\n }\r\n\r\n if (!silent) {\r\n if (this.onSort) {\r\n this.onSort();\r\n }\r\n }\r\n }\r\n return this;\r\n};\r\n\r\nexport default RowCollection;","'use strict';\r\n\r\n// Define class RowCollection\r\nfunction ColumnCollection () {\r\n\r\n // Instantiate an Array. Seems like the `.length = ` of an inherited Array does not work well.\r\n // I will not use the IFRAME solution either in fear of memory leaks, and we're supporting large datasets...\r\n let collection = [];\r\n\r\n // Synthetically set the 'prototype'\r\n Object.assign(collection, ColumnCollection.prototype);\r\n\r\n // Call initializer\r\n collection.initialize.apply(collection, arguments);\r\n\r\n return collection;\r\n}\r\n\r\n// Inherit Array\r\nColumnCollection.prototype = [];\r\n\r\nColumnCollection.prototype.initialize = function () {\r\n\r\n};\r\n\r\n/**\r\n * Get the column by this name\r\n * @param {String} column column name\r\n * @returns {Object} the column object\r\n */\r\nColumnCollection.prototype.get = function (column) {\r\n for (let i = 0, len = this.length; i < len; i++) {\r\n if (this[i].name == column) {\r\n return this[i];\r\n }\r\n }\r\n return null;\r\n};\r\n\r\n/**\r\n * Get the index of the column by this name\r\n * @param {String} column column name\r\n * @returns {int} the index of this column\r\n */\r\nColumnCollection.prototype.indexOf = function (column) {\r\n for (let i = 0, len = this.length; i < len; i++) {\r\n if (this[i].name == column) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n};\r\n\r\n/**\r\n * Get the column by the specified order\r\n * @param {Number} order the column's order\r\n * @returns {Object} the column object\r\n */\r\nColumnCollection.prototype.getByOrder = function (order) {\r\n for (let i = 0, len = this.length; i < len; i++) {\r\n if (this[i].order == order) {\r\n return this[i];\r\n }\r\n }\r\n return null;\r\n};\r\n\r\n/**\r\n * Normalize order\r\n * @returns {ColumnCollection} self\r\n */\r\nColumnCollection.prototype.normalizeOrder = function () {\r\n let ordered = [], i;\r\n for (i = 0; i < this.length; i++) {\r\n ordered.push(this[i]);\r\n }\r\n ordered.sort(function(col1, col2){ return col1.order < col2.order ? -1 : (col1.order > col2.order ? 1 : 0); });\r\n for (i = 0; i < ordered.length; i++) {\r\n ordered[i].order = i;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Get the array of columns, order by the order property\r\n * @returns {Array<Object>} ordered array of columns\r\n */\r\nColumnCollection.prototype.getColumns = function () {\r\n let cols = [];\r\n for (let i = 0, column; i < this.length; i++) {\r\n column = this[i];\r\n cols.push(column);\r\n }\r\n cols.sort((col1, col2) => col1.order < col2.order ? -1 : (col1.order > col2.order ? 1 : 0));\r\n return cols;\r\n};\r\n\r\n/**\r\n * Get the array of visible columns, order by the order property\r\n * @returns {Array<Object>} ordered array of visible columns\r\n */\r\nColumnCollection.prototype.getVisibleColumns = function () {\r\n let cols = [];\r\n for (let i = 0, column; i < this.length; i++) {\r\n column = this[i];\r\n if (column.visible) {\r\n cols.push(column);\r\n }\r\n }\r\n cols.sort((col1, col2) => col1.order < col2.order ? -1 : (col1.order > col2.order ? 1 : 0));\r\n return cols;\r\n};\r\n\r\n/**\r\n * @returns {int} maximum order currently in the array\r\n */\r\nColumnCollection.prototype.getMaxOrder = function () {\r\n let order = 0;\r\n for (let i = 0, column; i < this.length; i++) {\r\n column = this[i];\r\n if (column.order > order) {\r\n order = column.order;\r\n }\r\n }\r\n return order;\r\n};\r\n\r\n/**\r\n * Move a column to a new spot in the collection\r\n * @param {Object} src the column to move\r\n * @param {Object} dest the destination column\r\n * @returns {ColumnCollection} self\r\n */\r\nColumnCollection.prototype.moveColumn = function (src, dest) {\r\n if (src && dest) {\r\n let srcOrder = src.order, destOrder = dest.order, i, col;\r\n if (srcOrder < destOrder) {\r\n for (i = srcOrder + 1; i <= destOrder; i++) {\r\n col = this.getByOrder(i);\r\n col.order--;\r\n }\r\n } else {\r\n for (i = srcOrder - 1; i >= destOrder; i--) {\r\n col = this.getByOrder(i);\r\n col.order++;\r\n }\r\n }\r\n src.order = destOrder;\r\n }\r\n return this;\r\n};\r\n\r\nexport default ColumnCollection;","/* eslint-env browser */\r\n\r\n'use strict';\r\n\r\nconst CssUtil = {};\r\n\r\nlet _isTransformSupported = null;\r\n\r\nCssUtil.getSupportedTransform = () => {\r\n if (_isTransformSupported === null) {\r\n let prefixes = ['transform', 'WebkitTransform', 'MozTransform', 'OTransform', 'msTransform'];\r\n let div = document.createElement('div');\r\n _isTransformSupported = false;\r\n for (let item of prefixes) {\r\n if (div && div.style[item] !== undefined) {\r\n _isTransformSupported = item;\r\n break;\r\n }\r\n }\r\n }\r\n return _isTransformSupported;\r\n};\r\n\r\nexport default CssUtil;\r\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = $toString(R.source);\n var rf = R.flags;\n var f = $toString(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","/* eslint-env browser */\r\n\r\n'use strict';\r\n\r\n// saveSelection/restoreSelection courtesy of Tim Down, with my improvements\r\n// https://stackoverflow.com/questions/13949059/persisting-the-changes-of-range-objects-after-selection-in-html/13950376#13950376\r\n\r\nfunction isChildOf(child, parent) {\r\n while ((child = child.parentNode) && child !== parent);\r\n return !!child;\r\n}\r\n\r\nclass SelectionHelper {\r\n\r\n static saveSelection(el) {\r\n let range = window.getSelection().getRangeAt(0);\r\n\r\n if (el !== range.commonAncestorContainer && !isChildOf(range.commonAncestorContainer, el))\r\n return null;\r\n\r\n let preSelectionRange = range.cloneRange();\r\n preSelectionRange.selectNodeContents(el);\r\n preSelectionRange.setEnd(range.startContainer, range.startOffset);\r\n let start = preSelectionRange.toString().length;\r\n\r\n return {\r\n start: start,\r\n end: start + range.toString().length,\r\n };\r\n }\r\n\r\n static restoreSelection(el, savedSel) {\r\n let charIndex = 0;\r\n let nodeStack = [el], node, foundStart = false, stop = false;\r\n let range = document.createRange();\r\n range.setStart(el, 0);\r\n range.collapse(true);\r\n\r\n while (!stop && (node = nodeStack.pop())) {\r\n if (node.nodeType === 3) {\r\n let nextCharIndex = charIndex + node.length;\r\n if (!foundStart && savedSel.start >= charIndex && savedSel.start <= nextCharIndex) {\r\n range.setStart(node, savedSel.start - charIndex);\r\n foundStart = true;\r\n }\r\n if (foundStart && savedSel.end >= charIndex && savedSel.end <= nextCharIndex) {\r\n range.setEnd(node, savedSel.end - charIndex);\r\n stop = true;\r\n }\r\n charIndex = nextCharIndex;\r\n } else {\r\n let i = node.childNodes.length;\r\n while (i--) {\r\n nodeStack.push(node.childNodes[i]);\r\n }\r\n }\r\n }\r\n\r\n let sel = window.getSelection();\r\n sel.removeAllRanges();\r\n sel.addRange(range);\r\n }\r\n}\r\n\r\nexport default SelectionHelper;\r\n","'use strict';\r\n\r\nfunction ByColumnFilter (row, args) {\r\n \r\n let column = args.column;\r\n let keyword = args.keyword == null ? '' : args.keyword.toString();\r\n \r\n if (!keyword || !column) return true;\r\n\r\n let actualVal = row[column];\r\n if (actualVal == null) {\r\n return false;\r\n }\r\n \r\n actualVal = actualVal.toString();\r\n \r\n if (!args.caseSensitive) {\r\n actualVal = actualVal.toLowerCase();\r\n keyword = keyword.toLowerCase();\r\n }\r\n \r\n return actualVal.indexOf(keyword) !== -1;\r\n}\r\n\r\nexport default ByColumnFilter;","/* eslint-env browser */\r\n\r\n'use strict';\r\n\r\nimport jQuery from 'jquery';\r\nimport { find, htmlEncode, includes } from './util';\r\nimport RowCollection from './row_collection';\r\nimport ColumnCollection from './column_collection';\r\nimport CssUtil from './css_util';\r\nimport SelectionHelper from './SelectionHelper';\r\nimport {\r\n getScrollHorz,\r\n setScrollHorz,\r\n} from '@danielgindi/dom-utils/lib/ScrollHelper';\r\nimport {\r\n getElementWidth,\r\n getElementHeight,\r\n setElementWidth,\r\n} from '@danielgindi/dom-utils/lib/Css';\r\nimport ByColumnFilter from './by_column_filter';\r\n\r\nconst nativeIndexOf = Array.prototype.indexOf;\r\nconst $ = jQuery;\r\n\r\nlet userAgent = navigator.userAgent;\r\nlet ieVersion = userAgent.indexOf('MSIE ') !== -1 ? parseFloat(userAgent.substr(userAgent.indexOf('MSIE ') + 5)) : null;\r\nlet hasIeDragAndDropBug = ieVersion && ieVersion < 10;\r\nlet createElement = document.createElement.bind(document);\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\n\r\nfunction webkitRenderBugfix(el) {\r\n // BUGFIX: WebKit has a bug where it does not relayout, and this affects us because scrollbars\r\n // are still calculated even though they are not there yet. This is the last resort.\r\n let oldDisplay = el.style.display;\r\n el.style.display = 'none';\r\n //noinspection BadExpressionStatementJS\r\n el.offsetHeight; // No need to store this anywhere, the reference is enough\r\n el.style.display = oldDisplay;\r\n return el;\r\n}\r\n\r\nfunction relativizeElement($el) {\r\n if (!includes(['relative', 'absolute', 'fixed'], $el.css('position'))) {\r\n $el.css('position', 'relative');\r\n }\r\n}\r\n\r\nconst isInputElementEvent = event => /^(?:INPUT|TEXTAREA|BUTTON|SELECT)$/.test(event.target.tagName);\r\n\r\n/** @class DGTable */\r\nlet DGTable = function DGTable () {\r\n if (!(this instanceof DGTable)) {\r\n // Allow constructing without `new`\r\n return new (Function.prototype.bind.apply(\r\n DGTable,\r\n [DGTable].concat(Array.prototype.slice.call(arguments, 0))));\r\n }\r\n\r\n this.initialize.apply(this, arguments);\r\n};\r\n\r\n/**\r\n * @public\r\n * @expose\r\n * @type {string}\r\n */\r\nDGTable.VERSION = '@@VERSION';\r\n\r\n/**\r\n * @public\r\n * @expose\r\n * @type {string}\r\n */\r\nDGTable.prototype.VERSION = DGTable.VERSION;\r\n\r\n/**\r\n * @constructs\r\n * @param {DGTable.Options?} options - initialization options\r\n * @returns {DGTable}\r\n */\r\nDGTable.prototype.initialize = function (options) {\r\n let that = this;\r\n\r\n options = options || {};\r\n\r\n /**\r\n * @private\r\n * @type {DGTable.Options}\r\n * */\r\n let o = that.o = {};\r\n\r\n /**\r\n * @private\r\n * This is for encapsulating private data */\r\n let p = that.p = {};\r\n\r\n /** This is for encapsulating event callback */\r\n p.events = {};\r\n\r\n /**\r\n * @public\r\n * @expose\r\n * */\r\n that.el = (options.el && options.el instanceof Element) ? options.el : document.createElement('div');\r\n\r\n /**\r\n * @public\r\n * @expose\r\n * */\r\n let $el = that.$el = $(that.el);\r\n\r\n if (that.el !== options.el) {\r\n $el.addClass(options.className || 'dgtable-wrapper');\r\n }\r\n\r\n // Set control data\r\n $el\r\n .data('control', that)\r\n .data('dgtable', that);\r\n\r\n // For jQuery.UI or jquery.removeevent\r\n $el.on('remove', function () {\r\n that.destroy();\r\n });\r\n\r\n p.onMouseMoveResizeAreaBound = this._onMouseMoveResizeArea.bind(this);\r\n p.onEndDragColumnHeaderBound = this._onEndDragColumnHeader.bind(this);\r\n p.onTableScrolledHorizontallyBound = this._onTableScrolledHorizontally.bind(this);\r\n\r\n this.$el.on('dragend', p.onEndDragColumnHeaderBound);\r\n\r\n /**\r\n * @private\r\n * @field {Boolean} _tableSkeletonNeedsRendering */\r\n p.tableSkeletonNeedsRendering = true;\r\n\r\n /**\r\n * @private\r\n * @field {Boolean} virtualTable */\r\n o.virtualTable = options.virtualTable === undefined ? true : !!options.virtualTable;\r\n\r\n /**\r\n * @private\r\n * @field {Number} rowsBufferSize */\r\n o.rowsBufferSize = options.rowsBufferSize || 3;\r\n\r\n /**\r\n * @private\r\n * @field {Number} minColumnWidth */\r\n o.minColumnWidth = Math.max(options.minColumnWidth || 35, 0);\r\n\r\n /**\r\n * @private\r\n * @field {Number} resizeAreaWidth */\r\n o.resizeAreaWidth = options.resizeAreaWidth || 8;\r\n\r\n /**\r\n * @private\r\n * @field {Boolean} resizableColumns */\r\n o.resizableColumns = options.resizableColumns === undefined ? true : !!options.resizableColumns;\r\n\r\n /**\r\n * @private\r\n * @field {Boolean} movableColumns */\r\n o.movableColumns = options.movableColumns === undefined ? true : !!options.movableColumns;\r\n\r\n /**\r\n * @private\r\n * @field {Number} sortableColumns */\r\n o.sortableColumns = options.sortableColumns === undefined ? 1 : (parseInt(options.sortableColumns, 10) || 1);\r\n\r\n /**\r\n * @private\r\n * @field {Boolean} adjustColumnWidthForSortArrow */\r\n o.adjustColumnWidthForSortArrow = options.adjustColumnWidthForSortArrow === undefined ? true : !!options.adjustColumnWidthForSortArrow;\r\n\r\n /**\r\n * @private\r\n * @field {Boolean} convertColumnWidthsToRelative */\r\n o.convertColumnWidthsToRelative = options.convertColumnWidthsToRelative === undefined ? false : !!options.convertColumnWidthsToRelative;\r\n\r\n /**\r\n * @private\r\n * @field {Boolean} autoFillTableWidth */\r\n o.autoFillTableWidth = options.autoFillTableWidth === undefined ? false : !!options.autoFillTableWidth;\r\n\r\n /**\r\n * @private\r\n * @field {String} cellClasses */\r\n o.cellClasses = options.cellClasses === undefined ? '' : options.cellClasses;\r\n\r\n /**\r\n * @private\r\n * @field {String} resizerClassName */\r\n o.resizerClassName = options.resizerClassName === undefined ? 'dgtable-resize' : options.resizerClassName;\r\n\r\n /**\r\n * @private\r\n * @field {String} tableClassName */\r\n o.tableClassName = options.tableClassName === undefined ? 'dgtable' : options.tableClassName;\r\n\r\n /**\r\n * @private\r\n * @field {Boolean} allowCellPreview */\r\n o.allowCellPreview = options.allowCellPreview === undefined ? true : options.allowCellPreview;\r\n\r\n /**\r\n * @private\r\n * @field {Boolean} allowHeaderCellPreview */\r\n o.allowHeaderCellPreview = options.allowHeaderCellPreview === undefined ? true : options.allowHeaderCellPreview;\r\n\r\n /**\r\n * @private\r\n * @field {String} cellPreviewClassName */\r\n o.cellPreviewClassName = options.cellPreviewClassName === undefined ? 'dgtable-cell-preview' : options.cellPreviewClassName;\r\n\r\n /**\r\n * @private\r\n * @field {Boolean} cellPreviewAutoBackground */\r\n o.cellPreviewAutoBackground = options.cellPreviewAutoBackground === undefined ? true : options.cellPreviewAutoBackground;\r\n\r\n /**\r\n * @private\r\n * @field {Function(String,Boolean)Function(a,b)Boolean} onComparatorRequired */\r\n o.onComparatorRequired = options.onComparatorRequired === undefined ? null : options.onComparatorRequired;\r\n if (!o.onComparatorRequired && typeof options['comparatorCallback'] === 'function') {\r\n o.onComparatorRequired = options['comparatorCallback'];\r\n }\r\n\r\n /**\r\n * @private\r\n * @field {Boolean} width */\r\n o.width = options.width === undefined ? DGTable.Width.NONE : options.width;\r\n\r\n /**\r\n * @private\r\n * @field {Boolean} relativeWidthGrowsToFillWidth */\r\n o.relativeWidthGrowsToFillWidth = options.relativeWidthGrowsToFillWidth === undefined ? true : !!options.relativeWidthGrowsToFillWidth;\r\n\r\n /**\r\n * @private\r\n * @field {Boolean} relativeWidthShrinksToFillWidth */\r\n o.relativeWidthShrinksToFillWidth = options.relativeWidthShrinksToFillWidth === undefined ? false : !!options.relativeWidthShrinksToFillWidth;\r\n\r\n this.setCellFormatter(options.cellFormatter);\r\n this.setHeaderCellFormatter(options.headerCellFormatter);\r\n this.setFilter(options.filter);\r\n\r\n /** @private\r\n * @field {Number} height */\r\n o.height = options.height;\r\n\r\n // Prepare columns\r\n that.setColumns(options.columns || [], false);\r\n\r\n // Set sorting columns\r\n let sortColumns = [];\r\n\r\n if (options.sortColumn) {\r\n\r\n let tmpSortColumns = options.sortColumn;\r\n\r\n if (tmpSortColumns && typeof tmpSortColumns !== 'object') {\r\n tmpSortColumns = [tmpSortColumns];\r\n }\r\n\r\n if (tmpSortColumns instanceof Array ||\r\n typeof tmpSortColumns === 'object') {\r\n\r\n for (let i = 0, len = tmpSortColumns.length; i < len; i++) {\r\n let sortColumn = tmpSortColumns[i];\r\n if (typeof sortColumn === 'string') {\r\n sortColumn = { column: sortColumn, descending: false };\r\n }\r\n let col = p.columns.get(sortColumn.column);\r\n if (!col) continue;\r\n\r\n sortColumns.push({\r\n column: sortColumn.column,\r\n comparePath: col.comparePath || col.dataPath,\r\n descending: sortColumn.descending,\r\n });\r\n }\r\n }\r\n }\r\n\r\n /** @field {RowCollection} _rows */\r\n p.rows = new RowCollection({ sortColumn: sortColumns });\r\n p.rows.onComparatorRequired = function(column, descending){\r\n if (o.onComparatorRequired) {\r\n return o.onComparatorRequired(column, descending);\r\n }\r\n };\r\n\r\n /** @private\r\n * @field {RowCollection} _filteredRows */\r\n p.filteredRows = null;\r\n\r\n /*\r\n Setup hover mechanism.\r\n We need this to be high performance, as there may be MANY cells to call this on, on creation and destruction.\r\n Using native events to spare the overhead of jQuery's event binding, and even just the creation of the jQuery collection object.\r\n */\r\n\r\n /**\r\n * @param {MouseEvent} evt\r\n * @this {HTMLElement}\r\n * */\r\n let hoverMouseOverHandler = function (evt) {\r\n evt = evt || event;\r\n let relatedTarget = evt.fromElement || evt.relatedTarget;\r\n if (relatedTarget === this || $.contains(this, relatedTarget)) return;\r\n if (this['__previewCell'] && (relatedTarget === this['__previewCell'] || $.contains(this['__previewCell'], relatedTarget))) return;\r\n that._cellMouseOverEvent.call(that, this);\r\n };\r\n\r\n /**\r\n * @param {MouseEvent} evt\r\n * @this {HTMLElement}\r\n * */\r\n let hoverMouseOutHandler = function (evt) {\r\n evt = evt || event;\r\n let relatedTarget = evt.toElement || evt.relatedTarget;\r\n if (relatedTarget === this || $.contains(this, relatedTarget)) return;\r\n if (this['__previewCell'] && (relatedTarget === this['__previewCell'] || $.contains(this['__previewCell'], relatedTarget))) return;\r\n that._cellMouseOutEvent.call(that, this);\r\n };\r\n\r\n if ('addEventListener' in window) {\r\n\r\n /**\r\n * @param {HTMLElement} el cell or header-cell\r\n * */\r\n p._bindCellHoverIn = function (el) {\r\n if (!el['__hoverIn']) {\r\n el.addEventListener('mouseover', el['__hoverIn'] = hoverMouseOverHandler.bind(el));\r\n }\r\n };\r\n\r\n /**\r\n * @param {HTMLElement} el cell or header-cell\r\n * */\r\n p._unbindCellHoverIn = function (el) {\r\n if (el['__hoverIn']) {\r\n el.removeEventListener('mouseover', el['__hoverIn']);\r\n el['__hoverIn'] = null;\r\n }\r\n };\r\n\r\n /**\r\n * @param {HTMLElement} el cell or header-cell\r\n * @returns {DGTable} self\r\n * */\r\n p._bindCellHoverOut = function (el) {\r\n if (!el['__hoverOut']) {\r\n el.addEventListener('mouseout', el['__hoverOut'] = hoverMouseOutHandler.bind(el['__cell'] || el));\r\n }\r\n return this;\r\n };\r\n\r\n /**\r\n * @param {HTMLElement} el cell or header-cell\r\n * @returns {DGTable} self\r\n * */\r\n p._unbindCellHoverOut = function (el) {\r\n if (el['__hoverOut']) {\r\n el.removeEventListener('mouseout', el['__hoverOut']);\r\n el['__hoverOut'] = null;\r\n }\r\n return this;\r\n };\r\n\r\n } else {\r\n\r\n /**\r\n * @param {HTMLElement} el cell or header-cell\r\n * */\r\n p._bindCellHoverIn = function (el) {\r\n if (!el['__hoverIn']) {\r\n el.attachEvent('mouseover', el['__hoverIn'] = hoverMouseOverHandler.bind(el));\r\n }\r\n };\r\n\r\n /**\r\n * @param {HTMLElement} el cell or header-cell\r\n * */\r\n p._unbindCellHoverIn = function (el) {\r\n if (el['__hoverIn']) {\r\n el.detachEvent('mouseover', el['__hoverIn']);\r\n el['__hoverIn'] = null;\r\n }\r\n };\r\n\r\n /**\r\n * @param {HTMLElement} el cell or header-cell\r\n * */\r\n p._bindCellHoverOut = function (el) {\r\n if (!el['__hoverOut']) {\r\n el.attachEvent('mouseout', el['__hoverOut'] = hoverMouseOutHandler.bind(el['__cell'] || el));\r\n }\r\n };\r\n\r\n /**\r\n * @param {HTMLElement} el cell or header-cell\r\n * @returns {DGTable} self\r\n * */\r\n p._unbindCellHoverOut = function (el) {\r\n if (el['__hoverOut']) {\r\n el.detachEvent('mouseout', el['__hoverOut']);\r\n el['__hoverOut'] = null;\r\n }\r\n return this;\r\n };\r\n\r\n }\r\n};\r\n\r\n/**\r\n * Add an event listener\r\n * @public\r\n * @expose\r\n * @param {String} eventName\r\n * @param {Function} callback\r\n * @returns {DGTable}\r\n */\r\nDGTable.prototype.on = function (eventName, callback) {\r\n let that = this, events = that.p.events;\r\n\r\n if (typeof callback !== 'function')\r\n return that;\r\n\r\n if (!hasOwnProperty.call(events, eventName))\r\n events[eventName] = [];\r\n\r\n events[eventName].push({\r\n cb: callback,\r\n once: false,\r\n });\r\n\r\n return that;\r\n};\r\n\r\n/**\r\n * Add an event listener for a one shot\r\n * @public\r\n * @expose\r\n * @param {String} eventName\r\n * @param {Function} callback\r\n * @returns {DGTable}\r\n */\r\nDGTable.prototype.once = function (eventName, callback) {\r\n let that = this, events = that.p.events;\r\n\r\n if (typeof callback !== 'function')\r\n return that;\r\n\r\n if (!hasOwnProperty.call(events, eventName))\r\n events[eventName] = [];\r\n\r\n events[eventName].push({\r\n cb: callback,\r\n once: true,\r\n });\r\n\r\n return that;\r\n};\r\n\r\n/**\r\n * Remove an event listener\r\n * @public\r\n * @expose\r\n * @param {String} eventName\r\n * @param {Function} callback\r\n * @returns {DGTable}\r\n */\r\nDGTable.prototype.off = function (eventName, callback) {\r\n let events = this.p.events;\r\n\r\n if (!hasOwnProperty.call(events, eventName))\r\n return this;\r\n\r\n let callbacks = events[eventName];\r\n for (let i = 0; i < callbacks.length; i++) {\r\n let item = callbacks[i];\r\n if (callback && item.cb !== callback) continue;\r\n callbacks.splice(i--, 1);\r\n }\r\n\r\n return this;\r\n};\r\n\r\nDGTable.prototype.trigger = function (eventName) {\r\n let events = this.p.events;\r\n\r\n if (hasOwnProperty.call(events, eventName)) {\r\n let callbacks = events[eventName];\r\n for (let i = 0; i < callbacks.length; i++) {\r\n let item = callbacks[i];\r\n if (item.once) {\r\n callbacks.splice(i--, 1);\r\n }\r\n item.cb.apply(this, Array.prototype.slice.call(arguments, 1));\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Detect column width mode\r\n * @private\r\n * @param {Number|String} width\r\n * @param {Number} minWidth\r\n * @returns {Object} parsed width\r\n */\r\nDGTable.prototype._parseColumnWidth = function (width, minWidth) {\r\n\r\n let widthSize = Math.max(0, parseFloat(width)),\r\n widthMode = ColumnWidthMode.AUTO; // Default\r\n\r\n if (widthSize > 0) {\r\n // Well, it's sure is not AUTO, as we have a value\r\n\r\n if (width === widthSize + '%') {\r\n // It's a percentage!\r\n\r\n widthMode = ColumnWidthMode.RELATIVE;\r\n widthSize /= 100;\r\n } else if (widthSize > 0 && widthSize < 1) {\r\n // It's a decimal value, as a relative value!\r\n\r\n widthMode = ColumnWidthMode.RELATIVE;\r\n } else {\r\n // It's an absolute size!\r\n\r\n if (widthSize < minWidth) {\r\n widthSize = minWidth;\r\n }\r\n widthMode = ColumnWidthMode.ABSOLUTE;\r\n }\r\n }\r\n\r\n return { width: widthSize, mode: widthMode };\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {COLUMN_OPTIONS} columnData\r\n */\r\nDGTable.prototype._initColumnFromData = function(columnData) {\r\n\r\n let parsedWidth = this._parseColumnWidth(columnData.width, columnData.ignoreMin ? 0 : this.o.minColumnWidth);\r\n\r\n let col = {\r\n name: columnData.name,\r\n label: columnData.label === undefined ? columnData.name : columnData.label,\r\n width: parsedWidth.width,\r\n widthMode: parsedWidth.mode,\r\n resizable: columnData.resizable === undefined ? true : columnData.resizable,\r\n sortable: columnData.sortable === undefined ? true : columnData.sortable,\r\n movable: columnData.movable === undefined ? true : columnData.movable,\r\n visible: columnData.visible === undefined ? true : columnData.visible,\r\n cellClasses: columnData.cellClasses === undefined ? this.o.cellClasses : columnData.cellClasses,\r\n ignoreMin: columnData.ignoreMin === undefined ? false : !!columnData.ignoreMin,\r\n };\r\n\r\n col.dataPath = columnData.dataPath === undefined ? col.name : columnData.dataPath;\r\n col.comparePath = columnData.comparePath === undefined ? col.dataPath : columnData.comparePath;\r\n\r\n if (typeof col.dataPath === 'string') {\r\n col.dataPath = col.dataPath.split('.');\r\n }\r\n if (typeof col.comparePath === 'string') {\r\n col.comparePath = col.comparePath.split('.');\r\n }\r\n\r\n return col;\r\n};\r\n\r\n/**\r\n * Destroy, releasing all memory, events and DOM elements\r\n * @public\r\n * @expose\r\n */\r\nDGTable.prototype.close = DGTable.prototype.remove = DGTable.prototype.destroy = function () {\r\n\r\n let that = this,\r\n p = that.p || {},\r\n $el = that.$el;\r\n\r\n if (that.__removed) {\r\n return that;\r\n }\r\n\r\n if (p.$resizer) {\r\n p.$resizer.remove();\r\n p.$resizer = null;\r\n }\r\n\r\n if (p.$tbody) {\r\n let trs = p.$tbody[0].childNodes;\r\n for (let i = 0, len = trs.length; i < len; i++) {\r\n that.trigger('rowdestroy', trs[i]);\r\n }\r\n }\r\n\r\n // Using quotes for __super__ because Google Closure Compiler has a bug...\r\n\r\n this._destroyHeaderCells()._unbindCellEventsForTable();\r\n if (p.$table) {\r\n p.$table.empty();\r\n }\r\n if (p.$tbody) {\r\n p.$tbody.empty();\r\n }\r\n\r\n if (p.workerListeners) {\r\n for (let j = 0; j < p.workerListeners.length; j++) {\r\n let worker = p.workerListeners[j];\r\n worker.worker.removeEventListener('message', worker.listener, false);\r\n }\r\n p.workerListeners.length = 0;\r\n }\r\n\r\n p.rows.length = p.columns.length = 0;\r\n\r\n if (p._deferredRender) {\r\n clearTimeout(p._deferredRender);\r\n }\r\n\r\n // Cleanup\r\n for (let prop in that) {\r\n if (hasOwnProperty.call(that, prop)) {\r\n that[prop] = null;\r\n }\r\n }\r\n\r\n that.__removed = true;\r\n\r\n if ($el) {\r\n $el.remove();\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * @private\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype._unbindCellEventsForTable = function() {\r\n const p = this.p;\r\n\r\n if (p.headerRow) {\r\n for (let i = 0, rows = p.headerRow.childNodes, rowCount = rows.length; i < rowCount; i++) {\r\n let rowToClean = rows[i];\r\n for (let j = 0, cells = rowToClean.childNodes, cellCount = cells.length; j < cellCount; j++) {\r\n p._unbindCellHoverIn(cells[j]);\r\n }\r\n }\r\n }\r\n\r\n if (p.tbody) {\r\n for (let i = 0, rows = p.tbody.childNodes, rowCount = rows.length; i < rowCount; i++) {\r\n this._unbindCellEventsForRow(rows[i]);\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {HTMLElement} rowToClean\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype._unbindCellEventsForRow = function(rowToClean) {\r\n const p = this.p;\r\n for (let i = 0, cells = rowToClean.childNodes, cellCount = cells.length; i < cellCount; i++) {\r\n p._unbindCellHoverIn(cells[i]);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * @public\r\n * @expose\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.render = function () {\r\n const o = this.o, p = this.p;\r\n\r\n if (!this.el.offsetParent) {\r\n if (!p._deferredRender) {\r\n p._deferredRender = setTimeout(() => {\r\n p._deferredRender = null;\r\n if (!this.__removed && this.el.offsetParent) {\r\n this.render();\r\n }\r\n });\r\n }\r\n\r\n return this;\r\n }\r\n\r\n let renderedRows, rowCount;\r\n\r\n if (p.tableSkeletonNeedsRendering === true) {\r\n p.tableSkeletonNeedsRendering = false;\r\n\r\n if (o.width === DGTable.Width.AUTO) {\r\n // We need to do this to return to the specified widths instead. The arrows added to the column widths...\r\n this._clearSortArrows();\r\n }\r\n\r\n let lastScrollTop = p.table && p.table.parentNode ? p.table.scrollTop : NaN,\r\n lastScrollHorz = p.table && p.table.parentNode ? getScrollHorz(p.table) : NaN;\r\n\r\n this._renderSkeletonBase()\r\n ._renderSkeletonBody()\r\n .tableWidthChanged(true, false) // Take this chance to calculate required column widths\r\n ._renderSkeletonHeaderCells();\r\n\r\n if (!o.virtualTable) {\r\n let rows = p.filteredRows || p.rows;\r\n rowCount = rows.length;\r\n renderedRows = this.renderRows(0, rowCount - 1);\r\n p.$tbody.html('').append(renderedRows);\r\n }\r\n\r\n this._updateLastCellWidthFromScrollbar(true);\r\n\r\n this._updateTableWidth(true);\r\n\r\n // Show sort arrows\r\n for (let i = 0; i < p.rows.sortColumn.length; i++) {\r\n this._showSortArrow(p.rows.sortColumn[i].column, p.rows.sortColumn[i].descending);\r\n }\r\n if (o.adjustColumnWidthForSortArrow && p.rows.sortColumn.length) {\r\n this.tableWidthChanged(true);\r\n } else if (!o.virtualTable) {\r\n this.tableWidthChanged();\r\n }\r\n\r\n if (!isNaN(lastScrollTop))\r\n p.table.scrollTop = lastScrollTop;\r\n\r\n if (!isNaN(lastScrollHorz)) {\r\n setScrollHorz(p.table, lastScrollHorz);\r\n setScrollHorz(p.header, lastScrollHorz);\r\n }\r\n\r\n this.trigger('renderskeleton');\r\n\r\n if (o.virtualTable) {\r\n p.$table.on('scroll', this._onVirtualTableScrolled.bind(this));\r\n this.render();\r\n }\r\n\r\n } else if (o.virtualTable) {\r\n rowCount = (p.filteredRows || p.rows).length;\r\n let scrollTop = p.table.scrollTop;\r\n let firstVisible = Math.floor((scrollTop - p.virtualRowHeightFirst) / p.virtualRowHeight) + 1 - o.rowsBufferSize;\r\n let lastVisible = Math.ceil(((scrollTop - p.virtualRowHeightFirst + p.visibleHeight) / p.virtualRowHeight)) + o.rowsBufferSize;\r\n if (firstVisible < 0) firstVisible = 0;\r\n if (lastVisible >= rowCount) {\r\n lastVisible = rowCount - 1;\r\n }\r\n\r\n let oldFirstVisible = -1, oldLastVisible = -1;\r\n let tbodyChildNodes = p.tbody.childNodes;\r\n if (tbodyChildNodes.length) {\r\n oldFirstVisible = tbodyChildNodes[0]['rowIndex'];\r\n oldLastVisible = tbodyChildNodes[tbodyChildNodes.length - 1]['rowIndex'];\r\n }\r\n\r\n let countToRemove;\r\n\r\n if (oldFirstVisible !== -1 && oldFirstVisible < firstVisible) {\r\n countToRemove = Math.min(oldLastVisible + 1, firstVisible) - oldFirstVisible;\r\n for (let i = 0; i < countToRemove; i++) {\r\n this.trigger('rowdestroy', tbodyChildNodes[0]);\r\n this._unbindCellEventsForRow(tbodyChildNodes[0]);\r\n p.tbody.removeChild(tbodyChildNodes[0]);\r\n }\r\n oldFirstVisible += countToRemove;\r\n if (oldFirstVisible > oldLastVisible) {\r\n oldFirstVisible = oldLastVisible = -1;\r\n }\r\n } else if (oldLastVisible !== -1 && oldLastVisible > lastVisible) {\r\n countToRemove = oldLastVisible - Math.max(oldFirstVisible - 1, lastVisible);\r\n for (let i = 0; i < countToRemove; i++) {\r\n this.trigger('rowdestroy', tbodyChildNodes[tbodyChildNodes.length - 1]);\r\n this._unbindCellEventsForRow(tbodyChildNodes[tbodyChildNodes.length - 1]);\r\n p.tbody.removeChild(tbodyChildNodes[tbodyChildNodes.length - 1]);\r\n }\r\n if (oldLastVisible < oldFirstVisible) {\r\n oldFirstVisible = oldLastVisible = -1;\r\n }\r\n }\r\n\r\n if (firstVisible < oldFirstVisible) {\r\n renderedRows = this.renderRows(firstVisible, Math.min(lastVisible, oldFirstVisible - 1));\r\n p.$tbody.prepend(renderedRows);\r\n }\r\n if (lastVisible > oldLastVisible || oldLastVisible === -1) {\r\n renderedRows = this.renderRows(oldLastVisible === -1 ? firstVisible : oldLastVisible + 1, lastVisible);\r\n p.$tbody.append(renderedRows);\r\n }\r\n }\r\n this.trigger('render');\r\n return this;\r\n};\r\n\r\n/**\r\n * Forces a full render of the table\r\n * @public\r\n * @expose\r\n * @param {Boolean=true} render - Should render now?\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.clearAndRender = function (render) {\r\n let p = this.p;\r\n\r\n p.tableSkeletonNeedsRendering = true;\r\n\r\n if (render === undefined || render) {\r\n this.render();\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Render rows\r\n * @private\r\n * @param {Number} first first row to render\r\n * @param {Number} last last row to render\r\n * @returns {DocumentFragment} fragment containing all rendered rows\r\n */\r\nDGTable.prototype.renderRows = function (first, last) {\r\n const o = this.o, p = this.p;\r\n\r\n let tableClassName = o.tableClassName,\r\n rowClassName = tableClassName + '-row',\r\n cellClassName = tableClassName + '-cell',\r\n rows = p.filteredRows || p.rows,\r\n isDataFiltered = !!p.filteredRows,\r\n allowCellPreview = o.allowCellPreview,\r\n visibleColumns = p.visibleColumns,\r\n isVirtual = o.virtualTable,\r\n virtualRowHeightFirst = p.virtualRowHeightFirst,\r\n virtualRowHeight = p.virtualRowHeight,\r\n top,\r\n physicalRowIndex;\r\n\r\n let colCount = visibleColumns.length;\r\n for (let colIndex = 0, column; colIndex < colCount; colIndex++) {\r\n column = visibleColumns[colIndex];\r\n column._finalWidth = (column.actualWidthConsideringScrollbarWidth || column.actualWidth);\r\n }\r\n\r\n let bodyFragment = document.createDocumentFragment();\r\n\r\n let isRtl = this._isTableRtl(),\r\n virtualRowXAttr = isRtl ? 'right' : 'left';\r\n\r\n const supportedTransform = CssUtil.getSupportedTransform();\r\n\r\n for (let i = first, rowCount = rows.length;\r\n i < rowCount && i <= last;\r\n i++) {\r\n\r\n let rowData = rows[i];\r\n physicalRowIndex = isDataFiltered ? rowData['__i'] : i;\r\n\r\n let row = createElement('div');\r\n row.className = rowClassName;\r\n row['rowIndex'] = i;\r\n row['physicalRowIndex'] = physicalRowIndex;\r\n\r\n for (let colIndex = 0; colIndex < colCount; colIndex++) {\r\n let column = visibleColumns[colIndex];\r\n let cell = createElement('div');\r\n cell['columnName'] = column.name;\r\n cell.setAttribute('data-column', column.name);\r\n cell.className = cellClassName;\r\n cell.style.width = column._finalWidth + 'px';\r\n if (column.cellClasses) cell.className += ' ' + column.cellClasses;\r\n if (allowCellPreview) {\r\n p._bindCellHoverIn(cell);\r\n }\r\n\r\n let cellInner = cell.appendChild(createElement('div'));\r\n cellInner.innerHTML = this._getHtmlForCell(rowData, column);\r\n\r\n row.appendChild(cell);\r\n }\r\n\r\n if (isVirtual) {\r\n top = i > 0 ? virtualRowHeightFirst + (i - 1) * virtualRowHeight : 0;\r\n row.style.position = 'absolute';\r\n row.style[virtualRowXAttr] = 0;\r\n\r\n if (supportedTransform === false) {\r\n row.style.top = `${top}px`;\r\n } else {\r\n row.style.top = '0px';\r\n row.style[supportedTransform] = `translateY(${top}px)`;\r\n }\r\n }\r\n\r\n bodyFragment.appendChild(row);\r\n\r\n this.trigger('rowcreate', i, physicalRowIndex, row, rowData);\r\n }\r\n\r\n return bodyFragment;\r\n};\r\n\r\n/**\r\n * Calculate virtual table height for scrollbar\r\n * @private\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype._calculateVirtualHeight = function () {\r\n let p = this.p;\r\n\r\n if (p.tbody) {\r\n let rowCount = (p.filteredRows || p.rows).length;\r\n let height = p.virtualRowHeight * rowCount;\r\n if (rowCount) {\r\n height += (p.virtualRowHeightFirst - p.virtualRowHeight);\r\n height += (p.virtualRowHeightLast - p.virtualRowHeight);\r\n }\r\n // At least 1 pixel - to show scrollers correctly.\r\n if (height < 1) {\r\n height = 1;\r\n }\r\n p.tbody.style.height = height + 'px';\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Calculate the size required for the table body width (which is the row's width)\r\n * @private\r\n * @returns {Number} calculated width\r\n */\r\nDGTable.prototype._calculateTbodyWidth = function () {\r\n const p = this.p;\r\n\r\n let tableClassName = this.o.tableClassName,\r\n rowClassName = tableClassName + '-row',\r\n cellClassName = tableClassName + '-cell',\r\n visibleColumns = p.visibleColumns,\r\n colCount = visibleColumns.length,\r\n cell,\r\n cellInner,\r\n colIndex,\r\n column;\r\n\r\n let $row = $('<div>').addClass(rowClassName).css('float', 'left');\r\n let sumActualWidth = 0;\r\n\r\n for (colIndex = 0; colIndex < colCount; colIndex++) {\r\n column = visibleColumns[colIndex];\r\n cell = createElement('div');\r\n cell.className = cellClassName;\r\n cell.style.width = column.actualWidth + 'px';\r\n if (column.cellClasses) cell.className += ' ' + column.cellClasses;\r\n cellInner = cell.appendChild(createElement('div'));\r\n $row.append(cell);\r\n sumActualWidth += column.actualWidth;\r\n }\r\n\r\n let $thisWrapper = $('<div>')\r\n .addClass(this.el.className)\r\n .css({ 'z-index': -1, 'position': 'absolute', left: '0', top: '-9999px', 'float': 'left', width: '1px', overflow: 'hidden' })\r\n .append(\r\n $('<div>').addClass(tableClassName).append(\r\n $('<div>').addClass(tableClassName + '-body').css('width', sumActualWidth + 10000).append(\r\n $row,\r\n ),\r\n ),\r\n );\r\n\r\n $thisWrapper.appendTo(document.body);\r\n\r\n let fractionTest = $('<div style=\"border:1.5px solid #000;width:0;height:0;position:absolute;left:0;top:-9999px\">').appendTo(document.body);\r\n let fractionValue = parseFloat(fractionTest.css('border-width'));\r\n let hasFractions = Math.round(fractionValue) !== fractionValue;\r\n fractionTest.remove();\r\n\r\n let width = getElementWidth($row[0], true, true, true);\r\n width -= p.scrollbarWidth || 0;\r\n\r\n if (hasFractions) {\r\n width++;\r\n }\r\n\r\n $thisWrapper.remove();\r\n return width;\r\n};\r\n\r\n/**\r\n * Sets the columns of the table\r\n * @public\r\n * @expose\r\n * @param {COLUMN_OPTIONS[]} columns - Column definitions array\r\n * @param {Boolean=true} render - Should render now?\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.setColumns = function (columns, render) {\r\n const p = this.p;\r\n\r\n columns = columns || [];\r\n\r\n let normalizedCols = new ColumnCollection();\r\n for (let i = 0, order = 0; i < columns.length; i++) {\r\n\r\n let columnData = columns[i];\r\n let normalizedColumn = this._initColumnFromData(columnData);\r\n\r\n if (columnData.order !== undefined) {\r\n if (columnData.order > order) {\r\n order = columnData.order + 1;\r\n }\r\n normalizedColumn.order = columnData.order;\r\n } else {\r\n normalizedColumn.order = order++;\r\n }\r\n\r\n normalizedCols.push(normalizedColumn);\r\n }\r\n normalizedCols.normalizeOrder();\r\n\r\n p.columns = normalizedCols;\r\n p.visibleColumns = normalizedCols.getVisibleColumns();\r\n\r\n this._ensureVisibleColumns().clearAndRender(render);\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Add a column to the table\r\n * @public\r\n * @expose\r\n * @param {COLUMN_OPTIONS} columnData column properties\r\n * @param {String|Number} [before=-1] column name or order to be inserted before\r\n * @param {Boolean=true} render - Should render now?\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.addColumn = function (columnData, before, render) {\r\n const p = this.p;\r\n let columns = p.columns;\r\n\r\n if (columnData && !columns.get(columnData.name)) {\r\n let beforeColumn = null;\r\n if (before !== undefined) {\r\n beforeColumn = columns.get(before) || columns.getByOrder(before);\r\n }\r\n\r\n let column = this._initColumnFromData(columnData);\r\n column.order = beforeColumn ? beforeColumn.order : (columns.getMaxOrder() + 1);\r\n\r\n for (let i = columns.getMaxOrder(), to = column.order; i >= to ; i--) {\r\n let col = columns.getByOrder(i);\r\n if (col) {\r\n col.order++;\r\n }\r\n }\r\n\r\n columns.push(column);\r\n columns.normalizeOrder();\r\n\r\n p.visibleColumns = columns.getVisibleColumns();\r\n this._ensureVisibleColumns().clearAndRender(render);\r\n\r\n this.trigger('addcolumn', column.name);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Remove a column from the table\r\n * @public\r\n * @expose\r\n * @param {String} column column name\r\n * @param {Boolean=true} render - Should render now?\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.removeColumn = function (column, render) {\r\n const p = this.p;\r\n let columns = p.columns;\r\n\r\n let colIdx = columns.indexOf(column);\r\n if (colIdx > -1) {\r\n columns.splice(colIdx, 1);\r\n columns.normalizeOrder();\r\n\r\n p.visibleColumns = columns.getVisibleColumns();\r\n this._ensureVisibleColumns().clearAndRender(render);\r\n\r\n this.trigger('removecolumn', column);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Sets a new cell formatter.\r\n * @public\r\n * @expose\r\n * @param {function(value: *, columnName: String, row: Object):String|null} [formatter=null] - The cell formatter. Should return an HTML.\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.setCellFormatter = function (formatter) {\r\n /**\r\n * @private\r\n * @field {Function} cellFormatter */\r\n this.o.cellFormatter = formatter || function (val) {\r\n return (typeof val === 'string') ? htmlEncode(val) : val;\r\n };\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Sets a new header cell formatter.\r\n * @public\r\n * @expose\r\n * @param {function(label: String, columnName: String):String|null} [formatter=null] - The cell formatter. Should return an HTML.\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.setHeaderCellFormatter = function (formatter) {\r\n /**\r\n * @private\r\n * @field {Function} headerCellFormatter */\r\n this.o.headerCellFormatter = formatter || function (val) {\r\n return (typeof val === 'string') ? htmlEncode(val) : val;\r\n };\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * @public\r\n * @expose\r\n * @param {function(row:Object,args:Object):Boolean|null} [filterFunc=null] - The filter function to work with filters. Default is a by-colum filter.\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.setFilter = function (filterFunc) {\r\n /** @private\r\n * @field {Function} filter */\r\n this.o.filter = filterFunc;\r\n return this;\r\n};\r\n\r\n/**\r\n * @public\r\n * @expose\r\n * @param {Object|null} args - Options to pass to the filter function\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.filter = function (args) {\r\n const p = this.p;\r\n\r\n let filterFunc = this.o.filter || ByColumnFilter;\r\n\r\n // Deprecated use of older by-column filter\r\n if (typeof arguments[0] === 'string' && typeof arguments[1] === 'string') {\r\n args = {\r\n column: arguments[0],\r\n keyword: arguments[1],\r\n caseSensitive: arguments[2],\r\n };\r\n }\r\n\r\n let hadFilter = !!p.filteredRows;\r\n if (p.filteredRows) {\r\n p.filteredRows = null; // Allow releasing array memory now\r\n }\r\n\r\n // Shallow-clone the args, as the filter function may want to modify it for keeping state\r\n p.filterArgs = args == null ? null : ((typeof args === 'object' && !Array.isArray(args)) ? $.extend({}, args) : args);\r\n\r\n if (p.filterArgs !== null) {\r\n p.filteredRows = p.rows.filteredCollection(filterFunc, p.filterArgs);\r\n\r\n if (hadFilter || p.filteredRows) {\r\n this.clearAndRender();\r\n this.trigger('filter', args);\r\n }\r\n }\r\n else {\r\n p.filterArgs = null;\r\n p.filteredRows = null;\r\n this.clearAndRender();\r\n this.trigger('filterclear', {});\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * @public\r\n * @expose\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.clearFilter = function () {\r\n const p = this.p;\r\n\r\n if (p.filteredRows) {\r\n p.filterArgs = null;\r\n p.filteredRows = null;\r\n this.clearAndRender();\r\n this.trigger('filterclear', {});\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * @private\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype._refilter = function() {\r\n const p = this.p;\r\n\r\n if (p.filteredRows && p.filterArgs) {\r\n let filterFunc = this.o.filter || ByColumnFilter;\r\n p.filteredRows = p.rows.filteredCollection(filterFunc, p.filterArgs);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Set a new label to a column\r\n * @public\r\n * @expose\r\n * @param {String} column Name of the column\r\n * @param {String} label New label for the column\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.setColumnLabel = function (column, label) {\r\n const p = this.p;\r\n\r\n let col = p.columns.get(column);\r\n if (col) {\r\n col.label = label === undefined ? col.name : label;\r\n\r\n if (col.element) {\r\n for (let i = 0; i < col.element[0].firstChild.childNodes.length; i++) {\r\n let node = col.element[0].firstChild.childNodes[i];\r\n if (node.nodeType === 3) {\r\n node.textContent = col.label;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Move a column to a new position\r\n * @public\r\n * @expose\r\n * @param {string|number} src Name or position of the column to be moved\r\n * @param {string|number} dest Name of the column currently in the desired position, or the position itself\r\n * @param {boolean} [visibleOnly=true] Should consider only visible columns and visible-relative indexes\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.moveColumn = function (src, dest, visibleOnly = true) {\r\n const o = this.o, p = this.p;\r\n\r\n let columns = p.columns,\r\n col, destCol;\r\n\r\n let columnsArray = visibleOnly ? p.visibleColumns : columns.getColumns();\r\n\r\n if (typeof src === 'string') {\r\n col = columns.get(src);\r\n } else if (typeof src === 'number') {\r\n col = columnsArray[src];\r\n }\r\n if (typeof dest === 'string') {\r\n destCol = columns.get(dest);\r\n } else if (typeof dest === 'number') {\r\n destCol = columnsArray[dest];\r\n }\r\n\r\n if (col && destCol && src !== dest) {\r\n let srcOrder = col.order, destOrder = destCol.order;\r\n\r\n let visibleColumns = columns.moveColumn(col, destCol).getVisibleColumns();\r\n\r\n if (p.visibleColumns.length !== visibleColumns.length ||\r\n p.visibleColumns.some((x, i) => x !== visibleColumns[i])) {\r\n\r\n p.visibleColumns = visibleColumns;\r\n this._ensureVisibleColumns();\r\n\r\n if (o.virtualTable) {\r\n this.clearAndRender()\r\n ._updateLastCellWidthFromScrollbar(true);\r\n } else {\r\n let headerCell = p.$headerRow.find('>div.' + o.tableClassName + '-header-cell');\r\n let beforePos = srcOrder < destOrder ? destOrder + 1 : destOrder,\r\n fromPos = srcOrder;\r\n headerCell[0].parentNode.insertBefore(headerCell[fromPos], headerCell[beforePos]);\r\n\r\n let srcWidth = p.visibleColumns[srcOrder];\r\n srcWidth = (srcWidth.actualWidthConsideringScrollbarWidth || srcWidth.actualWidth) + 'px';\r\n let destWidth = p.visibleColumns[destOrder];\r\n destWidth = (destWidth.actualWidthConsideringScrollbarWidth || destWidth.actualWidth) + 'px';\r\n\r\n let tbodyChildren = p.$tbody[0].childNodes;\r\n for (let i = 0, count = tbodyChildren.length; i < count; i++) {\r\n let row = tbodyChildren[i];\r\n if (row.nodeType !== 1) continue;\r\n row.insertBefore(row.childNodes[fromPos], row.childNodes[beforePos]);\r\n row.childNodes[destOrder].firstChild.style.width = destWidth;\r\n row.childNodes[srcOrder].firstChild.style.width = srcWidth;\r\n }\r\n }\r\n }\r\n\r\n this.trigger('movecolumn', col.name, srcOrder, destOrder);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Sort the table\r\n * @public\r\n * @expose\r\n * @param {String?} column Name of the column to sort on (or null to remove sort arrow)\r\n * @param {Boolean=} descending Sort in descending order\r\n * @param {Boolean} [add=false] Should this sort be on top of the existing sort? (For multiple column sort)\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.sort = function (column, descending, add) {\r\n const o = this.o, p = this.p;\r\n\r\n let columns = p.columns,\r\n col = columns.get(column);\r\n\r\n let currentSort = p.rows.sortColumn;\r\n\r\n if (col) {\r\n\r\n if (currentSort.length && currentSort[currentSort.length - 1].column === column) {\r\n // Recognize current descending mode, if currently sorting by this column\r\n descending = descending === undefined ? !currentSort[currentSort.length - 1].descending : descending;\r\n }\r\n\r\n if (add) { // Add the sort to current sort stack\r\n\r\n for (let i = 0; i < currentSort.length; i++) {\r\n if (currentSort[i].column === col.name) {\r\n if (i < currentSort.length - 1) {\r\n currentSort.length = 0;\r\n } else {\r\n currentSort.splice(currentSort.length - 1, 1);\r\n }\r\n break;\r\n }\r\n }\r\n if ((o.sortableColumns > 0 /* allow manual sort when disabled */ && currentSort.length >= o.sortableColumns) || currentSort.length >= p.visibleColumns.length) {\r\n currentSort.length = 0;\r\n }\r\n\r\n } else { // Sort only by this column\r\n currentSort.length = 0;\r\n }\r\n\r\n // Default to ascending\r\n descending = descending === undefined ? false : descending;\r\n\r\n // Set the required column in the front of the stack\r\n currentSort.push({\r\n column: col.name,\r\n comparePath: col.comparePath || col.dataPath,\r\n descending: !!descending,\r\n });\r\n } else {\r\n currentSort.length = 0;\r\n }\r\n\r\n this._clearSortArrows();\r\n\r\n for (let i = 0; i < currentSort.length; i++) {\r\n this._showSortArrow(currentSort[i].column, currentSort[i].descending);\r\n }\r\n\r\n if (o.adjustColumnWidthForSortArrow && !o._tableSkeletonNeedsRendering) {\r\n this.tableWidthChanged(true);\r\n }\r\n\r\n if (o.virtualTable) {\r\n while (p.tbody && p.tbody.firstChild) {\r\n this.trigger('rowdestroy', p.tbody.firstChild);\r\n this._unbindCellEventsForRow(p.tbody.firstChild);\r\n p.tbody.removeChild(p.tbody.firstChild);\r\n }\r\n } else {\r\n p.tableSkeletonNeedsRendering = true;\r\n }\r\n\r\n p.rows.sortColumn = currentSort;\r\n\r\n if (currentSort.length) {\r\n p.rows.sort(!!p.filteredRows);\r\n if (p.filteredRows) {\r\n p.filteredRows.sort(!!p.filteredRows);\r\n }\r\n }\r\n\r\n // Build output for event, with option names that will survive compilers\r\n let sorts = [];\r\n for (let i = 0; i < currentSort.length; i++) {\r\n sorts.push({ 'column': currentSort[i].column, 'descending': currentSort[i].descending });\r\n }\r\n this.trigger('sort', sorts, true /* direct sort */);\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Re-sort the table using current sort specifiers\r\n * @public\r\n * @expose\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.resort = function () {\r\n const p = this.p;\r\n let columns = p.columns;\r\n\r\n let currentSort = p.rows.sortColumn;\r\n if (currentSort.length) {\r\n\r\n for (let i = 0; i < currentSort.length; i++) {\r\n if (!columns.get(currentSort[i].column)) {\r\n currentSort.splice(i--, 1);\r\n }\r\n }\r\n\r\n p.rows.sortColumn = currentSort;\r\n if (currentSort.length) {\r\n p.rows.sort(!!p.filteredRows);\r\n if (p.filteredRows) {\r\n p.filteredRows.sort(!!p.filteredRows);\r\n }\r\n }\r\n\r\n // Build output for event, with option names that will survive compilers\r\n let sorts = [];\r\n for (let i = 0; i < currentSort.length; i++) {\r\n sorts.push({ 'column': currentSort[i].column, 'descending': currentSort[i].descending });\r\n }\r\n this.trigger('sort', sorts, false /* indirect sort */);\r\n }\r\n\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Make sure there's at least one column visible\r\n * @private\r\n * @expose\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype._ensureVisibleColumns = function () {\r\n const p = this.p;\r\n\r\n if (p.visibleColumns.length === 0 && p.columns.length) {\r\n p.columns[0].visible = true;\r\n p.visibleColumns.push(p.columns[0]);\r\n this.trigger('showcolumn', p.columns[0].name);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Show or hide a column\r\n * @public\r\n * @expose\r\n * @param {String} column Unique column name\r\n * @param {Boolean} visible New visibility mode for the column\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.setColumnVisible = function (column, visible) {\r\n const p = this.p;\r\n\r\n let col = p.columns.get(column);\r\n\r\n //noinspection PointlessBooleanExpressionJS\r\n visible = !!visible;\r\n\r\n if (col && !!col.visible !== visible) {\r\n col.visible = visible;\r\n p.visibleColumns = p.columns.getVisibleColumns();\r\n this.trigger(visible ? 'showcolumn' : 'hidecolumn', column);\r\n this._ensureVisibleColumns();\r\n this.clearAndRender();\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Get the visibility mode of a column\r\n * @public\r\n * @expose\r\n * @returns {Boolean} true if visible\r\n */\r\nDGTable.prototype.isColumnVisible = function (column) {\r\n const p = this.p;\r\n let col = p.columns.get(column);\r\n if (col) {\r\n return col.visible;\r\n }\r\n return false;\r\n};\r\n\r\n/**\r\n * Globally set the minimum column width\r\n * @public\r\n * @expose\r\n * @param {Number} minColumnWidth Minimum column width\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.setMinColumnWidth = function (minColumnWidth) {\r\n let o = this.o;\r\n minColumnWidth = Math.max(minColumnWidth, 0);\r\n if (o.minColumnWidth !== minColumnWidth) {\r\n o.minColumnWidth = minColumnWidth;\r\n this.tableWidthChanged(true);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Get the current minimum column width\r\n * @public\r\n * @expose\r\n * @returns {Number} Minimum column width\r\n */\r\nDGTable.prototype.getMinColumnWidth = function () {\r\n return this.o.minColumnWidth;\r\n};\r\n\r\n/**\r\n * Set the limit on concurrent columns sorted\r\n * @public\r\n * @expose\r\n * @param {Number} sortableColumns How many sortable columns to allow?\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.setSortableColumns = function (sortableColumns) {\r\n const p = this.p, o = this.o;\r\n if (o.sortableColumns !== sortableColumns) {\r\n o.sortableColumns = sortableColumns;\r\n if (p.$table) {\r\n let headerCell = p.$headerRow.find('>div.' + o.tableClassName + '-header-cell');\r\n for (let i = 0; i < headerCell.length; i++) {\r\n $(headerCell[0])[(o.sortableColumns > 0 && p.visibleColumns[i].sortable) ? 'addClass' : 'removeClass']('sortable');\r\n }\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Get the limit on concurrent columns sorted\r\n * @public\r\n * @expose\r\n * @returns {Number} How many sortable columns are allowed?\r\n */\r\nDGTable.prototype.getSortableColumns = function () {\r\n return this.o.sortableColumns;\r\n};\r\n\r\n/**\r\n * @public\r\n * @expose\r\n * @param {Boolean?} movableColumns=true are the columns movable?\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.setMovableColumns = function (movableColumns) {\r\n let o = this.o;\r\n //noinspection PointlessBooleanExpressionJS\r\n movableColumns = movableColumns === undefined ? true : !!movableColumns;\r\n if (o.movableColumns !== movableColumns) {\r\n o.movableColumns = movableColumns;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * @public\r\n * @expose\r\n * @returns {Boolean} are the columns movable?\r\n */\r\nDGTable.prototype.getMovableColumns = function () {\r\n return this.o.movableColumns;\r\n};\r\n\r\n/**\r\n * @public\r\n * @expose\r\n * @param {Boolean} resizableColumns=true are the columns resizable?\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.setResizableColumns = function (resizableColumns) {\r\n let o = this.o;\r\n //noinspection PointlessBooleanExpressionJS\r\n resizableColumns = resizableColumns === undefined ? true : !!resizableColumns;\r\n if (o.resizableColumns !== resizableColumns) {\r\n o.resizableColumns = resizableColumns;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * @public\r\n * @expose\r\n * @returns {Boolean} are the columns resizable?\r\n */\r\nDGTable.prototype.getResizableColumns = function () {\r\n return this.o.resizableColumns;\r\n};\r\n\r\n/**\r\n * @public\r\n * @expose\r\n * @param {{function(string,boolean):{function(a:*,b:*):boolean}}} comparatorCallback a callback function that returns the comparator for a specific column\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.setComparatorCallback = function (comparatorCallback) {\r\n let o = this.o;\r\n if (o.onComparatorRequired !== comparatorCallback) {\r\n o.onComparatorRequired = comparatorCallback;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Set a new width to a column\r\n * @public\r\n * @expose\r\n * @param {String} column name of the column to resize\r\n * @param {Number|String} width new column as pixels, or relative size (0.5, 50%)\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.setColumnWidth = function (column, width) {\r\n\r\n const p = this.p;\r\n\r\n let col = p.columns.get(column);\r\n\r\n let parsedWidth = this._parseColumnWidth(width, col.ignoreMin ? 0 : this.o.minColumnWidth);\r\n\r\n if (col) {\r\n let oldWidth = this._serializeColumnWidth(col);\r\n\r\n col.width = parsedWidth.width;\r\n col.widthMode = parsedWidth.mode;\r\n\r\n let newWidth = this._serializeColumnWidth(col);\r\n\r\n if (oldWidth !== newWidth) {\r\n this.tableWidthChanged(true); // Calculate actual sizes\r\n }\r\n\r\n this.trigger('columnwidth', col.name, oldWidth, newWidth);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * @public\r\n * @expose\r\n * @param {String} column name of the column\r\n * @returns {String|null} the serialized width of the specified column, or null if column not found\r\n */\r\nDGTable.prototype.getColumnWidth = function (column) {\r\n const p = this.p;\r\n\r\n let col = p.columns.get(column);\r\n if (col) {\r\n return this._serializeColumnWidth(col);\r\n }\r\n return null;\r\n};\r\n\r\n/**\r\n * @public\r\n * @expose\r\n * @param {String} column name of the column\r\n * @returns {SERIALIZED_COLUMN|null} configuration for all columns\r\n */\r\nDGTable.prototype.getColumnConfig = function (column) {\r\n const p = this.p;\r\n let col = p.columns.get(column);\r\n if (col) {\r\n return {\r\n 'order': col.order,\r\n 'width': this._serializeColumnWidth(col),\r\n 'visible': col.visible,\r\n 'label': col.label,\r\n };\r\n }\r\n return null;\r\n};\r\n\r\n/**\r\n * Returns a config object for the columns, to allow saving configurations for next time...\r\n * @public\r\n * @expose\r\n * @returns {Object} configuration for all columns\r\n */\r\nDGTable.prototype.getColumnsConfig = function () {\r\n const p = this.p;\r\n\r\n let config = {};\r\n for (let i = 0; i < p.columns.length; i++) {\r\n config[p.columns[i].name] = this.getColumnConfig(p.columns[i].name);\r\n }\r\n return config;\r\n};\r\n\r\n/**\r\n * Returns an array of the currently sorted columns\r\n * @public\r\n * @expose\r\n * @returns {Array.<SERIALIZED_COLUMN_SORT>} configuration for all columns\r\n */\r\nDGTable.prototype.getSortedColumns = function () {\r\n const p = this.p;\r\n\r\n let sorted = [];\r\n for (let i = 0; i < p.rows.sortColumn.length; i++) {\r\n let sort = p.rows.sortColumn[i];\r\n sorted.push({ column: sort.column, descending: sort.descending });\r\n }\r\n return sorted;\r\n};\r\n\r\n/**\r\n * Returns the HTML string for a specific cell. Can be used externally for special cases (i.e. when setting a fresh HTML in the cell preview through the callback).\r\n * @public\r\n * @expose\r\n * @param {number} rowIndex - index of the row\r\n * @param {string} columnName - name of the column\r\n * @returns {string} HTML string for the specified cell\r\n */\r\nDGTable.prototype.getHtmlForRowCell = function (rowIndex, columnName) {\r\n const p = this.p;\r\n\r\n if (rowIndex < 0 || rowIndex > p.rows.length - 1) return null;\r\n let column = p.columns.get(columnName);\r\n if (!column) return null;\r\n let rowData = p.rows[rowIndex];\r\n\r\n return this._getHtmlForCell(rowData, column);\r\n};\r\n\r\n/**\r\n * Returns the HTML string for a specific cell. Can be used externally for special cases (i.e. when setting a fresh HTML in the cell preview through the callback).\r\n * @public\r\n * @expose\r\n * @param {Object} rowData - row data\r\n * @param {Object} columnName - column data\r\n * @returns {string|null} HTML string for the specified cell\r\n */\r\nDGTable.prototype.getHtmlForRowDataCell = function (rowData, columnName) {\r\n const p = this.p;\r\n\r\n let column = p.columns.get(columnName);\r\n if (!column) return null;\r\n\r\n return this._getHtmlForCell(rowData, column);\r\n};\r\n\r\n/**\r\n * Returns the HTML string for a specific cell. Can be used externally for special cases (i.e. when setting a fresh HTML in the cell preview through the callback).\r\n * @private\r\n * @expose\r\n * @param {Object} rowData - row data\r\n * @param {Object} column - column data\r\n * @returns {string} HTML string for the specified cell\r\n */\r\nDGTable.prototype._getHtmlForCell = function (rowData, column) {\r\n let dataPath = column.dataPath;\r\n let colValue = rowData[dataPath[0]];\r\n for (let dataPathIndex = 1; dataPathIndex < dataPath.length; dataPathIndex++) {\r\n if (colValue == null) break;\r\n colValue = colValue && colValue[dataPath[dataPathIndex]];\r\n }\r\n\r\n let content = this.o.cellFormatter(colValue, column.name, rowData);\r\n if (content === undefined || content === null) {\r\n content = '';\r\n }\r\n\r\n return content;\r\n};\r\n\r\n/**\r\n * Returns the y pos of a row by index\r\n * @public\r\n * @expose\r\n * @param {Number} rowIndex - index of the row\r\n * @returns {Number|null} Y pos\r\n */\r\nDGTable.prototype.getRowYPos = function (rowIndex) {\r\n const p = this.p;\r\n\r\n if (this.o.virtualTable) {\r\n return rowIndex > 0 ? p.virtualRowHeightFirst + (rowIndex - 1) * p.virtualRowHeight : 0;\r\n } else {\r\n let row = p.tbody.childNodes[rowIndex];\r\n return row ? row.offsetTop : null;\r\n }\r\n};\r\n\r\n/**\r\n * Returns the row data for a specific row\r\n * @public\r\n * @expose\r\n * @param {Number} row index of the row\r\n * @returns {Object} Row data\r\n */\r\nDGTable.prototype.getDataForRow = function (row) {\r\n const p = this.p;\r\n\r\n if (row < 0 || row > p.rows.length - 1) return null;\r\n return p.rows[row];\r\n};\r\n\r\n/**\r\n * Gets the number of rows\r\n * @public\r\n * @expose\r\n * @returns {Number} Row count\r\n */\r\nDGTable.prototype.getRowCount = function () {\r\n const p = this.p;\r\n return p.rows ? p.rows.length : 0;\r\n};\r\n\r\n/**\r\n * Returns the physical row index for specific row\r\n * @public\r\n * @expose\r\n * @param {Object} rowData - Row data to find\r\n * @returns {Number} Row index\r\n */\r\nDGTable.prototype.getIndexForRow = function (rowData) {\r\n const p = this.p;\r\n return p.rows.indexOf(rowData);\r\n};\r\n\r\n/**\r\n * Gets the number of filtered rows\r\n * @public\r\n * @expose\r\n * @returns {Number} Filtered row count\r\n */\r\nDGTable.prototype.getFilteredRowCount = function () {\r\n const p = this.p;\r\n return (p.filteredRows || p.rows).length;\r\n};\r\n\r\n/**\r\n * Returns the filtered row index for specific row\r\n * @public\r\n * @expose\r\n * @param {Object} rowData - Row data to find\r\n * @returns {Number} Row index\r\n */\r\nDGTable.prototype.getIndexForFilteredRow = function (rowData) {\r\n const p = this.p;\r\n return (p.filteredRows || p.rows).indexOf(rowData);\r\n};\r\n\r\n/**\r\n * Returns the row data for a specific row\r\n * @public\r\n * @expose\r\n * @param {Number} row index of the filtered row\r\n * @returns {Object} Row data\r\n */\r\nDGTable.prototype.getDataForFilteredRow = function (row) {\r\n const p = this.p;\r\n if (row < 0 || row > (p.filteredRows || p.rows).length - 1) return null;\r\n return (p.filteredRows || p.rows)[row];\r\n};\r\n\r\n/**\r\n * Returns DOM element of the header row\r\n * @public\r\n * @expose\r\n * @returns {Element} Row element\r\n */\r\nDGTable.prototype.getHeaderRowElement = function () {\r\n return this.p.headerRow;\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {Element} el\r\n * @returns {Number} width\r\n */\r\nDGTable.prototype._horizontalPadding = function(el) {\r\n return ((parseFloat($.css(el, 'padding-left')) || 0) +\r\n (parseFloat($.css(el, 'padding-right')) || 0));\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {Element} el\r\n * @returns {Number} width\r\n */\r\nDGTable.prototype._horizontalBorderWidth = function(el) {\r\n return ((parseFloat($.css(el, 'border-left')) || 0) +\r\n (parseFloat($.css(el, 'border-right')) || 0));\r\n};\r\n\r\n/**\r\n * @private\r\n * @returns {Number} width\r\n */\r\nDGTable.prototype._calculateWidthAvailableForColumns = function() {\r\n const o = this.o, p = this.p;\r\n\r\n // Changing display mode briefly, to prevent taking in account the parent's scrollbar width when we are the cause for it\r\n let oldDisplay, lastScrollTop, lastScrollLeft;\r\n if (p.$table) {\r\n lastScrollTop = p.table ? p.table.scrollTop : 0;\r\n lastScrollLeft = p.table ? p.table.scrollLeft : 0;\r\n\r\n if (o.virtualTable) {\r\n oldDisplay = p.$table[0].style.display;\r\n p.$table[0].style.display = 'none';\r\n }\r\n }\r\n\r\n let detectedWidth = getElementWidth(this.$el[0]);\r\n\r\n if (p.$table) {\r\n if (o.virtualTable) {\r\n p.$table[0].style.display = oldDisplay;\r\n }\r\n\r\n p.table.scrollTop = lastScrollTop;\r\n p.table.scrollLeft = lastScrollLeft;\r\n p.header.scrollLeft = lastScrollLeft;\r\n }\r\n\r\n let tableClassName = o.tableClassName;\r\n\r\n let $thisWrapper = $('<div>').addClass(this.el.className).css({ 'z-index': -1, 'position': 'absolute', left: '0', top: '-9999px' });\r\n let $header = $('<div>').addClass(tableClassName + '-header').appendTo($thisWrapper);\r\n let $headerRow = $('<div>').addClass(tableClassName + '-header-row').appendTo($header);\r\n for (let i = 0; i < p.visibleColumns.length; i++) {\r\n $headerRow.append($('<div><div></div></div>').addClass(tableClassName + '-header-cell').addClass(p.visibleColumns[i].cellClasses || ''));\r\n }\r\n $thisWrapper.appendTo(document.body);\r\n\r\n detectedWidth -= this._horizontalBorderWidth($headerRow[0]);\r\n\r\n let $cells = $headerRow.find('>div.' + tableClassName + '-header-cell');\r\n for (let i = 0; i < $cells.length; i++) {\r\n let $cell = $($cells[i]);\r\n\r\n let isBoxing = $cell.css('boxSizing') === 'border-box';\r\n if (!isBoxing) {\r\n detectedWidth -=\r\n (parseFloat($cell.css('border-right-width')) || 0) +\r\n (parseFloat($cell.css('border-left-width')) || 0) +\r\n (this._horizontalPadding($cell[0])); // CELL's padding\r\n }\r\n }\r\n\r\n if ($thisWrapper) {\r\n $thisWrapper.remove();\r\n }\r\n\r\n return Math.max(0, detectedWidth);\r\n};\r\n\r\n/**\r\n * Notify the table that its width has changed\r\n * @public\r\n * @expose\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.tableWidthChanged = (function () {\r\n\r\n let getTextWidth = function(text) {\r\n let tableClassName = this.o.tableClassName;\r\n\r\n let $cell, $tableWrapper = $('<div>').addClass(this.$el).append(\r\n $('<div>').addClass(tableClassName + '-header').append(\r\n $('<div>').addClass(tableClassName + '-header-row').append(\r\n $cell = $('<div>').addClass(tableClassName + '-header-cell').append(\r\n $('<div>').text(text),\r\n ),\r\n ),\r\n ),\r\n ).css({ 'position': 'absolute', top: '-9999px', 'visibility': 'hidden' });\r\n $tableWrapper.appendTo(document.body);\r\n\r\n let width = getElementWidth($cell[0]);\r\n\r\n $tableWrapper.remove();\r\n\r\n return width;\r\n };\r\n\r\n let lastDetectedWidth = null;\r\n\r\n /**\r\n * @public\r\n * @expose\r\n * @param {Boolean} [forceUpdate=false]\r\n * @param {Boolean} [renderColumns=true]\r\n * @returns {DGTable} self\r\n */\r\n return function(forceUpdate, renderColumns) {\r\n\r\n let that = this,\r\n o = that.o,\r\n p = that.p,\r\n detectedWidth = this._calculateWidthAvailableForColumns(),\r\n sizeLeft = detectedWidth,\r\n relatives = 0;\r\n\r\n if (!p.$table) return this;\r\n\r\n renderColumns = renderColumns === undefined || renderColumns;\r\n\r\n let tableWidthBeforeCalculations = 0;\r\n\r\n if (!p.tbody) {\r\n renderColumns = false;\r\n }\r\n\r\n if (renderColumns) {\r\n tableWidthBeforeCalculations = parseFloat(p.tbody.style.minWidth) || 0;\r\n }\r\n\r\n if (sizeLeft !== lastDetectedWidth || forceUpdate) {\r\n lastDetectedWidth = detectedWidth;\r\n\r\n let absWidthTotal = 0, changedColumnIndexes = [], totalRelativePercentage = 0;\r\n\r\n for (let i = 0; i < p.columns.length; i++) {\r\n p.columns[i].actualWidthConsideringScrollbarWidth = null;\r\n }\r\n\r\n for (let i = 0; i < p.visibleColumns.length; i++) {\r\n let col = p.visibleColumns[i];\r\n if (col.widthMode === ColumnWidthMode.ABSOLUTE) {\r\n let width = col.width;\r\n width += col.arrowProposedWidth || 0; // Sort-arrow width\r\n if (!col.ignoreMin && width < o.minColumnWidth) {\r\n width = o.minColumnWidth;\r\n }\r\n sizeLeft -= width;\r\n absWidthTotal += width;\r\n\r\n // Update actualWidth\r\n if (width !== col.actualWidth) {\r\n col.actualWidth = width;\r\n changedColumnIndexes.push(i);\r\n }\r\n } else if (col.widthMode === ColumnWidthMode.AUTO) {\r\n let width = getTextWidth.call(this, col.label) + 20;\r\n width += col.arrowProposedWidth || 0; // Sort-arrow width\r\n if (!col.ignoreMin && width < o.minColumnWidth) {\r\n width = o.minColumnWidth;\r\n }\r\n sizeLeft -= width;\r\n absWidthTotal += width;\r\n\r\n // Update actualWidth\r\n if (width !== col.actualWidth) {\r\n col.actualWidth = width;\r\n if (!o.convertColumnWidthsToRelative) {\r\n changedColumnIndexes.push(i);\r\n }\r\n }\r\n } else if (col.widthMode === ColumnWidthMode.RELATIVE) {\r\n totalRelativePercentage += col.width;\r\n relatives++;\r\n }\r\n }\r\n\r\n // Normalize relative sizes if needed\r\n if (o.convertColumnWidthsToRelative) {\r\n for (let i = 0; i < p.visibleColumns.length; i++) {\r\n let col = p.visibleColumns[i];\r\n if (col.widthMode === ColumnWidthMode.AUTO) {\r\n col.widthMode = ColumnWidthMode.RELATIVE;\r\n sizeLeft += col.actualWidth;\r\n col.width = col.actualWidth / absWidthTotal;\r\n totalRelativePercentage += col.width;\r\n relatives++;\r\n }\r\n }\r\n }\r\n\r\n // Normalize relative sizes if needed\r\n if (relatives && ((totalRelativePercentage < 1 && o.relativeWidthGrowsToFillWidth) ||\r\n (totalRelativePercentage > 1 && o.relativeWidthShrinksToFillWidth))) {\r\n for (let i = 0; i < p.visibleColumns.length; i++) {\r\n let col = p.visibleColumns[i];\r\n if (col.widthMode === ColumnWidthMode.RELATIVE) {\r\n col.width /= totalRelativePercentage;\r\n }\r\n }\r\n }\r\n\r\n let sizeLeftForRelative = Math.max(0, sizeLeft); // Use this as the space to take the relative widths out of\r\n if (sizeLeftForRelative === 0) {\r\n sizeLeftForRelative = p.table.clientWidth;\r\n }\r\n\r\n let minColumnWidthRelative = (o.minColumnWidth / sizeLeftForRelative);\r\n if (isNaN(minColumnWidthRelative)) {\r\n minColumnWidthRelative = 0;\r\n }\r\n if (minColumnWidthRelative > 0) {\r\n let extraRelative = 0, delta;\r\n\r\n // First pass - make sure they are all constrained to the minimum width\r\n for (let i = 0; i < p.visibleColumns.length; i++) {\r\n let col = p.visibleColumns[i];\r\n if (col.widthMode === ColumnWidthMode.RELATIVE) {\r\n if (!col.ignoreMin && col.width < minColumnWidthRelative) {\r\n extraRelative += minColumnWidthRelative - col.width;\r\n col.width = minColumnWidthRelative;\r\n }\r\n }\r\n }\r\n\r\n // Second pass - try to take the extra width out of the other columns to compensate\r\n for (let i = 0; i < p.visibleColumns.length; i++) {\r\n let col = p.visibleColumns[i];\r\n if (col.widthMode === ColumnWidthMode.RELATIVE) {\r\n if (!col.ignoreMin && col.width > minColumnWidthRelative) {\r\n if (extraRelative > 0) {\r\n delta = Math.min(extraRelative, col.width - minColumnWidthRelative);\r\n col.width -= delta;\r\n extraRelative -= delta;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Try to fill width\r\n if (o.autoFillTableWidth && sizeLeft > 0) {\r\n let nonResizableTotal = 0;\r\n let sizeLeftToFill = sizeLeft;\r\n\r\n for (let i = 0; i < p.visibleColumns.length; i++) {\r\n let col = p.visibleColumns[i];\r\n if (!col.resizable && col.widthMode === ColumnWidthMode.ABSOLUTE)\r\n nonResizableTotal += col.width;\r\n\r\n if (col.widthMode === ColumnWidthMode.RELATIVE)\r\n sizeLeftToFill -= Math.round(sizeLeftForRelative * col.width);\r\n }\r\n\r\n let conv = ((detectedWidth - nonResizableTotal) / (detectedWidth - sizeLeftToFill - nonResizableTotal)) || NaN;\r\n for (let i = 0; i < p.visibleColumns.length && sizeLeftToFill > 0; i++) {\r\n let col = p.visibleColumns[i];\r\n if (!col.resizable && col.widthMode === ColumnWidthMode.ABSOLUTE)\r\n continue;\r\n\r\n if (col.widthMode === ColumnWidthMode.RELATIVE) {\r\n col.width *= conv;\r\n } else {\r\n let width = col.actualWidth * conv;\r\n if (col.actualWidth !== width) {\r\n col.actualWidth = width;\r\n if (changedColumnIndexes.indexOf(i) === -1)\r\n changedColumnIndexes.push(i);\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Materialize relative sizes\r\n for (let i = 0; i < p.visibleColumns.length; i++) {\r\n let col = p.visibleColumns[i];\r\n if (col.widthMode === ColumnWidthMode.RELATIVE) {\r\n let width = Math.round(sizeLeftForRelative * col.width);\r\n sizeLeft -= width;\r\n relatives--;\r\n\r\n // Take care of rounding errors\r\n if (relatives === 0 && sizeLeft === 1) { // Take care of rounding errors\r\n width++;\r\n sizeLeft--;\r\n }\r\n if (sizeLeft === -1) {\r\n width--;\r\n sizeLeft++;\r\n }\r\n\r\n // Update actualWidth\r\n if (width !== col.actualWidth) {\r\n col.actualWidth = width;\r\n changedColumnIndexes.push(i);\r\n }\r\n }\r\n }\r\n\r\n if (p.visibleColumns.length) {\r\n // (There should always be at least 1 column visible, but just in case)\r\n p.visibleColumns[p.visibleColumns.length - 1].actualWidthConsideringScrollbarWidth =\r\n p.visibleColumns[p.visibleColumns.length - 1].actualWidth - (p.scrollbarWidth || 0);\r\n }\r\n\r\n if (renderColumns) {\r\n let tableWidth = this._calculateTbodyWidth();\r\n\r\n if (tableWidthBeforeCalculations < tableWidth) {\r\n this._updateTableWidth(false);\r\n }\r\n\r\n for (let i = 0; i < changedColumnIndexes.length; i++) {\r\n this._resizeColumnElements(changedColumnIndexes[i]);\r\n }\r\n\r\n if (tableWidthBeforeCalculations > tableWidth) {\r\n this._updateTableWidth(false);\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n };\r\n})();\r\n\r\n/**\r\n * Notify the table that its height has changed\r\n * @public\r\n * @expose\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.tableHeightChanged = function () {\r\n let that = this,\r\n o = that.o,\r\n p = that.p;\r\n\r\n if (!p.$table) {\r\n return that;\r\n }\r\n\r\n let height = getElementHeight(that.$el[0], true)\r\n - (parseFloat(p.$table.css('border-top-width')) || 0) // Subtract top border of inner element\r\n - (parseFloat(p.$table.css('border-bottom-width')) || 0); // Subtract bottom border of inner element\r\n\r\n if (height !== o.height) {\r\n\r\n o.height = height;\r\n\r\n if (p.tbody) {\r\n // At least 1 pixel - to show scrollers correctly.\r\n p.tbody.style.height = Math.max(o.height - getElementHeight(p.$headerRow[0], true, true, true), 1) + 'px';\r\n }\r\n\r\n if (o.virtualTable) {\r\n that.clearAndRender();\r\n }\r\n }\r\n\r\n return that;\r\n};\r\n\r\n/**\r\n * Add rows to the table\r\n * @public\r\n * @expose\r\n * @param {Object[]} data - array of rows to add to the table\r\n * @param {Number} [at=-1] - where to add the rows at\r\n * @param {Boolean} [resort=false] - should resort all rows?\r\n * @param {Boolean} [render=true]\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.addRows = function (data, at, resort, render) {\r\n let that = this,\r\n p = that.p;\r\n\r\n if (typeof at === 'boolean') {\r\n render = resort;\r\n resort = at;\r\n at = -1;\r\n }\r\n\r\n if (typeof at !== 'number')\r\n at = -1;\r\n\r\n if (at < 0 || at > p.rows.length)\r\n at = p.rows.length;\r\n\r\n render = (render === undefined) ? true : !!render;\r\n\r\n if (data) {\r\n p.rows.add(data, at);\r\n\r\n if (p.filteredRows || (resort && p.rows.sortColumn.length)) {\r\n\r\n if (resort && p.rows.sortColumn.length) {\r\n this.resort();\r\n } else {\r\n this._refilter();\r\n }\r\n\r\n p.tableSkeletonNeedsRendering = true;\r\n\r\n if (render) {\r\n // Render the skeleton with all rows from scratch\r\n this.render();\r\n }\r\n\r\n } else if (render) {\r\n let childNodes = p.tbody.childNodes;\r\n\r\n if (that.o.virtualTable) {\r\n\r\n while (p.tbody.firstChild) {\r\n this.trigger('rowdestroy', p.tbody.firstChild);\r\n this._unbindCellEventsForRow(p.tbody.firstChild);\r\n p.tbody.removeChild(p.tbody.firstChild);\r\n }\r\n\r\n this._calculateVirtualHeight() // Calculate virtual height\r\n ._updateLastCellWidthFromScrollbar() // Detect vertical scrollbar height\r\n .render()\r\n ._updateTableWidth(false); // Update table width to suit the required width considering vertical scrollbar\r\n\r\n } else if (p.$tbody) {\r\n\r\n let firstRow = at,\r\n lastRow = at + data.length - 1;\r\n\r\n let renderedRows = that.renderRows(firstRow, lastRow);\r\n p.tbody.insertBefore(renderedRows, childNodes[at] || null);\r\n\r\n for (let i = lastRow + 1; i < childNodes.length; i++) {\r\n let row = childNodes[i];\r\n row['rowIndex'] += data.length;\r\n row['physicalRowIndex'] += data.length;\r\n }\r\n\r\n this.render()\r\n ._updateLastCellWidthFromScrollbar() // Detect vertical scrollbar height, and update existing last cells\r\n ._updateTableWidth(true); // Update table width to suit the required width considering vertical scrollbar\r\n\r\n }\r\n }\r\n\r\n this.trigger('addrows', data.length, false);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes a row from the table\r\n * @public\r\n * @expose\r\n * @param {Number} physicalRowIndex - index\r\n * @param {Number} count - how many rows to remove\r\n * @param {Boolean=true} render\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.removeRows = function (physicalRowIndex, count, render) {\r\n let that = this,\r\n p = that.p;\r\n\r\n if (typeof count !== 'number' || count <= 0) return this;\r\n\r\n if (physicalRowIndex < 0 || physicalRowIndex > p.rows.length - 1) return this;\r\n\r\n p.rows.splice(physicalRowIndex, count);\r\n render = (render === undefined) ? true : !!render;\r\n\r\n if (p.filteredRows) {\r\n\r\n this._refilter();\r\n\r\n p.tableSkeletonNeedsRendering = true;\r\n\r\n if (render) {\r\n // Render the skeleton with all rows from scratch\r\n this.render();\r\n }\r\n\r\n } else if (render) {\r\n\r\n let childNodes = p.tbody.childNodes;\r\n\r\n if (this.o.virtualTable) {\r\n\r\n while (p.tbody.firstChild) {\r\n this.trigger('rowdestroy', p.tbody.firstChild);\r\n this._unbindCellEventsForRow(p.tbody.firstChild);\r\n p.tbody.removeChild(p.tbody.firstChild);\r\n }\r\n\r\n this._calculateVirtualHeight()\r\n ._updateLastCellWidthFromScrollbar()\r\n .render()\r\n ._updateTableWidth(false); // Update table width to suit the required width considering vertical scrollbar\r\n\r\n\r\n } else {\r\n\r\n let countRemoved = 0, lastRowIndex = physicalRowIndex + count - 1;\r\n\r\n for (let i = 0; i < childNodes.length; i++) {\r\n let row = childNodes[i];\r\n let index = row['physicalRowIndex'];\r\n\r\n if (index >= physicalRowIndex) {\r\n if (index <= lastRowIndex) {\r\n this.trigger('rowdestroy', row);\r\n this._unbindCellEventsForRow(row);\r\n p.tbody.removeChild(row);\r\n i--;\r\n } else {\r\n row['physicalRowIndex'] -= count;\r\n }\r\n } else {\r\n row['rowIndex'] = i;\r\n }\r\n }\r\n\r\n this.render()\r\n ._updateLastCellWidthFromScrollbar()\r\n ._updateTableWidth(true); // Update table width to suit the required width considering vertical scrollbar\r\n\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes a row from the table\r\n * @public\r\n * @expose\r\n * @param {Number} physicalRowIndex - index\r\n * @param {Boolean=true} render\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.removeRow = function (physicalRowIndex, render) {\r\n return this.removeRows(physicalRowIndex, 1, render);\r\n};\r\n\r\n/**\r\n * Refreshes the row specified\r\n * @public\r\n * @expose\r\n * @param {Number} physicalRowIndex index\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.refreshRow = function(physicalRowIndex) {\r\n let that = this,\r\n p = that.p;\r\n\r\n if (physicalRowIndex < 0 || physicalRowIndex > p.rows.length - 1) return this;\r\n\r\n // Find out if the row is in the rendered dataset\r\n let rowIndex = -1;\r\n if (p.filteredRows && (rowIndex = p.filteredRows.indexOf(p.rows[physicalRowIndex])) === -1) return this;\r\n\r\n if (rowIndex === -1) {\r\n rowIndex = physicalRowIndex;\r\n }\r\n\r\n let childNodes = p.tbody.childNodes;\r\n\r\n if (this.o.virtualTable) {\r\n // Now make sure that the row actually rendered, as this is a virtual table\r\n let isRowVisible = false;\r\n let i = 0;\r\n\r\n for (; i < childNodes.length; i++) {\r\n if (childNodes[i]['physicalRowIndex'] === physicalRowIndex) {\r\n isRowVisible = true;\r\n this.trigger('rowdestroy', childNodes[i]);\r\n this._unbindCellEventsForRow(childNodes[i]);\r\n p.tbody.removeChild(childNodes[i]);\r\n break;\r\n }\r\n }\r\n\r\n if (isRowVisible) {\r\n let renderedRow = this.renderRows(rowIndex, rowIndex);\r\n p.tbody.insertBefore(renderedRow, childNodes[i] || null);\r\n }\r\n } else {\r\n this.trigger('rowdestroy', childNodes[rowIndex]);\r\n this._unbindCellEventsForRow(childNodes[rowIndex]);\r\n p.tbody.removeChild(childNodes[rowIndex]);\r\n let renderedRow = this.renderRows(rowIndex, rowIndex);\r\n p.tbody.insertBefore(renderedRow, childNodes[rowIndex] || null);\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Get the DOM element for the specified row, if it exists\r\n * @public\r\n * @expose\r\n * @param {Number} physicalRowIndex index\r\n * @returns {Element|null} row or null\r\n */\r\nDGTable.prototype.getRowElement = function(physicalRowIndex) {\r\n let that = this,\r\n p = that.p;\r\n\r\n if (physicalRowIndex < 0 || physicalRowIndex > p.rows.length - 1) return null;\r\n\r\n // Find out if the row is in the rendered dataset\r\n let rowIndex = -1;\r\n if (p.filteredRows && (rowIndex = p.filteredRows.indexOf(p.rows[physicalRowIndex])) === -1) return this;\r\n\r\n if (rowIndex === -1) {\r\n rowIndex = physicalRowIndex;\r\n }\r\n\r\n let childNodes = p.tbody.childNodes;\r\n\r\n if (this.o.virtualTable) {\r\n // Now make sure that the row actually rendered, as this is a virtual table\r\n for (let i = 0; i < childNodes.length; i++) {\r\n if (childNodes[i]['physicalRowIndex'] === physicalRowIndex) {\r\n return childNodes[i];\r\n }\r\n }\r\n } else {\r\n return childNodes[rowIndex];\r\n }\r\n\r\n return null;\r\n};\r\n\r\n/**\r\n * Refreshes all virtual rows\r\n * @public\r\n * @expose\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.refreshAllVirtualRows = function () {\r\n\r\n const p = this.p;\r\n\r\n if (this.o.virtualTable) {\r\n // Now make sure that the row actually rendered, as this is a virtual table\r\n let rowsToRender = [];\r\n let childNodes = p.tbody.childNodes;\r\n\r\n for (let i = 0, rowCount = childNodes.length; i < rowCount; i++) {\r\n rowsToRender.push(childNodes[i]['physicalRowIndex']);\r\n this.trigger('rowdestroy', childNodes[i]);\r\n this._unbindCellEventsForRow(childNodes[i]);\r\n p.tbody.removeChild(childNodes[i]);\r\n i--;\r\n rowCount--;\r\n }\r\n\r\n for (let i = 0; i < rowsToRender.length; i++) {\r\n let renderedRow = this.renderRows(rowsToRender[i], rowsToRender[i]);\r\n p.tbody.appendChild(renderedRow);\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Replace the whole dataset\r\n * @public\r\n * @expose\r\n * @param {Object[]} data array of rows to add to the table\r\n * @param {Boolean} [resort=false] should resort all rows?\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.setRows = function (data, resort) {\r\n let that = this,\r\n p = that.p;\r\n\r\n // this.scrollTop = this.$el.find('.table').scrollTop();\r\n p.rows.reset(data);\r\n\r\n if (resort && p.rows.sortColumn.length) {\r\n this.resort();\r\n } else {\r\n this._refilter();\r\n }\r\n\r\n this.clearAndRender().trigger('addrows', data.length, true);\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Creates a URL representing the data in the specified element.\r\n * This uses the Blob or BlobBuilder of the modern browsers.\r\n * The url can be used for a Web Worker.\r\n * @public\r\n * @expose\r\n * @param {string} id Id of the element containing your data\r\n * @returns {String|null} the url, or null if not supported\r\n */\r\nDGTable.prototype.getUrlForElementContent = function (id) {\r\n let blob,\r\n el = document.getElementById(id);\r\n if (el) {\r\n let data = el.textContent;\r\n if (typeof Blob === 'function') {\r\n blob = new Blob([data]);\r\n } else {\r\n let BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder;\r\n if (!BlobBuilder) {\r\n return null;\r\n }\r\n let builder = new BlobBuilder();\r\n builder.append(data);\r\n blob = builder.getBlob();\r\n }\r\n return (window.URL || window.webkitURL).createObjectURL(blob);\r\n }\r\n return null;\r\n};\r\n\r\n/**\r\n * @public\r\n * @expose\r\n * @returns {Boolean} A value indicating whether Web Workers are supported\r\n */\r\nDGTable.prototype.isWorkerSupported = function() {\r\n return window['Worker'] instanceof Function;\r\n};\r\n\r\n/**\r\n * Creates a Web Worker for updating the table.\r\n * @public\r\n * @expose\r\n * @param {string} url Url to the script for the Web Worker\r\n * @param {boolean} [start=true] if true, starts the Worker immediately\r\n * @param {boolean} [resort=false]\r\n * @returns {Worker|null} the Web Worker, or null if not supported\r\n */\r\nDGTable.prototype.createWebWorker = function (url, start, resort) {\r\n if (this.isWorkerSupported()) {\r\n let that = this,\r\n p = that.p;\r\n\r\n let worker = new Worker(url);\r\n let listener = function (evt) {\r\n if (evt.data.append) {\r\n that.addRows(evt.data.rows, resort);\r\n } else {\r\n that.setRows(evt.data.rows, resort);\r\n }\r\n };\r\n worker.addEventListener('message', listener, false);\r\n if (!p.workerListeners) {\r\n p.workerListeners = [];\r\n }\r\n p.workerListeners.push({ worker: worker, listener: listener });\r\n if (start || start === undefined) {\r\n worker.postMessage(null);\r\n }\r\n return worker;\r\n }\r\n return null;\r\n};\r\n\r\n/**\r\n * Unbinds a Web Worker from the table, stopping updates.\r\n * @public\r\n * @expose\r\n * @param {Worker} worker the Web Worker\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.unbindWebWorker = function (worker) {\r\n let that = this,\r\n p = that.p;\r\n\r\n if (p.workerListeners) {\r\n for (let j = 0; j < p.workerListeners.length; j++) {\r\n if (p.workerListeners[j].worker === worker) {\r\n worker.removeEventListener('message', p.workerListeners[j].listener, false);\r\n p.workerListeners.splice(j, 1);\r\n j--;\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * A synonym for hideCellPreview()\r\n * @public\r\n * @expose\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.abortCellPreview = function() {\r\n this.hideCellPreview();\r\n return this;\r\n};\r\n\r\n/**\r\n * Cancel a resize in progress\r\n * @expose\r\n * @private\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.cancelColumnResize = function() {\r\n const p = this.p;\r\n\r\n if (p.$resizer) {\r\n p.$resizer.remove();\r\n p.$resizer = null;\r\n $(document).off('mousemove.dgtable', p.onMouseMoveResizeAreaBound)\r\n .off('mouseup.dgtable', p.onEndDragColumnHeaderBound);\r\n }\r\n\r\n return this;\r\n};\r\n\r\nDGTable.prototype._onVirtualTableScrolled = function () {\r\n this.render();\r\n};\r\n\r\nDGTable.prototype._onTableScrolledHorizontally = function () {\r\n const p = this.p;\r\n\r\n p.header.scrollLeft = p.table.scrollLeft;\r\n};\r\n\r\n/**previousElementSibling\r\n * Reverse-calculate the column to resize from mouse position\r\n * @private\r\n * @param {jQuery_Event} e jQuery mouse event\r\n * @returns {String} name of the column which the mouse is over, or null if the mouse is not in resize position\r\n */\r\nDGTable.prototype._getColumnByResizePosition = function (e) {\r\n\r\n let that = this,\r\n o = that.o,\r\n rtl = this._isTableRtl();\r\n\r\n let $headerCell = $(e.target).closest('div.' + o.tableClassName + '-header-cell,div.' + o.cellPreviewClassName),\r\n headerCell = $headerCell[0];\r\n if (headerCell['__cell']) {\r\n headerCell = headerCell['__cell'];\r\n $headerCell = $(headerCell);\r\n }\r\n\r\n let previousElementSibling = $headerCell[0].previousSibling;\r\n while (previousElementSibling && previousElementSibling.nodeType !== 1) {\r\n previousElementSibling = previousElementSibling.previousSibling;\r\n }\r\n\r\n let firstCol = !previousElementSibling;\r\n\r\n let mouseX = ((e.pageX != null ? e.pageX : e.originalEvent.pageX) || e.originalEvent.clientX) - $headerCell.offset().left;\r\n\r\n if (rtl) {\r\n if (!firstCol && getElementWidth($headerCell[0], true, true, true) - mouseX <= o.resizeAreaWidth / 2) {\r\n return previousElementSibling['columnName'];\r\n } else if (mouseX <= o.resizeAreaWidth / 2) {\r\n return headerCell['columnName'];\r\n }\r\n } else {\r\n if (!firstCol && mouseX <= o.resizeAreaWidth / 2) {\r\n return previousElementSibling['columnName'];\r\n } else if (getElementWidth($headerCell[0], true, true, true) - mouseX <= o.resizeAreaWidth / 2) {\r\n return headerCell['columnName'];\r\n }\r\n }\r\n\r\n return null;\r\n};\r\n\r\n/**\r\n * @param {jQuery_Event} event\r\n */\r\nDGTable.prototype._onTouchStartColumnHeader = function (event) {\r\n const p = this.p;\r\n\r\n if (p.currentTouchId) return;\r\n\r\n let startTouch = event.originalEvent.changedTouches[0];\r\n p.currentTouchId = startTouch.identifier;\r\n\r\n let $eventTarget = $(event.currentTarget);\r\n\r\n let startPos = { x: startTouch.pageX, y: startTouch.pageY },\r\n currentPos = startPos,\r\n distanceTreshold = 9;\r\n\r\n let tapAndHoldTimeout;\r\n\r\n let unbind = function () {\r\n p.currentTouchId = null;\r\n $eventTarget.off('touchend').off('touchcancel');\r\n clearTimeout(tapAndHoldTimeout);\r\n };\r\n\r\n let fakeEvent = function (name) {\r\n let fakeEvent = $.Event(name);\r\n let extendObjects = Array.prototype.slice.call(arguments, 1);\r\n for (let key of ['target', 'clientX', 'clientY', 'offsetX', 'offsetY', 'screenX', 'screenY', 'pageX', 'pageY', 'which']) {\r\n fakeEvent[key] = event[key];\r\n for (let i = 0; i < extendObjects.length; i++) {\r\n if (extendObjects[i][key] != null) {\r\n fakeEvent[key] = extendObjects[i][key];\r\n }\r\n }\r\n }\r\n return fakeEvent;\r\n };\r\n\r\n $eventTarget.trigger(fakeEvent('mousedown', event.originalEvent.changedTouches[0], { 'which': 1, target: event.target }));\r\n\r\n tapAndHoldTimeout = setTimeout(() => {\r\n unbind();\r\n\r\n $eventTarget\r\n .one('touchend', (event) => {\r\n // Prevent simulated mouse events after touchend\r\n if (!isInputElementEvent(event))\r\n event.preventDefault();\r\n\r\n $eventTarget.off('touchend').off('touchcancel');\r\n })\r\n .one('touchcancel', (_event) => {\r\n $eventTarget.off('touchend').off('touchcancel');\r\n });\r\n\r\n let distanceTravelled = Math.sqrt(Math.pow(Math.abs(currentPos.x - startPos.x), 2) + Math.pow(Math.abs(currentPos.y - startPos.y), 2));\r\n\r\n if (distanceTravelled < distanceTreshold) {\r\n this.cancelColumnResize();\r\n $eventTarget.trigger(fakeEvent('mouseup', event.originalEvent.changedTouches[0], { 'which': 3, target: event.target }));\r\n }\r\n\r\n }, 500);\r\n\r\n $eventTarget\r\n .on('touchend', (event) => {\r\n let touch = find(event.originalEvent.changedTouches, (touch) => touch.identifier === p.currentTouchId);\r\n if (!touch) return;\r\n\r\n unbind();\r\n\r\n // Prevent simulated mouse events after touchend\r\n if (!isInputElementEvent(event))\r\n event.preventDefault();\r\n\r\n currentPos = { x: touch.pageX, y: touch.pageY };\r\n let distanceTravelled = Math.sqrt(Math.pow(Math.abs(currentPos.x - startPos.x), 2) + Math.pow(Math.abs(currentPos.y - startPos.y), 2));\r\n\r\n if (distanceTravelled < distanceTreshold || p.$resizer) {\r\n $eventTarget.trigger(fakeEvent('mouseup', touch, { 'which': 1, target: event.target }));\r\n $eventTarget.trigger(fakeEvent('click', touch, { 'which': 1, target: event.target }));\r\n }\r\n\r\n })\r\n .on('touchcancel', () => {\r\n unbind();\r\n })\r\n .on('touchmove', (event) => {\r\n let touch = find(event.originalEvent.changedTouches, (touch) => touch.identifier === p.currentTouchId);\r\n if (!touch) return;\r\n\r\n // Keep track of current position, so we know if we need to cancel the tap-and-hold\r\n currentPos = { x: touch.pageX, y: touch.pageY };\r\n\r\n if (p.$resizer) {\r\n event.preventDefault();\r\n\r\n $eventTarget.trigger(fakeEvent('mousemove', touch, { target: event.target }));\r\n }\r\n });\r\n};\r\n\r\n/**\r\n * @param {jQuery_Event} event\r\n */\r\nDGTable.prototype._onMouseDownColumnHeader = function (event) {\r\n if (event.which !== 1) return this; // Only treat left-clicks\r\n\r\n let that = this,\r\n o = that.o,\r\n p = that.p,\r\n col = this._getColumnByResizePosition(event);\r\n\r\n if (col) {\r\n let column = p.columns.get(col);\r\n if (!o.resizableColumns || !column || !column.resizable) {\r\n return false;\r\n }\r\n\r\n let rtl = this._isTableRtl();\r\n\r\n if (p.$resizer) {\r\n $(p.$resizer).remove();\r\n }\r\n p.$resizer = $('<div></div>')\r\n .addClass(o.resizerClassName)\r\n .css({\r\n 'position': 'absolute',\r\n 'display': 'block',\r\n 'z-index': -1,\r\n 'visibility': 'hidden',\r\n 'width': '2px',\r\n 'background': '#000',\r\n 'opacity': 0.7,\r\n })\r\n .appendTo(this.$el);\r\n\r\n let selectedHeaderCell = column.element,\r\n commonAncestor = p.$resizer.parent();\r\n\r\n let posCol = selectedHeaderCell.offset(),\r\n posRelative = commonAncestor.offset();\r\n if (ieVersion === 8) {\r\n posCol = selectedHeaderCell.offset(); // IE8 bug, first time it receives zeros...\r\n }\r\n posRelative.left += parseFloat(commonAncestor.css('border-left-width')) || 0;\r\n posRelative.top += parseFloat(commonAncestor.css('border-top-width')) || 0;\r\n posCol.left -= posRelative.left;\r\n posCol.top -= posRelative.top;\r\n posCol.top -= parseFloat(selectedHeaderCell.css('border-top-width')) || 0;\r\n let resizerWidth = getElementWidth(p.$resizer[0], true, true, true);\r\n if (rtl) {\r\n posCol.left -= Math.ceil((parseFloat(selectedHeaderCell.css('border-left-width')) || 0) / 2);\r\n posCol.left -= Math.ceil(resizerWidth / 2);\r\n } else {\r\n posCol.left += getElementWidth(selectedHeaderCell[0], true, true, true);\r\n posCol.left += Math.ceil((parseFloat(selectedHeaderCell.css('border-right-width')) || 0) / 2);\r\n posCol.left -= Math.ceil(resizerWidth / 2);\r\n }\r\n\r\n p.$resizer\r\n .css({\r\n 'z-index': '10',\r\n 'visibility': 'visible',\r\n 'left': posCol.left,\r\n 'top': posCol.top,\r\n 'height': getElementHeight(this.$el[0]),\r\n })[0]['columnName'] = selectedHeaderCell[0]['columnName'];\r\n\r\n try { p.$resizer[0].style.zIndex = ''; }\r\n catch (ignored) { /* we're ok with this */ }\r\n\r\n $(document).on('mousemove.dgtable', p.onMouseMoveResizeAreaBound);\r\n $(document).on('mouseup.dgtable', p.onEndDragColumnHeaderBound);\r\n\r\n event.preventDefault();\r\n }\r\n};\r\n\r\n/**\r\n * @param {jQuery_Event} event event\r\n */\r\nDGTable.prototype._onMouseMoveColumnHeader = function (event) {\r\n\r\n let that = this,\r\n o = that.o,\r\n p = that.p;\r\n\r\n if (o.resizableColumns) {\r\n let col = this._getColumnByResizePosition(event);\r\n let headerCell = $(event.target).closest('div.' + o.tableClassName + '-header-cell,div.' + o.cellPreviewClassName)[0];\r\n if (!col || !p.columns.get(col).resizable) {\r\n headerCell.style.cursor = '';\r\n } else {\r\n headerCell.style.cursor = 'e-resize';\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * @param {jQuery_Event} event\r\n */\r\nDGTable.prototype._onMouseUpColumnHeader = function (event) {\r\n if (event.which === 3) {\r\n let o = this.o;\r\n let $headerCell = $(event.target).closest('div.' + o.tableClassName + '-header-cell,div.' + o.cellPreviewClassName);\r\n let bounds = $headerCell.offset();\r\n bounds['width'] = getElementWidth($headerCell[0], true, true, true);\r\n bounds['height'] = getElementHeight($headerCell[0], true, true, true);\r\n this.trigger('headercontextmenu', $headerCell[0]['columnName'], event.pageX, event.pageY, bounds);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {jQuery_Event} event event\r\n */\r\nDGTable.prototype._onMouseLeaveColumnHeader = function (event) {\r\n let o = this.o;\r\n let headerCell = $(event.target).closest('div.' + o.tableClassName + '-header-cell,div.' + o.cellPreviewClassName)[0];\r\n headerCell.style.cursor = '';\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {jQuery_Event} event event\r\n */\r\nDGTable.prototype._onClickColumnHeader = function (event) {\r\n if (isInputElementEvent(event))\r\n return;\r\n\r\n if (!this._getColumnByResizePosition(event)) {\r\n\r\n let that = this,\r\n o = that.o,\r\n p = that.p;\r\n\r\n let headerCell = $(event.target).closest('div.' + o.tableClassName + '-header-cell,div.' + o.cellPreviewClassName)[0];\r\n if (o.sortableColumns) {\r\n let column = p.columns.get(headerCell['columnName']);\r\n if (column && column.sortable) {\r\n this.sort(headerCell['columnName'], undefined, true).render();\r\n }\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {jQuery_Event} event event\r\n */\r\nDGTable.prototype._onStartDragColumnHeader = function (event) {\r\n\r\n let that = this,\r\n o = that.o,\r\n p = that.p;\r\n\r\n if (o.movableColumns) {\r\n\r\n let $headerCell = $(event.target).closest('div.' + o.tableClassName + '-header-cell,div.' + o.cellPreviewClassName);\r\n let column = p.columns.get($headerCell[0]['columnName']);\r\n if (column && column.movable) {\r\n $headerCell[0].style.opacity = 0.35;\r\n p.dragId = Math.random() * 0x9999999; // Recognize this ID on drop\r\n event.originalEvent.dataTransfer.setData('text', JSON.stringify({ dragId: p.dragId, column: column.name }));\r\n } else {\r\n event.preventDefault();\r\n }\r\n\r\n } else {\r\n\r\n event.preventDefault();\r\n\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {MouseEvent} event event\r\n */\r\nDGTable.prototype._onMouseMoveResizeArea = function (event) {\r\n\r\n let that = this,\r\n p = that.p;\r\n\r\n let column = p.columns.get(p.$resizer[0]['columnName']);\r\n let rtl = this._isTableRtl();\r\n\r\n let selectedHeaderCell = column.element,\r\n commonAncestor = p.$resizer.parent();\r\n let posCol = selectedHeaderCell.offset(), posRelative = commonAncestor.offset();\r\n posRelative.left += parseFloat(commonAncestor.css('border-left-width')) || 0;\r\n posCol.left -= posRelative.left;\r\n let resizerWidth = getElementWidth(p.$resizer[0], true, true, true);\r\n\r\n let isBoxing = selectedHeaderCell.css('box-sizing') === 'border-box';\r\n\r\n let actualX = event.pageX - posRelative.left;\r\n let minX = posCol.left;\r\n\r\n minX -= Math.ceil(resizerWidth / 2);\r\n\r\n if (rtl) {\r\n minX += getElementWidth(selectedHeaderCell[0], true, true, true);\r\n minX -= column.ignoreMin ? 0 : this.o.minColumnWidth;\r\n\r\n if (!isBoxing) {\r\n minX -= Math.ceil((parseFloat(selectedHeaderCell.css('border-left-width')) || 0) / 2);\r\n minX -= this._horizontalPadding(selectedHeaderCell[0]);\r\n }\r\n\r\n if (actualX > minX) {\r\n actualX = minX;\r\n }\r\n } else {\r\n minX += column.ignoreMin ? 0 : this.o.minColumnWidth;\r\n\r\n if (!isBoxing) {\r\n minX += Math.ceil((parseFloat(selectedHeaderCell.css('border-right-width')) || 0) / 2);\r\n minX += this._horizontalPadding(selectedHeaderCell[0]);\r\n }\r\n\r\n if (actualX < minX) {\r\n actualX = minX;\r\n }\r\n }\r\n\r\n p.$resizer.css('left', actualX + 'px');\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {Event} event event\r\n */\r\nDGTable.prototype._onEndDragColumnHeader = function (event) {\r\n\r\n let that = this,\r\n o = that.o,\r\n p = that.p;\r\n\r\n if (!p.$resizer) {\r\n event.target.style.opacity = null;\r\n } else {\r\n $(document).off('mousemove.dgtable', p.onMouseMoveResizeAreaBound)\r\n .off('mouseup.dgtable', p.onEndDragColumnHeaderBound);\r\n\r\n let column = p.columns.get(p.$resizer[0]['columnName']);\r\n let rtl = this._isTableRtl();\r\n\r\n let selectedHeaderCell = column.element,\r\n commonAncestor = p.$resizer.parent();\r\n let posCol = selectedHeaderCell.offset(), posRelative = commonAncestor.offset();\r\n posRelative.left += parseFloat(commonAncestor.css('border-left-width')) || 0;\r\n posCol.left -= posRelative.left;\r\n let resizerWidth = getElementWidth(p.$resizer[0], true, true, true);\r\n\r\n let isBoxing = selectedHeaderCell.css('box-sizing') === 'border-box';\r\n\r\n let actualX = event.pageX - posRelative.left;\r\n let baseX = posCol.left, minX = posCol.left;\r\n let width = 0;\r\n\r\n baseX -= Math.ceil(resizerWidth / 2);\r\n\r\n if (rtl) {\r\n\r\n if (!isBoxing) {\r\n actualX += this._horizontalPadding(selectedHeaderCell[0]);\r\n actualX += parseFloat(selectedHeaderCell.css('border-left-width')) || 0;\r\n actualX += parseFloat(selectedHeaderCell.css('border-right-width')) || 0;\r\n }\r\n\r\n baseX += getElementWidth(selectedHeaderCell[0], true, true, true);\r\n\r\n minX = baseX - (column.ignoreMin ? 0 : this.o.minColumnWidth);\r\n if (actualX > minX) {\r\n actualX = minX;\r\n }\r\n\r\n width = baseX - actualX;\r\n } else {\r\n\r\n if (!isBoxing) {\r\n actualX -= this._horizontalPadding(selectedHeaderCell[0]);\r\n actualX -= parseFloat(selectedHeaderCell.css('border-left-width')) || 0;\r\n actualX -= parseFloat(selectedHeaderCell.css('border-right-width')) || 0;\r\n }\r\n\r\n minX = baseX + (column.ignoreMin ? 0 : this.o.minColumnWidth);\r\n if (actualX < minX) {\r\n actualX = minX;\r\n }\r\n\r\n width = actualX - baseX;\r\n }\r\n\r\n p.$resizer.remove();\r\n p.$resizer = null;\r\n\r\n let sizeToSet = width;\r\n\r\n if (column.widthMode === ColumnWidthMode.RELATIVE) {\r\n let sizeLeft = this._calculateWidthAvailableForColumns();\r\n //sizeLeft -= p.table.offsetWidth - p.table.clientWidth;\r\n\r\n let totalRelativePercentage = 0;\r\n let relatives = 0;\r\n\r\n for (let i = 0; i < p.visibleColumns.length; i++) {\r\n let col = p.visibleColumns[i];\r\n if (col.name === column.name) continue;\r\n\r\n if (col.widthMode === ColumnWidthMode.RELATIVE) {\r\n totalRelativePercentage += col.width;\r\n relatives++;\r\n } else {\r\n sizeLeft -= col.actualWidth;\r\n }\r\n }\r\n\r\n sizeLeft = Math.max(1, sizeLeft);\r\n sizeToSet = width / sizeLeft;\r\n\r\n if (relatives > 0) {\r\n // When there's more than one relative overall,\r\n // we can do relative enlarging/shrinking.\r\n // Otherwise, we can end up having a 0 width.\r\n\r\n let unNormalizedSizeToSet = sizeToSet / ((1 - sizeToSet) / totalRelativePercentage);\r\n\r\n totalRelativePercentage += sizeToSet;\r\n\r\n // Account for relative widths scaling later\r\n if ((totalRelativePercentage < 1 && o.relativeWidthGrowsToFillWidth) ||\r\n (totalRelativePercentage > 1 && o.relativeWidthShrinksToFillWidth)) {\r\n sizeToSet = unNormalizedSizeToSet;\r\n }\r\n }\r\n\r\n sizeToSet *= 100;\r\n sizeToSet += '%';\r\n }\r\n\r\n this.setColumnWidth(column.name, sizeToSet);\r\n }\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {jQuery_Event} event event\r\n */\r\nDGTable.prototype._onDragEnterColumnHeader = function (event) {\r\n let that = this,\r\n o = that.o,\r\n p = that.p;\r\n\r\n if (o.movableColumns) {\r\n let dataTransferred = event.originalEvent.dataTransfer.getData('text');\r\n if (dataTransferred) {\r\n dataTransferred = JSON.parse(dataTransferred);\r\n }\r\n else {\r\n dataTransferred = null; // WebKit does not provide the dataTransfer on dragenter?..\r\n }\r\n\r\n let $headerCell = $(event.target).closest('div.' + o.tableClassName + '-header-cell,div.' + o.cellPreviewClassName);\r\n if (!dataTransferred ||\r\n (p.dragId === dataTransferred.dragId && $headerCell['columnName'] !== dataTransferred.column)) {\r\n\r\n let column = p.columns.get($headerCell[0]['columnName']);\r\n if (column && (column.movable || column !== p.visibleColumns[0])) {\r\n $($headerCell).addClass('drag-over');\r\n }\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {jQuery_Event} event event\r\n */\r\nDGTable.prototype._onDragOverColumnHeader = function (event) {\r\n event.preventDefault();\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {jQuery_Event} event event\r\n */\r\nDGTable.prototype._onDragLeaveColumnHeader = function (event) {\r\n let o = this.o;\r\n let $headerCell = $(event.target).closest('div.' + o.tableClassName + '-header-cell,div.' + o.cellPreviewClassName);\r\n if ( !$($headerCell[0].firstChild)\r\n .has(event.originalEvent.relatedTarget).length ) {\r\n $headerCell.removeClass('drag-over');\r\n }\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {jQuery_Event} event event\r\n */\r\nDGTable.prototype._onDropColumnHeader = function (event) {\r\n event.preventDefault();\r\n\r\n let that = this,\r\n o = that.o,\r\n p = that.p;\r\n\r\n let dataTransferred = JSON.parse(event.originalEvent.dataTransfer.getData('text'));\r\n let $headerCell = $(event.target).closest('div.' + o.tableClassName + '-header-cell,div.' + o.cellPreviewClassName);\r\n if (o.movableColumns && dataTransferred.dragId === p.dragId) {\r\n let srcColName = dataTransferred.column,\r\n destColName = $headerCell[0]['columnName'],\r\n srcCol = p.columns.get(srcColName),\r\n destCol = p.columns.get(destColName);\r\n if (srcCol && destCol && srcCol.movable && (destCol.movable || destCol !== p.visibleColumns[0])) {\r\n this.moveColumn(srcColName, destColName);\r\n }\r\n }\r\n $($headerCell).removeClass('drag-over');\r\n};\r\n\r\n/**\r\n * @private\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype._clearSortArrows = function () {\r\n\r\n let that = this,\r\n p = that.p;\r\n\r\n if (p.$table) {\r\n let tableClassName = this.o.tableClassName;\r\n let sortedColumns = p.$headerRow.find('>div.' + tableClassName + '-header-cell.sorted');\r\n let arrows = sortedColumns.find('>div>.sort-arrow');\r\n for (let arrow of arrows) {\r\n let col = p.columns.get(arrow.parentNode.parentNode['columnName']);\r\n if (col) {\r\n col.arrowProposedWidth = 0;\r\n }\r\n }\r\n arrows.remove();\r\n sortedColumns.removeClass('sorted').removeClass('desc');\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {String} column the name of the sort column\r\n * @param {Boolean} descending table is sorted descending\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype._showSortArrow = function (column, descending) {\r\n\r\n let that = this,\r\n p = that.p;\r\n\r\n let col = p.columns.get(column);\r\n if (!col) return false;\r\n\r\n let arrow = createElement('span');\r\n arrow.className = 'sort-arrow';\r\n\r\n if (col.element) {\r\n col.element.addClass(descending ? 'sorted desc' : 'sorted');\r\n col.element[0].firstChild.insertBefore(arrow, col.element[0].firstChild.firstChild);\r\n }\r\n\r\n if (col.widthMode !== ColumnWidthMode.RELATIVE && this.o.adjustColumnWidthForSortArrow) {\r\n col.arrowProposedWidth = arrow.scrollWidth + (parseFloat($(arrow).css('margin-right')) || 0) + (parseFloat($(arrow).css('margin-left')) || 0);\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {Number} cellIndex index of the column in the DOM\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype._resizeColumnElements = function (cellIndex) {\r\n\r\n let that = this,\r\n p = that.p;\r\n\r\n let headerCells = p.$headerRow.find('div.' + this.o.tableClassName + '-header-cell');\r\n let col = p.columns.get(headerCells[cellIndex]['columnName']);\r\n\r\n if (col) {\r\n headerCells[cellIndex].style.width = (col.actualWidthConsideringScrollbarWidth || col.actualWidth) + 'px';\r\n\r\n let width = (col.actualWidthConsideringScrollbarWidth || col.actualWidth) + 'px';\r\n let tbodyChildren = p.$tbody[0].childNodes;\r\n for (let i = 0, count = tbodyChildren.length; i < count; i++) {\r\n let headerRow = tbodyChildren[i];\r\n if (headerRow.nodeType !== 1) continue;\r\n headerRow.childNodes[cellIndex].style.width = width;\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * @returns {DGTable} self\r\n * */\r\nDGTable.prototype._destroyHeaderCells = function() {\r\n\r\n let that = this,\r\n o = that.o,\r\n p = that.p;\r\n\r\n if (p.$headerRow) {\r\n this.trigger('headerrowdestroy', p.headerRow);\r\n p.$headerRow.find('div.' + o.tableClassName + '-header-cell').remove();\r\n p.$headerRow = null;\r\n p.headerRow = null;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * @private\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype._renderSkeletonBase = function () {\r\n let that = this,\r\n p = that.p,\r\n o = that.o;\r\n\r\n // Clean up old elements\r\n\r\n if (p.$table && o.virtualTable) {\r\n p.$table.remove();\r\n if (p.$tbody) {\r\n let rows = p.$tbody[0].childNodes;\r\n for (let i = 0, len = rows.length; i < len; i++) {\r\n that.trigger('rowdestroy', rows[i]);\r\n that._unbindCellEventsForRow(rows[i]);\r\n }\r\n }\r\n p.$table = p.table = p.$tbody = p.tbody = null;\r\n }\r\n\r\n that._destroyHeaderCells();\r\n p.currentTouchId = null;\r\n if (p.$header) {\r\n p.$header.remove();\r\n }\r\n\r\n // Create new base elements\r\n let tableClassName = o.tableClassName,\r\n headerCellClassName = tableClassName + '-header-cell',\r\n header = createElement('div'),\r\n $header = $(header),\r\n headerRow = createElement('div'),\r\n $headerRow = $(headerRow);\r\n\r\n header.className = tableClassName + '-header';\r\n headerRow.className = tableClassName + '-header-row';\r\n\r\n p.$header = $header;\r\n p.header = header;\r\n p.$headerRow = $headerRow;\r\n p.headerRow = headerRow;\r\n $headerRow.appendTo(p.$header);\r\n $header.prependTo(this.$el);\r\n\r\n relativizeElement(that.$el);\r\n\r\n if (o.width === DGTable.Width.SCROLL) {\r\n this.el.style.overflow = 'hidden';\r\n } else {\r\n this.el.style.overflow = '';\r\n }\r\n\r\n if (!o.height && o.virtualTable) {\r\n o.height = getElementHeight(this.$el[0], true);\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * @private\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype._renderSkeletonHeaderCells = function () {\r\n let that = this,\r\n p = that.p,\r\n o = that.o;\r\n\r\n let allowCellPreview = o.allowCellPreview,\r\n allowHeaderCellPreview = o.allowHeaderCellPreview;\r\n\r\n let tableClassName = o.tableClassName,\r\n headerCellClassName = tableClassName + '-header-cell',\r\n headerRow = p.headerRow;\r\n\r\n let ieDragDropHandler;\r\n if (hasIeDragAndDropBug) {\r\n ieDragDropHandler = function(evt) {\r\n evt.preventDefault();\r\n this.dragDrop();\r\n return false;\r\n };\r\n }\r\n\r\n let preventDefault = function (event) { event.preventDefault(); };\r\n\r\n // Create header cells\r\n for (let i = 0; i < p.visibleColumns.length; i++) {\r\n let column = p.visibleColumns[i];\r\n if (column.visible) {\r\n let cell = createElement('div');\r\n let $cell = $(cell);\r\n cell.draggable = true;\r\n cell.className = headerCellClassName;\r\n cell.style.width = column.actualWidth + 'px';\r\n if (o.sortableColumns && column.sortable) {\r\n cell.className += ' sortable';\r\n }\r\n cell['columnName'] = column.name;\r\n cell.setAttribute('data-column', column.name);\r\n\r\n let cellInside = createElement('div');\r\n cellInside.innerHTML = o.headerCellFormatter(column.label, column.name);\r\n cell.appendChild(cellInside);\r\n if (allowCellPreview && allowHeaderCellPreview) {\r\n p._bindCellHoverIn(cell);\r\n }\r\n headerRow.appendChild(cell);\r\n\r\n p.visibleColumns[i].element = $cell;\r\n\r\n $cell.on('mousedown.dgtable', that._onMouseDownColumnHeader.bind(that))\r\n .on('mousemove.dgtable', that._onMouseMoveColumnHeader.bind(that))\r\n .on('mouseup.dgtable', that._onMouseUpColumnHeader.bind(that))\r\n .on('mouseleave.dgtable', that._onMouseLeaveColumnHeader.bind(that))\r\n .on('touchstart.dgtable', that._onTouchStartColumnHeader.bind(that))\r\n .on('dragstart.dgtable', that._onStartDragColumnHeader.bind(that))\r\n .on('click.dgtable', that._onClickColumnHeader.bind(that))\r\n .on('contextmenu.dgtable', preventDefault);\r\n $(cellInside)\r\n .on('dragenter.dgtable', that._onDragEnterColumnHeader.bind(that))\r\n .on('dragover.dgtable', that._onDragOverColumnHeader.bind(that))\r\n .on('dragleave.dgtable', that._onDragLeaveColumnHeader.bind(that))\r\n .on('drop.dgtable', that._onDropColumnHeader.bind(that));\r\n\r\n if (hasIeDragAndDropBug) {\r\n $cell.on('selectstart.dgtable', ieDragDropHandler.bind(cell));\r\n }\r\n\r\n // Disable these to allow our own context menu events without interruption\r\n $cell.css({ '-webkit-touch-callout': 'none', '-webkit-user-select': 'none', '-moz-user-select': 'none', '-ms-user-select': 'none', '-o-user-select': 'none', 'user-select': 'none' });\r\n }\r\n }\r\n\r\n this.trigger('headerrowcreate', headerRow);\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * @private\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype._renderSkeletonBody = function () {\r\n let that = this,\r\n p = that.p,\r\n o = that.o;\r\n\r\n let tableClassName = o.tableClassName;\r\n\r\n // Calculate virtual row heights\r\n if (o.virtualTable && !p.virtualRowHeight) {\r\n let createDummyRow = function() {\r\n let row = createElement('div'),\r\n cell = row.appendChild(createElement('div')),\r\n cellInner = cell.appendChild(createElement('div'));\r\n row.className = tableClassName + '-row';\r\n cell.className = tableClassName + '-cell';\r\n cellInner.innerHTML = '0';\r\n row.style.visibility = 'hidden';\r\n row.style.position = 'absolute';\r\n return row;\r\n };\r\n\r\n let $dummyTbody, $dummyWrapper = $('<div>')\r\n .addClass(that.el.className)\r\n .css({ 'z-index': -1, 'position': 'absolute', left: '0', top: '-9999px', width: '1px', overflow: 'hidden' })\r\n .append(\r\n $('<div>').addClass(tableClassName).append(\r\n $dummyTbody = $('<div>').addClass(tableClassName + '-body').css('width', 99999),\r\n ),\r\n );\r\n\r\n $dummyWrapper.appendTo(document.body);\r\n\r\n let row1 = createDummyRow(), row2 = createDummyRow(), row3 = createDummyRow();\r\n $dummyTbody.append(row1, row2, row3);\r\n\r\n p.virtualRowHeightFirst = getElementHeight(row1, true, true, true);\r\n p.virtualRowHeight = getElementHeight(row2, true, true, true);\r\n p.virtualRowHeightLast = getElementHeight(row3, true, true, true);\r\n\r\n p.virtualRowHeightMin = Math.min(Math.min(p.virtualRowHeightFirst, p.virtualRowHeight), p.virtualRowHeightLast);\r\n p.virtualRowHeightMax = Math.max(Math.max(p.virtualRowHeightFirst, p.virtualRowHeight), p.virtualRowHeightLast);\r\n\r\n $dummyWrapper.remove();\r\n }\r\n\r\n // Create inner table and tbody\r\n if (!p.$table) {\r\n\r\n let fragment = document.createDocumentFragment();\r\n\r\n // Create the inner table element\r\n let table = createElement('div');\r\n let $table = $(table);\r\n table.className = tableClassName;\r\n\r\n if (o.virtualTable) {\r\n table.className += ' virtual';\r\n }\r\n\r\n let tableHeight = (o.height - getElementHeight(p.$headerRow[0], true, true, true));\r\n if ($table.css('box-sizing') !== 'border-box') {\r\n tableHeight -= parseFloat($table.css('border-top-width')) || 0;\r\n tableHeight -= parseFloat($table.css('border-bottom-width')) || 0;\r\n tableHeight -= parseFloat($table.css('padding-top')) || 0;\r\n tableHeight -= parseFloat($table.css('padding-bottom')) || 0;\r\n }\r\n p.visibleHeight = tableHeight;\r\n table.style.height = o.height ? tableHeight + 'px' : 'auto';\r\n table.style.display = 'block';\r\n table.style.overflowY = 'auto';\r\n table.style.overflowX = o.width === DGTable.Width.SCROLL ? 'auto' : 'hidden';\r\n fragment.appendChild(table);\r\n\r\n // Create the \"tbody\" element\r\n let tbody = createElement('div');\r\n let $tbody = $(tbody);\r\n tbody.className = o.tableClassName + '-body';\r\n p.table = table;\r\n p.tbody = tbody;\r\n p.$table = $table;\r\n p.$tbody = $tbody;\r\n\r\n if (o.virtualTable) {\r\n p.virtualVisibleRows = Math.ceil(p.visibleHeight / p.virtualRowHeightMin);\r\n }\r\n\r\n that._calculateVirtualHeight();\r\n\r\n relativizeElement($tbody);\r\n relativizeElement($table);\r\n\r\n table.appendChild(tbody);\r\n that.el.appendChild(fragment);\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * @private\r\n * @returns {DGTable} self\r\n * @deprecated\r\n */\r\nDGTable.prototype._renderSkeleton = function () {\r\n return this;\r\n};\r\n\r\n/**\r\n * @private\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype._updateLastCellWidthFromScrollbar = function(force) {\r\n\r\n const p = this.p;\r\n\r\n // Calculate scrollbar's width and reduce from lat column's width\r\n let scrollbarWidth = p.table.offsetWidth - p.table.clientWidth;\r\n if (scrollbarWidth !== p.scrollbarWidth || force) {\r\n p.scrollbarWidth = scrollbarWidth;\r\n for (let i = 0; i < p.columns.length; i++) {\r\n p.columns[i].actualWidthConsideringScrollbarWidth = null;\r\n }\r\n\r\n if (p.scrollbarWidth > 0 && p.visibleColumns.length > 0) {\r\n // (There should always be at least 1 column visible, but just in case)\r\n let lastColIndex = p.visibleColumns.length - 1;\r\n\r\n p.visibleColumns[lastColIndex].actualWidthConsideringScrollbarWidth = p.visibleColumns[lastColIndex].actualWidth - p.scrollbarWidth;\r\n let lastColWidth = p.visibleColumns[lastColIndex].actualWidthConsideringScrollbarWidth + 'px';\r\n let tbodyChildren = p.tbody.childNodes;\r\n for (let i = 0, count = tbodyChildren.length; i < count; i++) {\r\n let row = tbodyChildren[i];\r\n if (row.nodeType !== 1) continue;\r\n row.childNodes[lastColIndex].style.width = lastColWidth;\r\n }\r\n\r\n p.headerRow.childNodes[lastColIndex].style.width = lastColWidth;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Explicitly set the width of the table based on the sum of the column widths\r\n * @private\r\n * @param {boolean} parentSizeMayHaveChanged Parent size may have changed, treat rendering accordingly\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype._updateTableWidth = function (parentSizeMayHaveChanged) {\r\n const o = this.o, p = this.p;\r\n let width = this._calculateTbodyWidth();\r\n\r\n p.tbody.style.minWidth = width + 'px';\r\n p.headerRow.style.minWidth = (width + (p.scrollbarWidth || 0)) + 'px';\r\n\r\n p.$table.off('scroll', p.onTableScrolledHorizontallyBound);\r\n\r\n if (o.width === DGTable.Width.AUTO) {\r\n // Update wrapper element's size to fully contain the table body\r\n\r\n setElementWidth(p.$table[0], getElementWidth(p.$tbody[0], true, true, true));\r\n setElementWidth(this.$el[0], getElementWidth(p.$table[0], true, true, true));\r\n\r\n } else if (o.width === DGTable.Width.SCROLL) {\r\n\r\n if (parentSizeMayHaveChanged) {\r\n let lastScrollTop = p.table ? p.table.scrollTop : 0,\r\n lastScrollLeft = p.table ? p.table.scrollLeft : 0;\r\n\r\n // BUGFIX: Relayout before recording the widths\r\n webkitRenderBugfix(this.el);\r\n\r\n p.table.scrollTop = lastScrollTop;\r\n p.table.scrollLeft = lastScrollLeft;\r\n p.header.scrollLeft = lastScrollLeft;\r\n }\r\n\r\n p.$table.on('scroll', p.onTableScrolledHorizontallyBound);\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * @private\r\n * @returns {Boolean}\r\n */\r\nDGTable.prototype._isTableRtl = function() {\r\n return this.p.$table.css('direction') === 'rtl';\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {Object} column column object\r\n * @returns {String}\r\n */\r\nDGTable.prototype._serializeColumnWidth = function(column) {\r\n return column.widthMode === ColumnWidthMode.AUTO ? 'auto' :\r\n column.widthMode === ColumnWidthMode.RELATIVE ? column.width * 100 + '%' :\r\n column.width;\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {HTMLElement} el\r\n */\r\nDGTable.prototype._cellMouseOverEvent = function(el) {\r\n const o = this.o, p = this.p;\r\n\r\n let elInner = el.firstChild;\r\n\r\n if ((elInner.scrollWidth - elInner.clientWidth > 1) ||\r\n (elInner.scrollHeight - elInner.clientHeight > 1)) {\r\n\r\n this.hideCellPreview();\r\n p.abortCellPreview = false;\r\n\r\n let $el = $(el), $elInner = $(elInner);\r\n let previewCell = createElement('div'), $previewCell = $(previewCell);\r\n previewCell.innerHTML = el.innerHTML;\r\n previewCell.className = o.cellPreviewClassName;\r\n\r\n let isHeaderCell = $el.hasClass(o.tableClassName + '-header-cell');\r\n if (isHeaderCell) {\r\n previewCell.className += ' header';\r\n if ($el.hasClass('sortable')) {\r\n previewCell.className += ' sortable';\r\n }\r\n\r\n previewCell.draggable = true;\r\n\r\n $(previewCell).on('mousedown', this._onMouseDownColumnHeader.bind(this))\r\n .on('mousemove', this._onMouseMoveColumnHeader.bind(this))\r\n .on('mouseup', this._onMouseUpColumnHeader.bind(this))\r\n .on('mouseleave', this._onMouseLeaveColumnHeader.bind(this))\r\n .on('touchstart', this._onTouchStartColumnHeader.bind(this))\r\n .on('dragstart', this._onStartDragColumnHeader.bind(this))\r\n .on('click', this._onClickColumnHeader.bind(this))\r\n .on('contextmenu.dgtable', function (event) { event.preventDefault(); });\r\n $(previewCell.firstChild)\r\n .on('dragenter', this._onDragEnterColumnHeader.bind(this))\r\n .on('dragover', this._onDragOverColumnHeader.bind(this))\r\n .on('dragleave', this._onDragLeaveColumnHeader.bind(this))\r\n .on('drop', this._onDropColumnHeader.bind(this));\r\n\r\n if (hasIeDragAndDropBug) {\r\n $(previewCell).on('selectstart', (function(evt) {\r\n evt.preventDefault();\r\n this.dragDrop();\r\n return false;\r\n }).bind(previewCell));\r\n }\r\n }\r\n\r\n let paddingL = parseFloat($el.css('padding-left')) || 0,\r\n paddingR = parseFloat($el.css('padding-right')) || 0,\r\n paddingT = parseFloat($el.css('padding-top')) || 0,\r\n paddingB = parseFloat($el.css('padding-bottom')) || 0;\r\n\r\n let requiredWidth = elInner.scrollWidth + (el.clientWidth - elInner.offsetWidth);\r\n\r\n let borderBox = $el.css('box-sizing') === 'border-box';\r\n if (borderBox) {\r\n $previewCell.css('box-sizing', 'border-box');\r\n } else {\r\n requiredWidth -= paddingL + paddingR;\r\n $previewCell.css('margin-top', parseFloat($(el).css('border-top-width')) || 0);\r\n }\r\n\r\n if (!p.transparentBgColor1) {\r\n // Detect browser's transparent spec\r\n let tempDiv = document.createElement('div');\r\n tempDiv.style.backgroundColor = 'transparent';\r\n p.transparentBgColor1 = $(tempDiv).css('background-color');\r\n tempDiv.style.backgroundColor = 'rgba(0,0,0,0)';\r\n p.transparentBgColor2 = $(tempDiv).css('background-color');\r\n }\r\n\r\n let css = {\r\n 'box-sizing': borderBox ? 'border-box' : 'content-box',\r\n 'width': requiredWidth,\r\n 'min-height': getElementHeight($el[0]),\r\n 'padding-left': paddingL,\r\n 'padding-right': paddingR,\r\n 'padding-top': paddingT,\r\n 'padding-bottom': paddingB,\r\n 'overflow': 'hidden',\r\n 'position': 'absolute',\r\n 'z-index': '-1',\r\n 'left': '0',\r\n 'top': '0',\r\n 'cursor': 'default',\r\n };\r\n\r\n if (css) {\r\n let bgColor = $(el).css('background-color');\r\n if (bgColor === p.transparentBgColor1 || bgColor === p.transparentBgColor2) {\r\n bgColor = $(el.parentNode).css('background-color');\r\n }\r\n if (bgColor === p.transparentBgColor1 || bgColor === p.transparentBgColor2) {\r\n bgColor = '#fff';\r\n }\r\n css['background-color'] = bgColor;\r\n }\r\n\r\n $previewCell.css(css);\r\n\r\n this.el.appendChild(previewCell);\r\n\r\n $(previewCell.firstChild).css({\r\n 'direction': $elInner.css('direction'),\r\n 'white-space': $elInner.css('white-space'),\r\n });\r\n\r\n if (isHeaderCell) {\r\n // Disable these to allow our own context menu events without interruption\r\n $previewCell.css({\r\n '-webkit-touch-callout': 'none',\r\n '-webkit-user-select': 'none',\r\n '-moz-user-select': 'none',\r\n '-ms-user-select': 'none',\r\n '-o-user-select': 'none',\r\n 'user-select': 'none',\r\n });\r\n }\r\n\r\n previewCell['rowIndex'] = el.parentNode['rowIndex'];\r\n let physicalRowIndex = previewCell['physicalRowIndex'] = el.parentNode['physicalRowIndex'];\r\n previewCell['columnName'] = p.visibleColumns[nativeIndexOf.call(el.parentNode.childNodes, el)].name;\r\n\r\n try {\r\n let selection = SelectionHelper.saveSelection(el);\r\n if (selection)\r\n SelectionHelper.restoreSelection(previewCell, selection);\r\n } catch (ignored) { /* we're ok with this */ }\r\n\r\n this.trigger(\r\n 'cellpreview',\r\n previewCell.firstChild,\r\n physicalRowIndex == null ? null : physicalRowIndex,\r\n previewCell['columnName'],\r\n physicalRowIndex == null ? null : p.rows[physicalRowIndex],\r\n el,\r\n );\r\n\r\n if (p.abortCellPreview) {\r\n $previewCell.remove();\r\n return;\r\n }\r\n\r\n let $parent = this.$el;\r\n let $scrollParent = $parent[0] === window ? $(document) : $parent;\r\n\r\n let offset = $el.offset();\r\n let parentOffset = $parent.offset();\r\n let rtl = $el.css('float') === 'right';\r\n let prop = rtl ? 'right' : 'left';\r\n\r\n // Handle RTL, go from the other side\r\n if (rtl) {\r\n let windowWidth = $(window).width();\r\n offset.right = windowWidth - (offset.left + getElementWidth($el[0], true, true, true));\r\n parentOffset.right = windowWidth - (parentOffset.left + getElementWidth($parent[0], true, true, true));\r\n }\r\n\r\n // If the parent has borders, then it would offset the offset...\r\n offset.left -= parseFloat($parent.css('border-left-width')) || 0;\r\n offset.right -= parseFloat($parent.css('border-right-width')) || 0;\r\n offset.top -= parseFloat($parent.css('border-top-width')) || 0;\r\n\r\n // Handle border widths of the element being offset\r\n offset[prop] += parseFloat($(el).css('border-' + prop + '-width')) || 0;\r\n offset.top += parseFloat($(el).css('border-top-width')) || parseFloat($(el).css('border-bottom-width')) || 0;\r\n\r\n // Subtract offsets to get offset relative to parent\r\n offset.left -= parentOffset.left;\r\n offset.right -= parentOffset.right;\r\n offset.top -= parentOffset.top;\r\n\r\n // Constrain horizontally\r\n let minHorz = 0,\r\n maxHorz = $parent - getElementWidth($previewCell[0], true, true, true);\r\n offset[prop] = offset[prop] < minHorz ?\r\n minHorz :\r\n (offset[prop] > maxHorz ? maxHorz : offset[prop]);\r\n\r\n // Constrain vertically\r\n let totalHeight = getElementHeight($el[0], true, true, true);\r\n let maxTop = $scrollParent.scrollTop() + getElementHeight($parent[0], true) - totalHeight;\r\n if (offset.top > maxTop) {\r\n offset.top = Math.max(0, maxTop);\r\n }\r\n\r\n // Apply css to preview cell\r\n let previewCss = {\r\n top: offset.top,\r\n 'z-index': 9999,\r\n };\r\n previewCss[prop] = offset[prop];\r\n\r\n $previewCell.css(previewCss);\r\n\r\n previewCell['__cell'] = el;\r\n p.$cellPreviewCell = $previewCell;\r\n el['__previewCell'] = previewCell;\r\n\r\n p._bindCellHoverOut(el);\r\n p._bindCellHoverOut(previewCell);\r\n\r\n $previewCell.on('mousewheel', (event) => {\r\n let originalEvent = event.originalEvent;\r\n let xy = originalEvent.wheelDelta || -originalEvent.detail,\r\n x = originalEvent.wheelDeltaX || (originalEvent.axis === 1 ? xy : 0),\r\n y = originalEvent.wheelDeltaY || (originalEvent.axis === 2 ? xy : 0);\r\n\r\n if (xy) {\r\n this.hideCellPreview();\r\n }\r\n\r\n if (y && p.table.scrollHeight > p.table.clientHeight) {\r\n let scrollTop = (y * -1) + p.$table.scrollTop();\r\n p.$table.scrollTop(scrollTop);\r\n }\r\n\r\n if (x && p.table.scrollWidth > p.table.clientWidth) {\r\n let scrollLeft = (x * -1) + p.$table.scrollLeft();\r\n p.$table.scrollLeft(scrollLeft);\r\n }\r\n });\r\n }\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {HTMLElement} _el\r\n */\r\nDGTable.prototype._cellMouseOutEvent = function(_el) {\r\n this.hideCellPreview();\r\n};\r\n\r\n/**\r\n * Hides the current cell preview,\r\n * or prevents the one that is currently trying to show (in the 'cellpreview' event)\r\n * @public\r\n * @expose\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.hideCellPreview = function() {\r\n const p = this.p;\r\n\r\n if (p.$cellPreviewCell) {\r\n let previewCell = p.$cellPreviewCell[0];\r\n let origCell = previewCell['__cell'];\r\n let selection;\r\n\r\n try {\r\n selection = SelectionHelper.saveSelection(previewCell);\r\n } catch (ignored) { /* we're ok with this */ }\r\n\r\n p.$cellPreviewCell.remove();\r\n p._unbindCellHoverOut(origCell);\r\n p._unbindCellHoverOut(previewCell);\r\n\r\n try {\r\n if (selection)\r\n SelectionHelper.restoreSelection(origCell, selection);\r\n } catch (ignored) { /* we're ok with this */ }\r\n\r\n this.trigger('cellpreviewdestroy', previewCell.firstChild, previewCell['physicalRowIndex'], previewCell['columnName'], origCell);\r\n\r\n origCell['__previewCell'] = null;\r\n previewCell['__cell'] = null;\r\n\r\n p.$cellPreviewCell = null;\r\n p.abortCellPreview = false;\r\n } else {\r\n p.abortCellPreview = true;\r\n }\r\n\r\n return this;\r\n};\r\n\r\n// It's a shame the Google Closure Compiler does not support exposing a nested @param\r\n\r\n/**\r\n * @typedef {Object} SERIALIZED_COLUMN\r\n * @property {Number|null|undefined} [order=0]\r\n * @property {String|null|undefined} [width='auto']\r\n * @property {Boolean|null|undefined} [visible=true]\r\n * */\r\n\r\n/**\r\n * @typedef {Object} SERIALIZED_COLUMN_SORT\r\n * @property {String|null|undefined} [column='']\r\n * @property {Boolean|null|undefined} [descending=false]\r\n * */\r\n\r\n/**\r\n * @enum {ColumnWidthMode|number|undefined}\r\n * @const\r\n * @typedef {ColumnWidthMode}\r\n */\r\nconst ColumnWidthMode = {\r\n /** @const*/ AUTO: 0,\r\n /** @const*/ ABSOLUTE: 1,\r\n /** @const*/ RELATIVE: 2,\r\n};\r\n\r\n/**\r\n * @enum {DGTable.Width|String|undefined}\r\n * @const\r\n * @typedef {DGTable.Width}\r\n */\r\nDGTable.Width = {\r\n /** @const*/ NONE: 'none',\r\n /** @const*/ AUTO: 'auto',\r\n /** @const*/ SCROLL: 'scroll',\r\n};\r\n\r\n/**\r\n * @expose\r\n * @typedef {Object} COLUMN_SORT_OPTIONS\r\n * @property {String|null|undefined} column\r\n * @property {Boolean|null|undefined} [descending=false]\r\n * */\r\n\r\n/**\r\n * @expose\r\n * @typedef {Object} COLUMN_OPTIONS\r\n * @property {String|null|undefined} width\r\n * @property {String|null|undefined} name\r\n * @property {String|null|undefined} label\r\n * @property {String|null|undefined} dataPath - defaults to `name`\r\n * @property {String|null|undefined} comparePath - defaults to `dataPath`\r\n * @property {Number|String|null|undefined} comparePath\r\n * @property {Boolean|null|undefined} [resizable=true]\r\n * @property {Boolean|null|undefined} [movable=true]\r\n * @property {Boolean|null|undefined} [sortable=true]\r\n * @property {Boolean|null|undefined} [visible=true]\r\n * @property {String|null|undefined} [cellClasses]\r\n * @property {Boolean|null|undefined} [ignoreMin=false]\r\n * */\r\n\r\n/**\r\n * @typedef {Object} DGTable.Options\r\n * @property {COLUMN_OPTIONS[]} [columns]\r\n * @property {Number} [height]\r\n * @property {DGTable.Width} [width]\r\n * @property {Boolean|null|undefined} [virtualTable=true]\r\n * @property {Boolean|null|undefined} [resizableColumns=true]\r\n * @property {Boolean|null|undefined} [movableColumns=true]\r\n * @property {Number|null|undefined} [sortableColumns=1]\r\n * @property {Boolean|null|undefined} [adjustColumnWidthForSortArrow=true]\r\n * @property {Boolean|null|undefined} [relativeWidthGrowsToFillWidth=true]\r\n * @property {Boolean|null|undefined} [relativeWidthShrinksToFillWidth=false]\r\n * @property {Boolean|null|undefined} [convertColumnWidthsToRelative=false]\r\n * @property {Boolean|null|undefined} [autoFillTableWidth=false]\r\n * @property {String|null|undefined} [cellClasses]\r\n * @property {String|String[]|COLUMN_SORT_OPTIONS|COLUMN_SORT_OPTIONS[]} [sortColumn]\r\n * @property {Function|null|undefined} [cellFormatter=null]\r\n * @property {Function|null|undefined} [headerCellFormatter=null]\r\n * @property {Number|null|undefined} [rowsBufferSize=10]\r\n * @property {Number|null|undefined} [minColumnWidth=35]\r\n * @property {Number|null|undefined} [resizeAreaWidth=8]\r\n * @property {{function(string,boolean):{function(a:*,b:*):boolean}}} [onComparatorRequired]\r\n * @property {String|null|undefined} [resizerClassName=undefined]\r\n * @property {String|null|undefined} [tableClassName=undefined]\r\n * @property {Boolean|null|undefined} [allowCellPreview=true]\r\n * @property {Boolean|null|undefined} [allowHeaderCellPreview=true]\r\n * @property {String|null|undefined} [cellPreviewClassName=undefined]\r\n * @property {Boolean|null|undefined} [cellPreviewAutoBackground=true]\r\n * @property {Element|null|undefined} [el=undefined]\r\n * @property {String|null|undefined} [className=undefined]\r\n * @property {Function|null|undefined} [filter=undefined]\r\n * */\r\n\r\n/**\r\n * @typedef {{\r\n * currentTarget: Element,\r\n * data: Object.<string, *>,\r\n * delegateTarget: Element,\r\n * isDefaultPrevented: Boolean,\r\n * isImmediatePropagationStopped: Boolean,\r\n * isPropagationStopped: Boolean,\r\n * namespace: string,\r\n * originalEvent: MouseEvent|TouchEvent|Event,\r\n * pageX: Number,\r\n * pageY: Number,\r\n * preventDefault: Function,\r\n * props: Object.<string, *>,\r\n * relatedTarget: Element,\r\n * result: *,\r\n * stopImmediatePropagation: Function,\r\n * stopPropagation: Function,\r\n * target: Element,\r\n * timeStamp: Number,\r\n * type: string,\r\n * which: Number\r\n * }} jQuery_Event\r\n * */\r\n\r\nif (!$.controls) {\r\n $.controls = {};\r\n}\r\n\r\n$.controls.dgtable = DGTable;\r\n\r\nexport default DGTable;\r\n"],"names":["check","it","Math","global","globalThis","window","self","this","Function","fails","exec","error","descriptors","require$$0","Object","defineProperty","get","$propertyIsEnumerable","propertyIsEnumerable","getOwnPropertyDescriptor","NASHORN_BUG","call","1","V","descriptor","enumerable","match","version","createPropertyDescriptor","bitmap","value","configurable","writable","toString","classofRaw","slice","classof","require$$1","split","indexedObject","requireObjectCoercible","undefined","TypeError","IndexedObject","toIndexedObject","isObject","aFunction","variable","getBuiltIn","namespace","method","arguments","length","engineUserAgent","userAgent","process","Deno","versions","v8","engineV8Version","V8_VERSION","nativeSymbol","getOwnPropertySymbols","symbol","Symbol","String","sham","useSymbolAsUid","iterator","isSymbol","$Symbol","setGlobal","key","SHARED","sharedStore","store","sharedModule","push","mode","copyright","toObject","argument","hasOwnProperty","has","hasOwn","id","postfix","random","uid","shared","require$$2","require$$3","NATIVE_SYMBOL","require$$4","USE_SYMBOL_AS_UID","require$$5","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","wellKnownSymbol","name","TO_PRIMITIVE","toPrimitive","input","pref","result","exoticToPrim","fn","val","valueOf","ordinaryToPrimitive","toPropertyKey","document","EXISTS","createElement","documentCreateElement","ie8DomDefine","a","DESCRIPTORS","propertyIsEnumerableModule","IE8_DOM_DEFINE","require$$6","$getOwnPropertyDescriptor","O","P","f","anObject","$defineProperty","Attributes","definePropertyModule","createNonEnumerableProperty","object","functionToString","inspectSource","set","WeakMap","nativeWeakMap","test","keys","sharedKey","hiddenKeys","NATIVE_WEAK_MAP","objectHas","require$$7","OBJECT_ALREADY_INITIALIZED","state","wmget","wmhas","wmset","metadata","facade","STATE","internalState","enforce","getterFor","TYPE","type","getInternalState","enforceInternalState","TEMPLATE","redefineModule","options","unsafe","simple","noTargetGet","source","join","prototype","ceil","floor","toInteger","isNaN","min","toLength","max","toAbsoluteIndex","index","integer","createMethod","IS_INCLUDES","$this","el","fromIndex","arrayIncludes","includes","indexOf","objectKeysInternal","names","i","enumBugKeys","internalObjectKeys","concat","getOwnPropertyNames","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","ownKeys","getOwnPropertyDescriptorModule","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","replace","toLowerCase","isForced_1","redefine","copyConstructorProperties","target","_export","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","forced","arrayMethodIsStrict","METHOD_NAME","$","$indexOf","nativeIndexOf","NEGATIVE_ZERO","STRICT_METHOD","proto","searchElement","apply","whitespace","ltrim","RegExp","rtrim","stringTrim","start","end","trim","$parseFloat","parseFloat","numberParseFloat","whitespaces","trimmedString","charAt","isArray","Array","arg","createProperty","propertyKey","SPECIES","arraySpeciesCreate","originalArray","C","constructor","arrayMethodHasSpeciesSupport","array","foo","Boolean","require$$8","require$$10","IS_CONCAT_SPREADABLE","require$$9","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","k","len","E","A","n","HAS_SPECIES_SUPPORT","nativeSlice","Constructor","fin","$parseInt","parseInt","hex","numberParseInt","radix","S","functionBindContext","that","b","c","bind","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","callbackfn","specificCreate","boundFunction","create","arrayIteration","forEach","map","filter","some","every","find","findIndex","filterReject","$filter","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","splice","deleteCount","insertCount","actualDeleteCount","from","to","actualStart","argumentsLength","FunctionPrototype","FunctionPrototypeToString","nameRE","NAME","regexpFlags","ignoreCase","multiline","dotAll","unicode","sticky","RE","s","re","lastIndex","activeXDocument","objectKeys","objectDefineProperties","defineProperties","Properties","html","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","domain","iframeDocument","iframe","style","display","appendChild","src","contentWindow","open","F","NullProtoObjectViaIFrame","re1","re2","objectCreate","regexpUnsupportedDotAll","flags","regexpUnsupportedNcg","groups","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","reCopy","group","str","raw","charsAdded","strCopy","regexpExec","RegExpPrototype","fixRegexpWellKnownSymbolLogic","KEY","FORCED","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","methods","nativeMethod","regexp","arg2","forceStringMethod","$exec","done","MATCH","CONVERT_TO_STRING","pos","first","second","position","size","charCodeAt","stringMultibyte","codeAt","advanceStringIndex","regexpExecAbstract","R","fixRegExpWellKnownSymbolLogic","callRegExpExec","require$$11","arrayPush","MAX_UINT32","SPLIT","nativeSplit","maybeCallNative","internalSplit","separator","limit","lim","isRegExp","lastLength","output","lastLastIndex","separatorCopy","splitter","rx","res","defaultConstructor","speciesConstructor","unicodeMatching","p","q","e","z","originalExec","UNSCOPABLES","ArrayPrototype","addToUnscopables","$find","FIND","SKIPS_HOLES","mergeSort","comparefn","middle","insertionSort","merge","element","j","left","right","llength","rlength","lindex","rindex","arraySort","firefox","engineFfVersion","engineIsIeOrEdge","webkit","engineWebkitVersion","internalSort","FF","IE_OR_EDGE","V8","WEBKIT","nativeSort","sort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STABLE_SORT","code","chr","fromCharCode","v","itemsLength","items","arrayLength","x","y","getSortCompare","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","iterators","correctPrototypeGetter","getPrototypeOf","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","objectGetPrototypeOf","ITERATOR","BUGGY_SAFARI_ITERATORS","iteratorsCore","TO_STRING_TAG","setToStringTag","TAG","Iterators","returnThis","createIteratorConstructor","IteratorConstructor","next","objectSetPrototypeOf","setPrototypeOf","setter","CORRECT_SETTER","aPossiblePrototype","__proto__","KEYS","VALUES","ENTRIES","defineIterator","Iterable","DEFAULT","IS_SET","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","values","InternalStateModule","ARRAY_ITERATOR","setInternalState","es_array_iterator","iterated","kind","Arguments","toStringTagSupport","TO_STRING_TAG_SUPPORT","CORRECT_ARGUMENTS","tag","tryGet","callee","objectToString","STRING_ITERATOR","point","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","ArrayIteratorMethods","ArrayValues","COLLECTION_NAME","Collection","CollectionPrototype","nativeUrl","url","URL","searchParams","pathname","href","URLSearchParams","username","host","hash","anInstance","$assign","assign","objectAssign","B","alphabet","T","getIteratorMethod","callWithSafeIterationClosing","returnMethod","iteratorClose","isArrayIteratorMethod","maxInt","regexNonASCII","regexSeparators","OVERFLOW_ERROR","stringFromCharCode","digitToBasic","digit","adapt","delta","numPoints","firstTime","baseMinusTMin","base","encode","currentValue","inputLength","counter","extra","ucs2decode","bias","basicLength","handledCPCount","m","handledCPCountPlusOne","RangeError","t","qMinusT","baseMinusT","USE_NATIVE_URL","require$$12","require$$13","$toString","require$$14","require$$15","require$$16","getIterator","iteratorMethod","require$$18","require$$19","nativeFetch","NativeRequest","RequestPrototype","Headers","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","plus","sequences","percentSequence","bytes","percentDecode","sequence","decodeURIComponent","deserialize","!","'","(",")","~","%20","replacer","serialize","encodeURIComponent","parseSearchParams","query","attribute","entry","attributes","shift","updateSearchParams","validateArgumentsLength","passed","required","URLSearchParamsIterator","params","step","URLSearchParamsConstructor","entryIterator","entryNext","init","updateURL","URLSearchParamsPrototype","redefineAll","append","delete","getAll","found","entriesIndex","sliceIndex","callback","wrapRequestOptions","headers","body","fetch","RequestConstructor","Request","EOF","web_urlSearchParams","getState","arrayFrom","arrayLike","mapfn","mapping","URLSearchParamsModule","NativeURL","getInternalSearchParamsState","getInternalURLState","pow","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseHost","codePoints","parseIPv6","isSpecial","label","encoded","labels","toASCII","parseIPv4","percentEncode","C0ControlPercentEncodeSet","partsLength","numbers","part","number","ipv4","parts","pop","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","compress","pointer","char","serializeHost","ignore0","unshift","ipv6","maxIndex","maxLength","currStart","currLength","findLongestZeroSequence","fragmentPercentEncodeSet"," ","\"","<",">","`","pathPercentEncodeSet","#","?","{","}","userinfoPercentEncodeSet","/",":",";","=","@","[","\\","]","^","|","specialSchemes","ftp","file","http","https","ws","wss","scheme","includesCredentials","password","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","normalized","startsWithWindowsDriveLetter","third","shortenURLsPath","path","pathSize","isSingleDot","segment","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","bufferCodePoints","failure","buffer","seenAt","seenBracket","seenPasswordToken","port","fragment","codePoint","encodedCodePoints","URLConstructor","baseState","urlString","searchParamsState","serializeURL","origin","getOrigin","protocol","getProtocol","getUsername","getPassword","getHost","hostname","getHostname","getPort","getPathname","search","getSearch","getSearchParams","getHash","URLPrototype","accessorDescriptor","getter","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","blob","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","getSubstitution","matched","captures","namedCaptures","tailPos","symbols","ch","capture","regExpExec","REPLACE","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","_","UNSAFE_SUBSTITUTE","searchValue","replaceValue","functionalReplace","fullUnicode","results","accumulatedResult","nextSourcePosition","replacerArgs","predicate","htmlEncode","text","RowCollection","collection","initialize","sortColumn","add","rows","at","reset","filteredCollection","filterFunc","args","row","onComparatorRequired","onSort","getDefaultComparator","column","descending","columnName","comparePath","pathLength","hasPath","lessVal","moreVal","leftRow","rightRow","leftVal","rightVal","ColumnCollection","silent","comparator","comparators","getByOrder","order","normalizeOrder","ordered","col1","col2","getColumns","cols","getVisibleColumns","visible","getMaxOrder","moveColumn","dest","srcOrder","destOrder","CssUtil","_isTransformSupported","getSupportedTransform","div","item","TO_STRING","nativeToString","NOT_GENERIC","INCORRECT_NAME","rf","SelectionHelper","range","getSelection","getRangeAt","commonAncestorContainer","child","parent","parentNode","isChildOf","preSelectionRange","cloneRange","selectNodeContents","setEnd","startContainer","startOffset","savedSel","node","charIndex","nodeStack","foundStart","stop","createRange","setStart","collapse","nodeType","nextCharIndex","childNodes","sel","removeAllRanges","addRange","ByColumnFilter","keyword","actualVal","caseSensitive","jQuery","navigator","ieVersion","substr","hasIeDragAndDropBug","relativizeElement","$el","css","getTextWidth","lastDetectedWidth","isInputElementEvent","event","tagName","DGTable","VERSION","o","events","Element","addClass","className","on","destroy","onMouseMoveResizeAreaBound","_onMouseMoveResizeArea","onEndDragColumnHeaderBound","_onEndDragColumnHeader","onTableScrolledHorizontallyBound","_onTableScrolledHorizontally","tableSkeletonNeedsRendering","virtualTable","rowsBufferSize","minColumnWidth","resizeAreaWidth","resizableColumns","movableColumns","sortableColumns","adjustColumnWidthForSortArrow","convertColumnWidthsToRelative","autoFillTableWidth","cellClasses","resizerClassName","tableClassName","allowCellPreview","allowHeaderCellPreview","cellPreviewClassName","cellPreviewAutoBackground","width","Width","NONE","relativeWidthGrowsToFillWidth","relativeWidthShrinksToFillWidth","setCellFormatter","cellFormatter","setHeaderCellFormatter","headerCellFormatter","setFilter","height","setColumns","columns","sortColumns","tmpSortColumns","_typeof","col","dataPath","filteredRows","hoverMouseOverHandler","evt","relatedTarget","fromElement","contains","_cellMouseOverEvent","hoverMouseOutHandler","toElement","_cellMouseOutEvent","_bindCellHoverIn","addEventListener","_unbindCellHoverIn","removeEventListener","_bindCellHoverOut","_unbindCellHoverOut","attachEvent","detachEvent","eventName","cb","once","off","callbacks","trigger","_parseColumnWidth","minWidth","widthSize","widthMode","ColumnWidthMode","AUTO","ABSOLUTE","_initColumnFromData","columnData","parsedWidth","ignoreMin","resizable","sortable","movable","remove","__removed","$resizer","$tbody","trs","_destroyHeaderCells","_unbindCellEventsForTable","$table","empty","workerListeners","worker","listener","prop","_deferredRender","clearTimeout","headerRow","rowCount","cells","cellCount","tbody","_unbindCellEventsForRow","rowToClean","render","renderedRows","offsetParent","setTimeout","_this","_clearSortArrows","lastScrollTop","table","scrollTop","NaN","lastScrollHorz","getScrollHorz","_renderSkeletonBase","_renderSkeletonBody","tableWidthChanged","_renderSkeletonHeaderCells","renderRows","_updateLastCellWidthFromScrollbar","_updateTableWidth","_showSortArrow","setScrollHorz","header","_onVirtualTableScrolled","firstVisible","virtualRowHeightFirst","virtualRowHeight","lastVisible","visibleHeight","countToRemove","oldFirstVisible","oldLastVisible","tbodyChildNodes","removeChild","prepend","clearAndRender","last","top","physicalRowIndex","rowClassName","cellClassName","isDataFiltered","visibleColumns","isVirtual","colCount","colIndex","_finalWidth","actualWidthConsideringScrollbarWidth","actualWidth","bodyFragment","createDocumentFragment","virtualRowXAttr","_isTableRtl","supportedTransform","rowData","cell","setAttribute","innerHTML","_getHtmlForCell","_calculateVirtualHeight","virtualRowHeightLast","_calculateTbodyWidth","$row","sumActualWidth","$thisWrapper","z-index","float","overflow","appendTo","fractionTest","fractionValue","hasFractions","round","getElementWidth","scrollbarWidth","normalizedCols","normalizedColumn","_ensureVisibleColumns","addColumn","before","beforeColumn","removeColumn","colIdx","formatter","hadFilter","filterArgs","extend","clearFilter","_refilter","setColumnLabel","firstChild","textContent","destCol","visibleOnly","columnsArray","headerCell","$headerRow","beforePos","fromPos","insertBefore","srcWidth","destWidth","tbodyChildren","count","currentSort","_tableSkeletonNeedsRendering","sorts","resort","setColumnVisible","isColumnVisible","setMinColumnWidth","getMinColumnWidth","setSortableColumns","getSortableColumns","setMovableColumns","getMovableColumns","setResizableColumns","getResizableColumns","setComparatorCallback","comparatorCallback","setColumnWidth","oldWidth","_serializeColumnWidth","newWidth","getColumnWidth","getColumnConfig","getColumnsConfig","config","getSortedColumns","sorted","getHtmlForRowCell","rowIndex","getHtmlForRowDataCell","colValue","dataPathIndex","getRowYPos","offsetTop","getDataForRow","getRowCount","getIndexForRow","getFilteredRowCount","getIndexForFilteredRow","getDataForFilteredRow","getHeaderRowElement","_horizontalPadding","_horizontalBorderWidth","_calculateWidthAvailableForColumns","oldDisplay","lastScrollLeft","scrollLeft","detectedWidth","$header","$cells","$cell","$tableWrapper","visibility","forceUpdate","renderColumns","sizeLeft","relatives","tableWidthBeforeCalculations","absWidthTotal","changedColumnIndexes","totalRelativePercentage","arrowProposedWidth","sizeLeftForRelative","clientWidth","minColumnWidthRelative","extraRelative","nonResizableTotal","sizeLeftToFill","conv","tableWidth","_resizeColumnElements","tableHeightChanged","getElementHeight","addRows","firstRow","lastRow","removeRows","lastRowIndex","removeRow","refreshRow","isRowVisible","renderedRow","getRowElement","refreshAllVirtualRows","rowsToRender","setRows","getUrlForElementContent","getElementById","Blob","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","builder","getBlob","webkitURL","isWorkerSupported","createWebWorker","Worker","postMessage","unbindWebWorker","abortCellPreview","hideCellPreview","cancelColumnResize","_getColumnByResizePosition","rtl","$headerCell","closest","previousElementSibling","previousSibling","firstCol","mouseX","pageX","originalEvent","clientX","offset","_onTouchStartColumnHeader","currentTouchId","startTouch","changedTouches","identifier","tapAndHoldTimeout","$eventTarget","currentTarget","startPos","pageY","currentPos","unbind","fakeEvent","Event","extendObjects","which","one","preventDefault","_event","sqrt","abs","_this2","touch","_onMouseDownColumnHeader","selectedHeaderCell","commonAncestor","posCol","posRelative","resizerWidth","zIndex","ignored","_onMouseMoveColumnHeader","cursor","_onMouseUpColumnHeader","bounds","_onMouseLeaveColumnHeader","_onClickColumnHeader","_onStartDragColumnHeader","opacity","dragId","dataTransfer","setData","JSON","stringify","isBoxing","actualX","minX","baseX","sizeToSet","unNormalizedSizeToSet","_onDragEnterColumnHeader","dataTransferred","getData","parse","_onDragOverColumnHeader","_onDragLeaveColumnHeader","removeClass","_onDropColumnHeader","srcColName","destColName","srcCol","sortedColumns","arrows","arrow","scrollWidth","cellIndex","headerCells","prependTo","SCROLL","ieDragDropHandler","headerCellClassName","dragDrop","draggable","cellInside","-webkit-touch-callout","-webkit-user-select","-moz-user-select","-ms-user-select","-o-user-select","user-select","$dummyTbody","createDummyRow","cellInner","$dummyWrapper","row1","row2","row3","virtualRowHeightMin","virtualRowHeightMax","tableHeight","overflowY","overflowX","virtualVisibleRows","_renderSkeleton","force","offsetWidth","lastColIndex","lastColWidth","parentSizeMayHaveChanged","setElementWidth","offsetHeight","elInner","scrollHeight","clientHeight","$elInner","previewCell","$previewCell","isHeaderCell","hasClass","paddingL","paddingR","paddingT","paddingB","requiredWidth","borderBox","transparentBgColor1","tempDiv","backgroundColor","transparentBgColor2","bgColor","selection","saveSelection","restoreSelection","$parent","$scrollParent","parentOffset","windowWidth","maxHorz","totalHeight","maxTop","previewCss","$cellPreviewCell","xy","wheelDelta","detail","wheelDeltaX","axis","wheelDeltaY","_this3","_el","origCell","controls","dgtable"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["node_modules/core-js/internals/global.js","node_modules/core-js/internals/fails.js","node_modules/core-js/internals/descriptors.js","node_modules/core-js/internals/function-call.js","node_modules/core-js/internals/object-property-is-enumerable.js","node_modules/core-js/internals/engine-v8-version.js","node_modules/core-js/internals/create-property-descriptor.js","node_modules/core-js/internals/function-uncurry-this.js","node_modules/core-js/internals/classof-raw.js","node_modules/core-js/internals/indexed-object.js","node_modules/core-js/internals/require-object-coercible.js","node_modules/core-js/internals/to-indexed-object.js","node_modules/core-js/internals/is-callable.js","node_modules/core-js/internals/is-object.js","node_modules/core-js/internals/get-built-in.js","node_modules/core-js/internals/object-is-prototype-of.js","node_modules/core-js/internals/engine-user-agent.js","node_modules/core-js/internals/native-symbol.js","node_modules/core-js/internals/use-symbol-as-uid.js","node_modules/core-js/internals/is-symbol.js","node_modules/core-js/internals/try-to-string.js","node_modules/core-js/internals/a-callable.js","node_modules/core-js/internals/get-method.js","node_modules/core-js/internals/ordinary-to-primitive.js","node_modules/core-js/internals/set-global.js","node_modules/core-js/internals/shared-store.js","node_modules/core-js/internals/shared.js","node_modules/core-js/internals/to-object.js","node_modules/core-js/internals/has-own-property.js","node_modules/core-js/internals/uid.js","node_modules/core-js/internals/well-known-symbol.js","node_modules/core-js/internals/to-primitive.js","node_modules/core-js/internals/to-property-key.js","node_modules/core-js/internals/document-create-element.js","node_modules/core-js/internals/ie8-dom-define.js","node_modules/core-js/internals/object-get-own-property-descriptor.js","node_modules/core-js/internals/v8-prototype-define-bug.js","node_modules/core-js/internals/an-object.js","node_modules/core-js/internals/object-define-property.js","node_modules/core-js/internals/create-non-enumerable-property.js","node_modules/core-js/internals/inspect-source.js","node_modules/core-js/internals/internal-state.js","node_modules/core-js/internals/native-weak-map.js","node_modules/core-js/internals/shared-key.js","node_modules/core-js/internals/hidden-keys.js","node_modules/core-js/internals/function-name.js","node_modules/core-js/internals/redefine.js","node_modules/core-js/internals/to-integer-or-infinity.js","node_modules/core-js/internals/to-absolute-index.js","node_modules/core-js/internals/to-length.js","node_modules/core-js/internals/length-of-array-like.js","node_modules/core-js/internals/array-includes.js","node_modules/core-js/internals/object-keys-internal.js","node_modules/core-js/internals/enum-bug-keys.js","node_modules/core-js/internals/object-get-own-property-names.js","node_modules/core-js/internals/object-get-own-property-symbols.js","node_modules/core-js/internals/own-keys.js","node_modules/core-js/internals/copy-constructor-properties.js","node_modules/core-js/internals/is-forced.js","node_modules/core-js/internals/export.js","node_modules/core-js/internals/array-method-is-strict.js","node_modules/core-js/modules/es.array.index-of.js","node_modules/core-js/internals/to-string-tag-support.js","node_modules/core-js/internals/classof.js","node_modules/core-js/internals/to-string.js","node_modules/core-js/internals/string-trim.js","node_modules/core-js/internals/number-parse-float.js","node_modules/core-js/modules/es.parse-float.js","node_modules/core-js/internals/regexp-flags.js","node_modules/core-js/internals/regexp-sticky-helpers.js","node_modules/core-js/internals/object-keys.js","node_modules/core-js/internals/object-define-properties.js","node_modules/core-js/internals/html.js","node_modules/core-js/internals/object-create.js","node_modules/core-js/internals/regexp-exec.js","node_modules/core-js/internals/regexp-unsupported-dot-all.js","node_modules/core-js/internals/regexp-unsupported-ncg.js","node_modules/core-js/modules/es.regexp.exec.js","node_modules/core-js/internals/is-array.js","node_modules/core-js/internals/create-property.js","node_modules/core-js/internals/is-constructor.js","node_modules/core-js/internals/array-species-constructor.js","node_modules/core-js/internals/array-species-create.js","node_modules/core-js/internals/array-method-has-species-support.js","node_modules/core-js/modules/es.array.concat.js","node_modules/core-js/internals/array-slice.js","node_modules/core-js/modules/es.array.slice.js","node_modules/core-js/internals/number-parse-int.js","node_modules/core-js/internals/whitespaces.js","node_modules/core-js/modules/es.parse-int.js","node_modules/core-js/internals/function-bind-context.js","node_modules/core-js/internals/array-iteration.js","node_modules/core-js/modules/es.array.filter.js","node_modules/core-js/internals/object-to-string.js","node_modules/core-js/modules/es.object.to-string.js","node_modules/core-js/modules/es.array.splice.js","node_modules/core-js/modules/es.function.name.js","node_modules/core-js/internals/function-apply.js","node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","node_modules/core-js/internals/is-regexp.js","node_modules/core-js/internals/a-constructor.js","node_modules/core-js/internals/species-constructor.js","node_modules/core-js/internals/string-multibyte.js","node_modules/core-js/internals/advance-string-index.js","node_modules/core-js/internals/array-slice-simple.js","node_modules/core-js/internals/regexp-exec-abstract.js","node_modules/core-js/modules/es.string.split.js","node_modules/core-js/internals/add-to-unscopables.js","node_modules/core-js/modules/es.array.find.js","node_modules/core-js/internals/array-sort.js","node_modules/core-js/internals/engine-ff-version.js","node_modules/core-js/internals/engine-is-ie-or-edge.js","node_modules/core-js/internals/engine-webkit-version.js","node_modules/core-js/modules/es.array.sort.js","node_modules/core-js/internals/iterators-core.js","node_modules/core-js/internals/iterators.js","node_modules/core-js/internals/correct-prototype-getter.js","node_modules/core-js/internals/object-get-prototype-of.js","node_modules/core-js/internals/set-to-string-tag.js","node_modules/core-js/internals/create-iterator-constructor.js","node_modules/core-js/internals/a-possible-prototype.js","node_modules/core-js/internals/object-set-prototype-of.js","node_modules/core-js/internals/define-iterator.js","node_modules/core-js/modules/es.array.iterator.js","node_modules/core-js/modules/es.string.iterator.js","node_modules/core-js/internals/dom-token-list-prototype.js","node_modules/core-js/modules/web.dom-collections.iterator.js","node_modules/core-js/internals/dom-iterables.js","node_modules/core-js/internals/native-url.js","node_modules/core-js/internals/an-instance.js","node_modules/core-js/internals/object-assign.js","node_modules/core-js/internals/iterator-close.js","node_modules/core-js/internals/call-with-safe-iteration-closing.js","node_modules/core-js/internals/is-array-iterator-method.js","node_modules/core-js/internals/get-iterator-method.js","node_modules/core-js/internals/get-iterator.js","node_modules/core-js/internals/array-from.js","node_modules/core-js/internals/string-punycode-to-ascii.js","node_modules/core-js/internals/redefine-all.js","node_modules/core-js/modules/web.url-search-params.js","node_modules/core-js/modules/web.url.js","node_modules/core-js/internals/get-substitution.js","node_modules/core-js/modules/es.string.replace.js","src/util.js","node_modules/core-js/modules/es.object.assign.js","src/row_collection.js","src/column_collection.js","src/css_util.js","node_modules/core-js/modules/es.regexp.to-string.js","src/SelectionHelper.js","src/by_column_filter.js","src/index.js"],"sourcesContent":["var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var call = Function.prototype.call;\n\nmodule.exports = call.bind ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = bind && bind.bind(call, call);\n\nmodule.exports = bind ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Object = global.Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));\n};\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.20.2',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2022 Denis Pushkarev (zloirock.ru)'\n});\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TypeError = global.TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar $IndexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar un$IndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!un$IndexOf && 1 / un$IndexOf([1], 1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? un$IndexOf(this, searchElement, fromIndex) || 0\n : $IndexOf(this, searchElement, fromIndex);\n }\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var global = require('../internals/global');\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Object = global.Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var global = require('../internals/global');\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar charAt = uncurryThis(''.charAt);\nvar n$ParseFloat = global.parseFloat;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar FORCED = 1 / n$ParseFloat(whitespaces + '-0') !== -Infinity\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { n$ParseFloat(Object(ITERATOR)); }));\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n var trimmedString = trim(toString(string));\n var result = n$ParseFloat(trimmedString);\n return result === 0 && charAt(trimmedString, 0) == '-' ? -0 : result;\n} : n$ParseFloat;\n","var $ = require('../internals/export');\nvar $parseFloat = require('../internals/number-parse-float');\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\n$({ global: true, forced: parseFloat != $parseFloat }, {\n parseFloat: $parseFloat\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?<a>b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$<a>c') !== 'bc';\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\nvar TypeError = global.TypeError;\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar un$Slice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return un$Slice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar hex = /^[+-]?0x/i;\nvar exec = uncurryThis(hex.exec);\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(toString(string));\n return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10));\n} : $parseInt;\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var $ = require('../internals/export');\nvar $parseInt = require('../internals/number-parse-int');\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\n$({ global: true, forced: parseInt != $parseInt }, {\n parseInt: $parseInt\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : bind ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar TypeError = global.TypeError;\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return regExpExec(nameRE, functionToString(this))[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","var FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (bind ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar redefine = require('../internals/redefine');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var uncurriedNativeMethod = uncurryThis(nativeMethod);\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n }\n return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n redefine(String.prototype, KEY, methods[0]);\n redefine(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var global = require('../internals/global');\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar Array = global.Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar TypeError = global.TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar arraySlice = require('../internals/array-slice-simple');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar $push = [].push;\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis($push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = toString(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return call(nativeSplit, string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = call(regexpExec, separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n push(output, stringSlice(string, lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) apply($push, output, arraySlice(match, 1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !exec(separatorCopy, '')) push(output, '');\n } else push(output, stringSlice(string, lastLastIndex));\n return output.length > lim ? arraySlice(output, 0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : getMethod(separator, SPLIT);\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n\n if (res.done) return res.value;\n\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","var arraySlice = require('../internals/array-slice-simple');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar un$Sort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? un$Sort(array) : un$Sort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = items.length;\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) delete array[index++];\n\n return array;\n }\n});\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n redefine(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var global = require('../internals/global');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar Object = global.Object;\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof Object ? ObjectPrototype : null;\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n redefine(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/define-iterator');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","var global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw TypeError('Incorrect invocation');\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar Array = global.Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\n\nvar RangeError = global.RangeError;\nvar exec = uncurryThis(regexSeparators.exec);\nvar floor = Math.floor;\nvar fromCharCode = String.fromCharCode;\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar split = uncurryThis(''.split);\nvar toLowerCase = uncurryThis(''.toLowerCase);\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = charCodeAt(string, counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = charCodeAt(string, counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n push(output, value);\n counter--;\n }\n } else {\n push(output, value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n while (delta > baseMinusTMin * tMax >> 1) {\n delta = floor(delta / baseMinusTMin);\n k += base;\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n push(output, fromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n push(output, delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n var k = base;\n while (true) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n k += base;\n }\n\n push(output, fromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n handledCPCount++;\n }\n }\n\n delta++;\n n++;\n }\n return join(output, '');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = split(replace(toLowerCase(input), regexSeparators, '\\u002E'), '.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label);\n }\n return join(encoded, '.');\n};\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar $toString = require('../internals/to-string');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arraySort = require('../internals/array-sort');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar n$Fetch = getBuiltIn('fetch');\nvar N$Request = getBuiltIn('Request');\nvar Headers = getBuiltIn('Headers');\nvar RequestPrototype = N$Request && N$Request.prototype;\nvar HeadersPrototype = Headers && Headers.prototype;\nvar RegExp = global.RegExp;\nvar TypeError = global.TypeError;\nvar decodeURIComponent = global.decodeURIComponent;\nvar encodeURIComponent = global.encodeURIComponent;\nvar charAt = uncurryThis(''.charAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar splice = uncurryThis([].splice);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = replace(it, plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = replace(result, percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replacements = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replacements[match];\n};\n\nvar serialize = function (it) {\n return replace(encodeURIComponent(it), find, replacer);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n}, true);\n\nvar URLSearchParamsState = function (init) {\n this.entries = [];\n this.url = null;\n\n if (init !== undefined) {\n if (isObject(init)) this.parseObject(init);\n else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init));\n }\n};\n\nURLSearchParamsState.prototype = {\n type: URL_SEARCH_PARAMS,\n bindURL: function (url) {\n this.url = url;\n this.update();\n },\n parseObject: function (object) {\n var iteratorMethod = getIteratorMethod(object);\n var iterator, next, step, entryIterator, entryNext, first, second;\n\n if (iteratorMethod) {\n iterator = getIterator(object, iteratorMethod);\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = call(entryNext, entryIterator)).done ||\n (second = call(entryNext, entryIterator)).done ||\n !call(entryNext, entryIterator).done\n ) throw TypeError('Expected sequence with length 2');\n push(this.entries, { key: $toString(first.value), value: $toString(second.value) });\n }\n } else for (var key in object) if (hasOwn(object, key)) {\n push(this.entries, { key: key, value: $toString(object[key]) });\n }\n },\n parseQuery: function (query) {\n if (query) {\n var attributes = split(query, '&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = split(attribute, '=');\n push(this.entries, {\n key: deserialize(shift(entry)),\n value: deserialize(join(entry, '='))\n });\n }\n }\n }\n },\n serialize: function () {\n var entries = this.entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n push(result, serialize(entry.key) + '=' + serialize(entry.value));\n } return join(result, '&');\n },\n update: function () {\n this.entries.length = 0;\n this.parseQuery(this.url.query);\n },\n updateURL: function () {\n if (this.url) this.url.update();\n }\n};\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsPrototype);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n setInternalState(this, new URLSearchParamsState(init));\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n push(state.entries, { key: $toString(name), value: $toString(value) });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) splice(entries, index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) push(result, entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = $toString(name);\n var val = $toString(value);\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) splice(entries, index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) push(entries, { key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n arraySort(state.entries, function (a, b) {\n return a.key > b.key ? 1 : -1;\n });\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' });\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n return getInternalParamsState(this).serialize();\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams`\nif (!USE_NATIVE_URL && isCallable(Headers)) {\n var headersHas = uncurryThis(HeadersPrototype.has);\n var headersSet = uncurryThis(HeadersPrototype.set);\n\n var wrapRequestOptions = function (init) {\n if (isObject(init)) {\n var body = init.body;\n var headers;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headersHas(headers, 'content-type')) {\n headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n return create(init, {\n body: createPropertyDescriptor(0, $toString(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n } return init;\n };\n\n if (isCallable(n$Fetch)) {\n $({ global: true, enumerable: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n return n$Fetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n }\n });\n }\n\n if (isCallable(N$Request)) {\n var RequestConstructor = function Request(input /* , init */) {\n anInstance(this, RequestPrototype);\n return new N$Request(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n };\n\n RequestPrototype.constructor = RequestConstructor;\n RequestConstructor.prototype = RequestPrototype;\n\n $({ global: true, forced: true }, {\n Request: RequestConstructor\n });\n }\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineProperties = require('../internals/object-define-properties').f;\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has-own-property');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar arraySlice = require('../internals/array-slice-simple');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar $toString = require('../internals/to-string');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\n\nvar NativeURL = global.URL;\nvar TypeError = global.TypeError;\nvar parseInt = global.parseInt;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar join = uncurryThis([].join);\nvar numberToString = uncurryThis(1.0.toString);\nvar pop = uncurryThis([].pop);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\nvar toLowerCase = uncurryThis(''.toLowerCase);\nvar unshift = uncurryThis([].unshift);\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[a-z]/i;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.a-z]/i;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\da-f]+$/i;\n/* eslint-disable regexp/no-control-character -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u0020]+|[\\u0000-\\u0020]+$/g;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable regexp/no-control-character -- safe */\nvar EOF;\n\n// https://url.spec.whatwg.org/#ipv4-number-parser\nvar parseIPv4 = function (input) {\n var parts = split(input, '.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.length--;\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && charAt(part, 0) == '0') {\n radix = exec(HEX_START, part) ? 16 : 8;\n part = stringSlice(part, radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!exec(radix == 10 ? DEC : radix == 8 ? OCT : HEX, part)) return input;\n number = parseInt(part, radix);\n }\n push(numbers, number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = pop(numbers);\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// https://url.spec.whatwg.org/#concept-ipv6-parser\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var chr = function () {\n return charAt(input, pointer);\n };\n\n if (chr() == ':') {\n if (charAt(input, 1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (chr()) {\n if (pieceIndex == 8) return;\n if (chr() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && exec(HEX, chr())) {\n value = value * 16 + parseInt(chr(), 16);\n pointer++;\n length++;\n }\n if (chr() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (chr()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (chr() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!exec(DIGIT, chr())) return;\n while (exec(DIGIT, chr())) {\n number = parseInt(chr(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (chr() == ':') {\n pointer++;\n if (!chr()) return;\n } else if (chr()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\n// https://url.spec.whatwg.org/#host-serializing\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n unshift(result, host % 256);\n host = floor(host / 256);\n } return join(result, '.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += numberToString(host[index], 16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (chr, set) {\n var code = codeAt(chr, 0);\n return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr);\n};\n\n// https://url.spec.whatwg.org/#special-scheme\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\n// https://url.spec.whatwg.org/#windows-drive-letter\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && exec(ALPHA, charAt(string, 0))\n && ((second = charAt(string, 1)) == ':' || (!normalized && second == '|'));\n};\n\n// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && (\n string.length == 2 ||\n ((third = charAt(string, 2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\n// https://url.spec.whatwg.org/#single-dot-path-segment\nvar isSingleDot = function (segment) {\n return segment === '.' || toLowerCase(segment) === '%2e';\n};\n\n// https://url.spec.whatwg.org/#double-dot-path-segment\nvar isDoubleDot = function (segment) {\n segment = toLowerCase(segment);\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\nvar URLState = function (url, isBase, base) {\n var urlString = $toString(url);\n var baseState, failure, searchParams;\n if (isBase) {\n failure = this.parse(urlString);\n if (failure) throw TypeError(failure);\n this.searchParams = null;\n } else {\n if (base !== undefined) baseState = new URLState(base, true);\n failure = this.parse(urlString, null, baseState);\n if (failure) throw TypeError(failure);\n searchParams = getInternalSearchParamsState(new URLSearchParams());\n searchParams.bindURL(this);\n this.searchParams = searchParams;\n }\n};\n\nURLState.prototype = {\n type: 'URL',\n // https://url.spec.whatwg.org/#url-parsing\n // eslint-disable-next-line max-statements -- TODO\n parse: function (input, stateOverride, base) {\n var url = this;\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, chr, bufferCodePoints, failure;\n\n input = $toString(input);\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = replace(input, LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = replace(input, TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n chr = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (chr && exec(ALPHA, chr)) {\n buffer += toLowerCase(chr);\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (chr && (exec(ALPHANUMERIC, chr) || chr == '+' || chr == '-' || chr == '.')) {\n buffer += toLowerCase(chr);\n } else if (chr == ':') {\n if (stateOverride && (\n (url.isSpecial() != hasOwn(specialSchemes, buffer)) ||\n (buffer == 'file' && (url.includesCredentials() || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (url.isSpecial() && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (url.isSpecial() && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (url.isSpecial()) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n push(url.path, '');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && chr != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && chr == '#') {\n url.scheme = base.scheme;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (chr == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (chr == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (chr == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr == '/' || (chr == '\\\\' && url.isSpecial())) {\n state = RELATIVE_SLASH;\n } else if (chr == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.path.length--;\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (url.isSpecial() && (chr == '/' || chr == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (chr == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (chr != '/' || charAt(buffer, pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (chr != '/' && chr != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (chr == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial())\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += chr;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (chr == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial())\n ) {\n if (url.isSpecial() && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (url.includesCredentials() || url.port !== null)) return;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (chr == '[') seenBracket = true;\n else if (chr == ']') seenBracket = false;\n buffer += chr;\n } break;\n\n case PORT:\n if (exec(DIGIT, chr)) {\n buffer += chr;\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial()) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (chr == '/' || chr == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (chr == EOF) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr == '?') {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.shortenPath();\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (chr == '/' || chr == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (chr == EOF || chr == '/' || chr == '\\\\' || chr == '?' || chr == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = url.parseHost(buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += chr;\n break;\n\n case PATH_START:\n if (url.isSpecial()) {\n state = PATH;\n if (chr != '/' && chr != '\\\\') continue;\n } else if (!stateOverride && chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n state = PATH;\n if (chr != '/') continue;\n } break;\n\n case PATH:\n if (\n chr == EOF || chr == '/' ||\n (chr == '\\\\' && url.isSpecial()) ||\n (!stateOverride && (chr == '?' || chr == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n url.shortenPath();\n if (chr != '/' && !(chr == '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else if (isSingleDot(buffer)) {\n if (chr != '/' && !(chr == '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter\n }\n push(url.path, buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (chr == EOF || chr == '?' || chr == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n shift(url.path);\n }\n }\n if (chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(chr, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n if (chr == \"'\" && url.isSpecial()) url.query += '%27';\n else if (chr == '#') url.query += '%23';\n else url.query += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (chr != EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n },\n // https://url.spec.whatwg.org/#host-parsing\n parseHost: function (input) {\n var result, codePoints, index;\n if (charAt(input, 0) == '[') {\n if (charAt(input, input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(stringSlice(input, 1, -1));\n if (!result) return INVALID_HOST;\n this.host = result;\n // opaque host\n } else if (!this.isSpecial()) {\n if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n this.host = result;\n } else {\n input = toASCII(input);\n if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n this.host = result;\n }\n },\n // https://url.spec.whatwg.org/#cannot-have-a-username-password-port\n cannotHaveUsernamePasswordPort: function () {\n return !this.host || this.cannotBeABaseURL || this.scheme == 'file';\n },\n // https://url.spec.whatwg.org/#include-credentials\n includesCredentials: function () {\n return this.username != '' || this.password != '';\n },\n // https://url.spec.whatwg.org/#is-special\n isSpecial: function () {\n return hasOwn(specialSchemes, this.scheme);\n },\n // https://url.spec.whatwg.org/#shorten-a-urls-path\n shortenPath: function () {\n var path = this.path;\n var pathSize = path.length;\n if (pathSize && (this.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.length--;\n }\n },\n // https://url.spec.whatwg.org/#concept-url-serializer\n serialize: function () {\n var url = this;\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (url.includesCredentials()) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n },\n // https://url.spec.whatwg.org/#dom-url-href\n setHref: function (href) {\n var failure = this.parse(href);\n if (failure) throw TypeError(failure);\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-origin\n getOrigin: function () {\n var scheme = this.scheme;\n var port = this.port;\n if (scheme == 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !this.isSpecial()) return 'null';\n return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : '');\n },\n // https://url.spec.whatwg.org/#dom-url-protocol\n getProtocol: function () {\n return this.scheme + ':';\n },\n setProtocol: function (protocol) {\n this.parse($toString(protocol) + ':', SCHEME_START);\n },\n // https://url.spec.whatwg.org/#dom-url-username\n getUsername: function () {\n return this.username;\n },\n setUsername: function (username) {\n var codePoints = arrayFrom($toString(username));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-password\n getPassword: function () {\n return this.password;\n },\n setPassword: function (password) {\n var codePoints = arrayFrom($toString(password));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-host\n getHost: function () {\n var host = this.host;\n var port = this.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n },\n setHost: function (host) {\n if (this.cannotBeABaseURL) return;\n this.parse(host, HOST);\n },\n // https://url.spec.whatwg.org/#dom-url-hostname\n getHostname: function () {\n var host = this.host;\n return host === null ? '' : serializeHost(host);\n },\n setHostname: function (hostname) {\n if (this.cannotBeABaseURL) return;\n this.parse(hostname, HOSTNAME);\n },\n // https://url.spec.whatwg.org/#dom-url-port\n getPort: function () {\n var port = this.port;\n return port === null ? '' : $toString(port);\n },\n setPort: function (port) {\n if (this.cannotHaveUsernamePasswordPort()) return;\n port = $toString(port);\n if (port == '') this.port = null;\n else this.parse(port, PORT);\n },\n // https://url.spec.whatwg.org/#dom-url-pathname\n getPathname: function () {\n var path = this.path;\n return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n },\n setPathname: function (pathname) {\n if (this.cannotBeABaseURL) return;\n this.path = [];\n this.parse(pathname, PATH_START);\n },\n // https://url.spec.whatwg.org/#dom-url-search\n getSearch: function () {\n var query = this.query;\n return query ? '?' + query : '';\n },\n setSearch: function (search) {\n search = $toString(search);\n if (search == '') {\n this.query = null;\n } else {\n if ('?' == charAt(search, 0)) search = stringSlice(search, 1);\n this.query = '';\n this.parse(search, QUERY);\n }\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-searchparams\n getSearchParams: function () {\n return this.searchParams.facade;\n },\n // https://url.spec.whatwg.org/#dom-url-hash\n getHash: function () {\n var fragment = this.fragment;\n return fragment ? '#' + fragment : '';\n },\n setHash: function (hash) {\n hash = $toString(hash);\n if (hash == '') {\n this.fragment = null;\n return;\n }\n if ('#' == charAt(hash, 0)) hash = stringSlice(hash, 1);\n this.fragment = '';\n this.parse(hash, FRAGMENT);\n },\n update: function () {\n this.query = this.searchParams.serialize() || null;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLPrototype);\n var base = arguments.length > 1 ? arguments[1] : undefined;\n var state = setInternalState(that, new URLState(url, false, base));\n if (!DESCRIPTORS) {\n that.href = state.serialize();\n that.origin = state.getOrigin();\n that.protocol = state.getProtocol();\n that.username = state.getUsername();\n that.password = state.getPassword();\n that.host = state.getHost();\n that.hostname = state.getHostname();\n that.port = state.getPort();\n that.pathname = state.getPathname();\n that.search = state.getSearch();\n that.searchParams = state.getSearchParams();\n that.hash = state.getHash();\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar accessorDescriptor = function (getter, setter) {\n return {\n get: function () {\n return getInternalURLState(this)[getter]();\n },\n set: setter && function (value) {\n return getInternalURLState(this)[setter](value);\n },\n configurable: true,\n enumerable: true\n };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor('serialize', 'setHref'),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor('getOrigin'),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor('getProtocol', 'setProtocol'),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor('getUsername', 'setUsername'),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor('getPassword', 'setPassword'),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor('getHost', 'setHost'),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor('getHostname', 'setHostname'),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor('getPort', 'setPort'),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor('getPathname', 'setPathname'),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor('getSearch', 'setSearch'),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor('getSearchParams'),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor('getHash', 'setHash')\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL));\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL));\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n var replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","'use strict';\r\n\r\nconst indexOf = Array.prototype.indexOf;\r\n\r\nexport const includes = function includes (array, item) {\r\n return indexOf.call(array, item) >= 0;\r\n};\r\n\r\nexport const find = function find (array, predicate) {\r\n for (let i = 0, len = array.length; i >= 0 && i < len; i += 1) {\r\n if (predicate(array[i], i, array))\r\n return array[i];\r\n }\r\n};\r\n\r\nexport const htmlEncode = function htmlEncode (text) {\r\n return text.replace(/&/g, \"&\")\r\n .replace(/</g, \"<\")\r\n .replace(/>/g, \">\")\r\n .replace(/'/g, \"'\")\r\n .replace(/\"/g, \""\")\r\n .replace(/\\n/g, '<br />');\r\n};\r\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\r\n\r\n// Define class RowCollection\r\nfunction RowCollection () {\r\n\r\n // Instantiate an Array. Seems like the `.length = ` of an inherited Array does not work well.\r\n // I will not use the IFRAME solution either in fear of memory leaks, and we're supporting large datasets...\r\n let collection = [];\r\n\r\n // Synthetically set the 'prototype'\r\n Object.assign(collection, RowCollection.prototype);\r\n\r\n // Call initializer\r\n collection.initialize.apply(collection, arguments);\r\n\r\n return collection;\r\n}\r\n\r\n// Inherit Array\r\nRowCollection.prototype = [];\r\n\r\nRowCollection.prototype.initialize = function (options) {\r\n\r\n options = options || {};\r\n\r\n /** @field {string} sortColumn */\r\n this.sortColumn = options.sortColumn == null ? [] : options.sortColumn;\r\n};\r\n\r\n/**\r\n * @param {Object|Object[]} rows - row or array of rows to add to this collection\r\n * @param {number?} at - position to insert rows at\r\n */\r\nRowCollection.prototype.add = function (rows, at) {\r\n let isArray = ('splice' in rows && 'length' in rows), i, len;\r\n if (isArray) {\r\n if (typeof at === 'number') {\r\n for (i = 0, len = rows.length; i < len; i++) {\r\n this.splice(at++, 0, rows[i]);\r\n }\r\n } else {\r\n for (i = 0, len = rows.length; i < len; i++) {\r\n this.push(rows[i]);\r\n }\r\n }\r\n } else {\r\n if (typeof at === 'number') {\r\n this.splice(at, 0, rows);\r\n } else {\r\n this.push(rows);\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * @param {Object|Object[]=} rows Row or array of rows to add to this collection\r\n */\r\nRowCollection.prototype.reset = function (rows) {\r\n this.length = 0;\r\n if (rows) {\r\n this.add(rows);\r\n }\r\n};\r\n\r\n/**\r\n * @param {Function} filterFunc - Filtering function\r\n * @param {Object|null} args? - Options to pass to the function\r\n * @returns {RowCollection} success result\r\n */\r\nRowCollection.prototype.filteredCollection = function (filterFunc, args) {\r\n if (filterFunc && args) {\r\n let rows = new RowCollection({ sortColumn: this.sortColumn });\r\n\r\n for (let i = 0, len = this.length, row; i < len; i++) {\r\n row = this[i];\r\n if (filterFunc(row, args)) {\r\n row['__i'] = i;\r\n rows.push(row);\r\n }\r\n }\r\n return rows;\r\n } else {\r\n return null;\r\n }\r\n};\r\n\r\n/**\r\n * @type {function(columnName: string, descending: boolean, defaultComparator: function(a,b):number)|null|undefined}\r\n */\r\nRowCollection.prototype.onComparatorRequired = null;\r\n\r\n/**\r\n * @type {Function|null|undefined}\r\n */\r\nRowCollection.prototype.onSort = null;\r\n\r\nlet nativeSort = RowCollection.prototype.sort;\r\n\r\nfunction getDefaultComparator(column, descending) {\r\n let columnName = column.column;\r\n let comparePath = column.comparePath || columnName;\r\n if (typeof comparePath === 'string') {\r\n comparePath = comparePath.split('.');\r\n }\r\n let pathLength = comparePath.length,\r\n hasPath = pathLength > 1,\r\n i;\r\n\r\n let lessVal = descending ? 1 : -1, moreVal = descending ? -1 : 1;\r\n return function(leftRow, rightRow) {\r\n let leftVal = leftRow[comparePath[0]],\r\n rightVal = rightRow[comparePath[0]];\r\n if (hasPath) {\r\n for (i = 1; i < pathLength; i++) {\r\n leftVal = leftVal && leftVal[comparePath[i]];\r\n rightVal = rightVal && rightVal[comparePath[i]];\r\n }\r\n }\r\n if (leftVal === rightVal) return 0;\r\n if (leftVal == null) return lessVal;\r\n if (rightVal == null) return moreVal;\r\n if (leftVal < rightVal) return lessVal;\r\n return moreVal;\r\n };\r\n}\r\n\r\n/**\r\n * @param {Boolean=false} silent\r\n * @returns {RowCollection} self\r\n */\r\nRowCollection.prototype.sort = function (silent) {\r\n if (this.sortColumn.length) {\r\n let comparators = [], i, comparator;\r\n\r\n for (i = 0; i < this.sortColumn.length; i++) {\r\n comparator = null;\r\n const defaultComparator = getDefaultComparator(this.sortColumn[i], this.sortColumn[i].descending);\r\n if (this.onComparatorRequired) {\r\n comparator = this.onComparatorRequired(this.sortColumn[i].column, this.sortColumn[i].descending, defaultComparator);\r\n }\r\n if (!comparator) {\r\n comparator = defaultComparator;\r\n }\r\n comparators.push(comparator.bind(this));\r\n }\r\n\r\n if (comparators.length === 1) {\r\n nativeSort.call(this, comparators[0]);\r\n } else {\r\n let len = comparators.length,\r\n value;\r\n\r\n comparator = function(leftRow, rightRow) {\r\n for (i = 0; i < len; i++) {\r\n value = comparators[i](leftRow, rightRow);\r\n if (value !== 0) {\r\n return value;\r\n }\r\n }\r\n return value;\r\n };\r\n\r\n nativeSort.call(this, comparator);\r\n }\r\n\r\n if (!silent) {\r\n if (this.onSort) {\r\n this.onSort();\r\n }\r\n }\r\n }\r\n return this;\r\n};\r\n\r\nexport default RowCollection;\r\n","'use strict';\r\n\r\n// Define class RowCollection\r\nfunction ColumnCollection () {\r\n\r\n // Instantiate an Array. Seems like the `.length = ` of an inherited Array does not work well.\r\n // I will not use the IFRAME solution either in fear of memory leaks, and we're supporting large datasets...\r\n let collection = [];\r\n\r\n // Synthetically set the 'prototype'\r\n Object.assign(collection, ColumnCollection.prototype);\r\n\r\n // Call initializer\r\n collection.initialize.apply(collection, arguments);\r\n\r\n return collection;\r\n}\r\n\r\n// Inherit Array\r\nColumnCollection.prototype = [];\r\n\r\nColumnCollection.prototype.initialize = function () {\r\n\r\n};\r\n\r\n/**\r\n * Get the column by this name\r\n * @param {String} column column name\r\n * @returns {Object} the column object\r\n */\r\nColumnCollection.prototype.get = function (column) {\r\n for (let i = 0, len = this.length; i < len; i++) {\r\n if (this[i].name == column) {\r\n return this[i];\r\n }\r\n }\r\n return null;\r\n};\r\n\r\n/**\r\n * Get the index of the column by this name\r\n * @param {String} column column name\r\n * @returns {int} the index of this column\r\n */\r\nColumnCollection.prototype.indexOf = function (column) {\r\n for (let i = 0, len = this.length; i < len; i++) {\r\n if (this[i].name == column) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n};\r\n\r\n/**\r\n * Get the column by the specified order\r\n * @param {Number} order the column's order\r\n * @returns {Object} the column object\r\n */\r\nColumnCollection.prototype.getByOrder = function (order) {\r\n for (let i = 0, len = this.length; i < len; i++) {\r\n if (this[i].order == order) {\r\n return this[i];\r\n }\r\n }\r\n return null;\r\n};\r\n\r\n/**\r\n * Normalize order\r\n * @returns {ColumnCollection} self\r\n */\r\nColumnCollection.prototype.normalizeOrder = function () {\r\n let ordered = [], i;\r\n for (i = 0; i < this.length; i++) {\r\n ordered.push(this[i]);\r\n }\r\n ordered.sort(function(col1, col2){ return col1.order < col2.order ? -1 : (col1.order > col2.order ? 1 : 0); });\r\n for (i = 0; i < ordered.length; i++) {\r\n ordered[i].order = i;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Get the array of columns, order by the order property\r\n * @returns {Array<Object>} ordered array of columns\r\n */\r\nColumnCollection.prototype.getColumns = function () {\r\n let cols = [];\r\n for (let i = 0, column; i < this.length; i++) {\r\n column = this[i];\r\n cols.push(column);\r\n }\r\n cols.sort((col1, col2) => col1.order < col2.order ? -1 : (col1.order > col2.order ? 1 : 0));\r\n return cols;\r\n};\r\n\r\n/**\r\n * Get the array of visible columns, order by the order property\r\n * @returns {Array<Object>} ordered array of visible columns\r\n */\r\nColumnCollection.prototype.getVisibleColumns = function () {\r\n let cols = [];\r\n for (let i = 0, column; i < this.length; i++) {\r\n column = this[i];\r\n if (column.visible) {\r\n cols.push(column);\r\n }\r\n }\r\n cols.sort((col1, col2) => col1.order < col2.order ? -1 : (col1.order > col2.order ? 1 : 0));\r\n return cols;\r\n};\r\n\r\n/**\r\n * @returns {int} maximum order currently in the array\r\n */\r\nColumnCollection.prototype.getMaxOrder = function () {\r\n let order = 0;\r\n for (let i = 0, column; i < this.length; i++) {\r\n column = this[i];\r\n if (column.order > order) {\r\n order = column.order;\r\n }\r\n }\r\n return order;\r\n};\r\n\r\n/**\r\n * Move a column to a new spot in the collection\r\n * @param {Object} src the column to move\r\n * @param {Object} dest the destination column\r\n * @returns {ColumnCollection} self\r\n */\r\nColumnCollection.prototype.moveColumn = function (src, dest) {\r\n if (src && dest) {\r\n let srcOrder = src.order, destOrder = dest.order, i, col;\r\n if (srcOrder < destOrder) {\r\n for (i = srcOrder + 1; i <= destOrder; i++) {\r\n col = this.getByOrder(i);\r\n col.order--;\r\n }\r\n } else {\r\n for (i = srcOrder - 1; i >= destOrder; i--) {\r\n col = this.getByOrder(i);\r\n col.order++;\r\n }\r\n }\r\n src.order = destOrder;\r\n }\r\n return this;\r\n};\r\n\r\nexport default ColumnCollection;","/* eslint-env browser */\r\n\r\n'use strict';\r\n\r\nconst CssUtil = {};\r\n\r\nlet _isTransformSupported = null;\r\n\r\nCssUtil.getSupportedTransform = () => {\r\n if (_isTransformSupported === null) {\r\n let prefixes = ['transform', 'WebkitTransform', 'MozTransform', 'OTransform', 'msTransform'];\r\n let div = document.createElement('div');\r\n _isTransformSupported = false;\r\n for (let item of prefixes) {\r\n if (div && div.style[item] !== undefined) {\r\n _isTransformSupported = item;\r\n break;\r\n }\r\n }\r\n }\r\n return _isTransformSupported;\r\n};\r\n\r\nexport default CssUtil;\r\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar n$ToString = RegExpPrototype[TO_STRING];\nvar getFlags = uncurryThis(regExpFlags);\n\nvar NOT_GENERIC = fails(function () { return n$ToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && n$ToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = $toString(R.source);\n var rf = R.flags;\n var f = $toString(rf === undefined && isPrototypeOf(RegExpPrototype, R) && !('flags' in RegExpPrototype) ? getFlags(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","/* eslint-env browser */\r\n\r\n'use strict';\r\n\r\n// saveSelection/restoreSelection courtesy of Tim Down, with my improvements\r\n// https://stackoverflow.com/questions/13949059/persisting-the-changes-of-range-objects-after-selection-in-html/13950376#13950376\r\n\r\nfunction isChildOf(child, parent) {\r\n while ((child = child.parentNode) && child !== parent);\r\n return !!child;\r\n}\r\n\r\nclass SelectionHelper {\r\n\r\n static saveSelection(el) {\r\n let range = window.getSelection().getRangeAt(0);\r\n\r\n if (el !== range.commonAncestorContainer && !isChildOf(range.commonAncestorContainer, el))\r\n return null;\r\n\r\n let preSelectionRange = range.cloneRange();\r\n preSelectionRange.selectNodeContents(el);\r\n preSelectionRange.setEnd(range.startContainer, range.startOffset);\r\n let start = preSelectionRange.toString().length;\r\n\r\n return {\r\n start: start,\r\n end: start + range.toString().length,\r\n };\r\n }\r\n\r\n static restoreSelection(el, savedSel) {\r\n let charIndex = 0;\r\n let nodeStack = [el], node, foundStart = false, stop = false;\r\n let range = document.createRange();\r\n range.setStart(el, 0);\r\n range.collapse(true);\r\n\r\n while (!stop && (node = nodeStack.pop())) {\r\n if (node.nodeType === 3) {\r\n let nextCharIndex = charIndex + node.length;\r\n if (!foundStart && savedSel.start >= charIndex && savedSel.start <= nextCharIndex) {\r\n range.setStart(node, savedSel.start - charIndex);\r\n foundStart = true;\r\n }\r\n if (foundStart && savedSel.end >= charIndex && savedSel.end <= nextCharIndex) {\r\n range.setEnd(node, savedSel.end - charIndex);\r\n stop = true;\r\n }\r\n charIndex = nextCharIndex;\r\n } else {\r\n let i = node.childNodes.length;\r\n while (i--) {\r\n nodeStack.push(node.childNodes[i]);\r\n }\r\n }\r\n }\r\n\r\n let sel = window.getSelection();\r\n sel.removeAllRanges();\r\n sel.addRange(range);\r\n }\r\n}\r\n\r\nexport default SelectionHelper;\r\n","'use strict';\r\n\r\nfunction ByColumnFilter (row, args) {\r\n \r\n let column = args.column;\r\n let keyword = args.keyword == null ? '' : args.keyword.toString();\r\n \r\n if (!keyword || !column) return true;\r\n\r\n let actualVal = row[column];\r\n if (actualVal == null) {\r\n return false;\r\n }\r\n \r\n actualVal = actualVal.toString();\r\n \r\n if (!args.caseSensitive) {\r\n actualVal = actualVal.toLowerCase();\r\n keyword = keyword.toLowerCase();\r\n }\r\n \r\n return actualVal.indexOf(keyword) !== -1;\r\n}\r\n\r\nexport default ByColumnFilter;","/* eslint-env browser */\r\n\r\n'use strict';\r\n\r\nimport jQuery from 'jquery';\r\nimport { find, htmlEncode, includes } from './util';\r\nimport RowCollection from './row_collection';\r\nimport ColumnCollection from './column_collection';\r\nimport CssUtil from './css_util';\r\nimport SelectionHelper from './SelectionHelper';\r\nimport {\r\n getScrollHorz,\r\n setScrollHorz,\r\n} from '@danielgindi/dom-utils/lib/ScrollHelper';\r\nimport {\r\n getElementWidth,\r\n getElementHeight,\r\n setElementWidth,\r\n} from '@danielgindi/dom-utils/lib/Css';\r\nimport ByColumnFilter from './by_column_filter';\r\n\r\nconst nativeIndexOf = Array.prototype.indexOf;\r\nconst $ = jQuery;\r\n\r\nlet userAgent = navigator.userAgent;\r\nlet ieVersion = userAgent.indexOf('MSIE ') !== -1 ? parseFloat(userAgent.substr(userAgent.indexOf('MSIE ') + 5)) : null;\r\nlet hasIeDragAndDropBug = ieVersion && ieVersion < 10;\r\nlet createElement = document.createElement.bind(document);\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\n\r\nconst IsSafeSymbol = ('safe');\r\n\r\nfunction webkitRenderBugfix(el) {\r\n // BUGFIX: WebKit has a bug where it does not relayout, and this affects us because scrollbars\r\n // are still calculated even though they are not there yet. This is the last resort.\r\n let oldDisplay = el.style.display;\r\n el.style.display = 'none';\r\n //noinspection BadExpressionStatementJS\r\n el.offsetHeight; // No need to store this anywhere, the reference is enough\r\n el.style.display = oldDisplay;\r\n return el;\r\n}\r\n\r\nfunction relativizeElement($el) {\r\n if (!includes(['relative', 'absolute', 'fixed'], $el.css('position'))) {\r\n $el.css('position', 'relative');\r\n }\r\n}\r\n\r\nconst isInputElementEvent = event => /^(?:INPUT|TEXTAREA|BUTTON|SELECT)$/.test(event.target.tagName);\r\n\r\n/** @class DGTable */\r\nlet DGTable = function DGTable () {\r\n if (!(this instanceof DGTable)) {\r\n // Allow constructing without `new`\r\n return new (Function.prototype.bind.apply(\r\n DGTable,\r\n [DGTable].concat(Array.prototype.slice.call(arguments, 0))));\r\n }\r\n\r\n this.initialize.apply(this, arguments);\r\n};\r\n\r\n/**\r\n * @public\r\n * @expose\r\n * @type {string}\r\n */\r\nDGTable.VERSION = '@@VERSION';\r\n\r\n/**\r\n * @public\r\n * @expose\r\n * @type {string}\r\n */\r\nDGTable.prototype.VERSION = DGTable.VERSION;\r\n\r\n/**\r\n * @constructs\r\n * @param {DGTable.Options?} options - initialization options\r\n * @returns {DGTable}\r\n */\r\nDGTable.prototype.initialize = function (options) {\r\n let that = this;\r\n\r\n options = options || {};\r\n\r\n /**\r\n * @private\r\n * @type {DGTable.Options}\r\n * */\r\n let o = that.o = {};\r\n\r\n /**\r\n * @private\r\n * This is for encapsulating private data */\r\n let p = that.p = {};\r\n\r\n /** This is for encapsulating event callback */\r\n p.events = {};\r\n\r\n /**\r\n * @public\r\n * @expose\r\n * */\r\n that.el = (options.el && options.el instanceof Element) ? options.el : document.createElement('div');\r\n\r\n /**\r\n * @public\r\n * @expose\r\n * */\r\n let $el = that.$el = $(that.el);\r\n\r\n if (that.el !== options.el) {\r\n $el.addClass(options.className || 'dgtable-wrapper');\r\n }\r\n\r\n // Set control data\r\n $el\r\n .data('control', that)\r\n .data('dgtable', that);\r\n\r\n // For jQuery.UI or jquery.removeevent\r\n $el.on('remove', function () {\r\n that.destroy();\r\n });\r\n\r\n p.onMouseMoveResizeAreaBound = this._onMouseMoveResizeArea.bind(this);\r\n p.onEndDragColumnHeaderBound = this._onEndDragColumnHeader.bind(this);\r\n p.onTableScrolledHorizontallyBound = this._onTableScrolledHorizontally.bind(this);\r\n\r\n this.$el.on('dragend', p.onEndDragColumnHeaderBound);\r\n\r\n /**\r\n * @private\r\n * @field {Boolean} _tableSkeletonNeedsRendering */\r\n p.tableSkeletonNeedsRendering = true;\r\n\r\n /**\r\n * @private\r\n * @field {Boolean} virtualTable */\r\n o.virtualTable = options.virtualTable === undefined ? true : !!options.virtualTable;\r\n\r\n /**\r\n * @private\r\n * @field {Number} rowsBufferSize */\r\n o.rowsBufferSize = options.rowsBufferSize || 3;\r\n\r\n /**\r\n * @private\r\n * @field {Number} minColumnWidth */\r\n o.minColumnWidth = Math.max(options.minColumnWidth || 35, 0);\r\n\r\n /**\r\n * @private\r\n * @field {Number} resizeAreaWidth */\r\n o.resizeAreaWidth = options.resizeAreaWidth || 8;\r\n\r\n /**\r\n * @private\r\n * @field {Boolean} resizableColumns */\r\n o.resizableColumns = options.resizableColumns === undefined ? true : !!options.resizableColumns;\r\n\r\n /**\r\n * @private\r\n * @field {Boolean} movableColumns */\r\n o.movableColumns = options.movableColumns === undefined ? true : !!options.movableColumns;\r\n\r\n /**\r\n * @private\r\n * @field {Number} sortableColumns */\r\n o.sortableColumns = options.sortableColumns === undefined ? 1 : (parseInt(options.sortableColumns, 10) || 1);\r\n\r\n /**\r\n * @private\r\n * @field {Boolean} adjustColumnWidthForSortArrow */\r\n o.adjustColumnWidthForSortArrow = options.adjustColumnWidthForSortArrow === undefined ? true : !!options.adjustColumnWidthForSortArrow;\r\n\r\n /**\r\n * @private\r\n * @field {Boolean} convertColumnWidthsToRelative */\r\n o.convertColumnWidthsToRelative = options.convertColumnWidthsToRelative === undefined ? false : !!options.convertColumnWidthsToRelative;\r\n\r\n /**\r\n * @private\r\n * @field {Boolean} autoFillTableWidth */\r\n o.autoFillTableWidth = options.autoFillTableWidth === undefined ? false : !!options.autoFillTableWidth;\r\n\r\n /**\r\n * @private\r\n * @field {String} cellClasses */\r\n o.cellClasses = options.cellClasses === undefined ? '' : options.cellClasses;\r\n\r\n /**\r\n * @private\r\n * @field {String} resizerClassName */\r\n o.resizerClassName = options.resizerClassName === undefined ? 'dgtable-resize' : options.resizerClassName;\r\n\r\n /**\r\n * @private\r\n * @field {String} tableClassName */\r\n o.tableClassName = options.tableClassName === undefined ? 'dgtable' : options.tableClassName;\r\n\r\n /**\r\n * @private\r\n * @field {Boolean} allowCellPreview */\r\n o.allowCellPreview = options.allowCellPreview === undefined ? true : options.allowCellPreview;\r\n\r\n /**\r\n * @private\r\n * @field {Boolean} allowHeaderCellPreview */\r\n o.allowHeaderCellPreview = options.allowHeaderCellPreview === undefined ? true : options.allowHeaderCellPreview;\r\n\r\n /**\r\n * @private\r\n * @field {String} cellPreviewClassName */\r\n o.cellPreviewClassName = options.cellPreviewClassName === undefined ? 'dgtable-cell-preview' : options.cellPreviewClassName;\r\n\r\n /**\r\n * @private\r\n * @field {Boolean} cellPreviewAutoBackground */\r\n o.cellPreviewAutoBackground = options.cellPreviewAutoBackground === undefined ? true : options.cellPreviewAutoBackground;\r\n\r\n /**\r\n * @private\r\n * @field {function(columnName: string, descending: boolean, defaultComparator: function(a,b):number):(function(a,b):number)} onComparatorRequired */\r\n o.onComparatorRequired = options.onComparatorRequired === undefined ? null : options.onComparatorRequired;\r\n if (!o.onComparatorRequired && typeof options['comparatorCallback'] === 'function') {\r\n o.onComparatorRequired = options['comparatorCallback'];\r\n }\r\n\r\n /**\r\n * @private\r\n * @field {Boolean} width */\r\n o.width = options.width === undefined ? DGTable.Width.NONE : options.width;\r\n\r\n /**\r\n * @private\r\n * @field {Boolean} relativeWidthGrowsToFillWidth */\r\n o.relativeWidthGrowsToFillWidth = options.relativeWidthGrowsToFillWidth === undefined ? true : !!options.relativeWidthGrowsToFillWidth;\r\n\r\n /**\r\n * @private\r\n * @field {Boolean} relativeWidthShrinksToFillWidth */\r\n o.relativeWidthShrinksToFillWidth = options.relativeWidthShrinksToFillWidth === undefined ? false : !!options.relativeWidthShrinksToFillWidth;\r\n\r\n this.setCellFormatter(options.cellFormatter);\r\n this.setHeaderCellFormatter(options.headerCellFormatter);\r\n this.setFilter(options.filter);\r\n\r\n /** @private\r\n * @field {Number} height */\r\n o.height = options.height;\r\n\r\n // Prepare columns\r\n that.setColumns(options.columns || [], false);\r\n\r\n // Set sorting columns\r\n let sortColumns = [];\r\n\r\n if (options.sortColumn) {\r\n\r\n let tmpSortColumns = options.sortColumn;\r\n\r\n if (tmpSortColumns && typeof tmpSortColumns !== 'object') {\r\n tmpSortColumns = [tmpSortColumns];\r\n }\r\n\r\n if (tmpSortColumns instanceof Array ||\r\n typeof tmpSortColumns === 'object') {\r\n\r\n for (let i = 0, len = tmpSortColumns.length; i < len; i++) {\r\n let sortColumn = tmpSortColumns[i];\r\n if (typeof sortColumn === 'string') {\r\n sortColumn = { column: sortColumn, descending: false };\r\n }\r\n let col = p.columns.get(sortColumn.column);\r\n if (!col) continue;\r\n\r\n sortColumns.push({\r\n column: sortColumn.column,\r\n comparePath: col.comparePath || col.dataPath,\r\n descending: sortColumn.descending,\r\n });\r\n }\r\n }\r\n }\r\n\r\n /** @field {RowCollection} _rows */\r\n p.rows = new RowCollection({ sortColumn: sortColumns });\r\n p.rows.onComparatorRequired = (column, descending, defaultComparator) => {\r\n if (o.onComparatorRequired) {\r\n return o.onComparatorRequired(column, descending, defaultComparator);\r\n }\r\n };\r\n\r\n /** @private\r\n * @field {RowCollection} _filteredRows */\r\n p.filteredRows = null;\r\n\r\n /*\r\n Setup hover mechanism.\r\n We need this to be high performance, as there may be MANY cells to call this on, on creation and destruction.\r\n Using native events to spare the overhead of jQuery's event binding, and even just the creation of the jQuery collection object.\r\n */\r\n\r\n /**\r\n * @param {MouseEvent} evt\r\n * @this {HTMLElement}\r\n * */\r\n let hoverMouseOverHandler = function (evt) {\r\n evt = evt || event;\r\n let relatedTarget = evt.fromElement || evt.relatedTarget;\r\n if (relatedTarget === this || $.contains(this, relatedTarget)) return;\r\n if (this['__previewCell'] && (relatedTarget === this['__previewCell'] || $.contains(this['__previewCell'], relatedTarget))) return;\r\n that._cellMouseOverEvent.call(that, this);\r\n };\r\n\r\n /**\r\n * @param {MouseEvent} evt\r\n * @this {HTMLElement}\r\n * */\r\n let hoverMouseOutHandler = function (evt) {\r\n evt = evt || event;\r\n let relatedTarget = evt.toElement || evt.relatedTarget;\r\n if (relatedTarget === this || $.contains(this, relatedTarget)) return;\r\n if (this['__previewCell'] && (relatedTarget === this['__previewCell'] || $.contains(this['__previewCell'], relatedTarget))) return;\r\n that._cellMouseOutEvent.call(that, this);\r\n };\r\n\r\n if ('addEventListener' in window) {\r\n\r\n /**\r\n * @param {HTMLElement} el cell or header-cell\r\n * */\r\n p._bindCellHoverIn = function (el) {\r\n if (!el['__hoverIn']) {\r\n el.addEventListener('mouseover', el['__hoverIn'] = hoverMouseOverHandler.bind(el));\r\n }\r\n };\r\n\r\n /**\r\n * @param {HTMLElement} el cell or header-cell\r\n * */\r\n p._unbindCellHoverIn = function (el) {\r\n if (el['__hoverIn']) {\r\n el.removeEventListener('mouseover', el['__hoverIn']);\r\n el['__hoverIn'] = null;\r\n }\r\n };\r\n\r\n /**\r\n * @param {HTMLElement} el cell or header-cell\r\n * @returns {DGTable} self\r\n * */\r\n p._bindCellHoverOut = function (el) {\r\n if (!el['__hoverOut']) {\r\n el.addEventListener('mouseout', el['__hoverOut'] = hoverMouseOutHandler.bind(el['__cell'] || el));\r\n }\r\n return this;\r\n };\r\n\r\n /**\r\n * @param {HTMLElement} el cell or header-cell\r\n * @returns {DGTable} self\r\n * */\r\n p._unbindCellHoverOut = function (el) {\r\n if (el['__hoverOut']) {\r\n el.removeEventListener('mouseout', el['__hoverOut']);\r\n el['__hoverOut'] = null;\r\n }\r\n return this;\r\n };\r\n\r\n } else {\r\n\r\n /**\r\n * @param {HTMLElement} el cell or header-cell\r\n * */\r\n p._bindCellHoverIn = function (el) {\r\n if (!el['__hoverIn']) {\r\n el.attachEvent('mouseover', el['__hoverIn'] = hoverMouseOverHandler.bind(el));\r\n }\r\n };\r\n\r\n /**\r\n * @param {HTMLElement} el cell or header-cell\r\n * */\r\n p._unbindCellHoverIn = function (el) {\r\n if (el['__hoverIn']) {\r\n el.detachEvent('mouseover', el['__hoverIn']);\r\n el['__hoverIn'] = null;\r\n }\r\n };\r\n\r\n /**\r\n * @param {HTMLElement} el cell or header-cell\r\n * */\r\n p._bindCellHoverOut = function (el) {\r\n if (!el['__hoverOut']) {\r\n el.attachEvent('mouseout', el['__hoverOut'] = hoverMouseOutHandler.bind(el['__cell'] || el));\r\n }\r\n };\r\n\r\n /**\r\n * @param {HTMLElement} el cell or header-cell\r\n * @returns {DGTable} self\r\n * */\r\n p._unbindCellHoverOut = function (el) {\r\n if (el['__hoverOut']) {\r\n el.detachEvent('mouseout', el['__hoverOut']);\r\n el['__hoverOut'] = null;\r\n }\r\n return this;\r\n };\r\n\r\n }\r\n};\r\n\r\n/**\r\n * Add an event listener\r\n * @public\r\n * @expose\r\n * @param {String} eventName\r\n * @param {Function} callback\r\n * @returns {DGTable}\r\n */\r\nDGTable.prototype.on = function (eventName, callback) {\r\n let that = this, events = that.p.events;\r\n\r\n if (typeof callback !== 'function')\r\n return that;\r\n\r\n if (!hasOwnProperty.call(events, eventName))\r\n events[eventName] = [];\r\n\r\n events[eventName].push({\r\n cb: callback,\r\n once: false,\r\n });\r\n\r\n return that;\r\n};\r\n\r\n/**\r\n * Add an event listener for a one shot\r\n * @public\r\n * @expose\r\n * @param {String} eventName\r\n * @param {Function} callback\r\n * @returns {DGTable}\r\n */\r\nDGTable.prototype.once = function (eventName, callback) {\r\n let that = this, events = that.p.events;\r\n\r\n if (typeof callback !== 'function')\r\n return that;\r\n\r\n if (!hasOwnProperty.call(events, eventName))\r\n events[eventName] = [];\r\n\r\n events[eventName].push({\r\n cb: callback,\r\n once: true,\r\n });\r\n\r\n return that;\r\n};\r\n\r\n/**\r\n * Remove an event listener\r\n * @public\r\n * @expose\r\n * @param {String} eventName\r\n * @param {Function} callback\r\n * @returns {DGTable}\r\n */\r\nDGTable.prototype.off = function (eventName, callback) {\r\n let events = this.p.events;\r\n\r\n if (!hasOwnProperty.call(events, eventName))\r\n return this;\r\n\r\n let callbacks = events[eventName];\r\n for (let i = 0; i < callbacks.length; i++) {\r\n let item = callbacks[i];\r\n if (callback && item.cb !== callback) continue;\r\n callbacks.splice(i--, 1);\r\n }\r\n\r\n return this;\r\n};\r\n\r\nDGTable.prototype.trigger = function (eventName) {\r\n let events = this.p.events;\r\n\r\n if (hasOwnProperty.call(events, eventName)) {\r\n let callbacks = events[eventName];\r\n for (let i = 0; i < callbacks.length; i++) {\r\n let item = callbacks[i];\r\n if (item.once) {\r\n callbacks.splice(i--, 1);\r\n }\r\n item.cb.apply(this, Array.prototype.slice.call(arguments, 1));\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Detect column width mode\r\n * @private\r\n * @param {Number|String} width\r\n * @param {Number} minWidth\r\n * @returns {Object} parsed width\r\n */\r\nDGTable.prototype._parseColumnWidth = function (width, minWidth) {\r\n\r\n let widthSize = Math.max(0, parseFloat(width)),\r\n widthMode = ColumnWidthMode.AUTO; // Default\r\n\r\n if (widthSize > 0) {\r\n // Well, it's sure is not AUTO, as we have a value\r\n\r\n if (width === widthSize + '%') {\r\n // It's a percentage!\r\n\r\n widthMode = ColumnWidthMode.RELATIVE;\r\n widthSize /= 100;\r\n } else if (widthSize > 0 && widthSize < 1) {\r\n // It's a decimal value, as a relative value!\r\n\r\n widthMode = ColumnWidthMode.RELATIVE;\r\n } else {\r\n // It's an absolute size!\r\n\r\n if (widthSize < minWidth) {\r\n widthSize = minWidth;\r\n }\r\n widthMode = ColumnWidthMode.ABSOLUTE;\r\n }\r\n }\r\n\r\n return { width: widthSize, mode: widthMode };\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {COLUMN_OPTIONS} columnData\r\n */\r\nDGTable.prototype._initColumnFromData = function(columnData) {\r\n\r\n let parsedWidth = this._parseColumnWidth(columnData.width, columnData.ignoreMin ? 0 : this.o.minColumnWidth);\r\n\r\n let col = {\r\n name: columnData.name,\r\n label: columnData.label === undefined ? columnData.name : columnData.label,\r\n width: parsedWidth.width,\r\n widthMode: parsedWidth.mode,\r\n resizable: columnData.resizable === undefined ? true : columnData.resizable,\r\n sortable: columnData.sortable === undefined ? true : columnData.sortable,\r\n movable: columnData.movable === undefined ? true : columnData.movable,\r\n visible: columnData.visible === undefined ? true : columnData.visible,\r\n cellClasses: columnData.cellClasses === undefined ? this.o.cellClasses : columnData.cellClasses,\r\n ignoreMin: columnData.ignoreMin === undefined ? false : !!columnData.ignoreMin,\r\n };\r\n\r\n col.dataPath = columnData.dataPath === undefined ? col.name : columnData.dataPath;\r\n col.comparePath = columnData.comparePath === undefined ? col.dataPath : columnData.comparePath;\r\n\r\n if (typeof col.dataPath === 'string') {\r\n col.dataPath = col.dataPath.split('.');\r\n }\r\n if (typeof col.comparePath === 'string') {\r\n col.comparePath = col.comparePath.split('.');\r\n }\r\n\r\n return col;\r\n};\r\n\r\n/**\r\n * Destroy, releasing all memory, events and DOM elements\r\n * @public\r\n * @expose\r\n */\r\nDGTable.prototype.close = DGTable.prototype.remove = DGTable.prototype.destroy = function () {\r\n\r\n let that = this,\r\n p = that.p || {},\r\n $el = that.$el;\r\n\r\n if (that.__removed) {\r\n return that;\r\n }\r\n\r\n if (p.$resizer) {\r\n p.$resizer.remove();\r\n p.$resizer = null;\r\n }\r\n\r\n if (p.$tbody) {\r\n let trs = p.$tbody[0].childNodes;\r\n for (let i = 0, len = trs.length; i < len; i++) {\r\n that.trigger('rowdestroy', trs[i]);\r\n }\r\n }\r\n\r\n // Using quotes for __super__ because Google Closure Compiler has a bug...\r\n\r\n this._destroyHeaderCells()._unbindCellEventsForTable();\r\n if (p.$table) {\r\n p.$table.empty();\r\n }\r\n if (p.$tbody) {\r\n p.$tbody.empty();\r\n }\r\n\r\n if (p.workerListeners) {\r\n for (let j = 0; j < p.workerListeners.length; j++) {\r\n let worker = p.workerListeners[j];\r\n worker.worker.removeEventListener('message', worker.listener, false);\r\n }\r\n p.workerListeners.length = 0;\r\n }\r\n\r\n p.rows.length = p.columns.length = 0;\r\n\r\n if (p._deferredRender) {\r\n clearTimeout(p._deferredRender);\r\n }\r\n\r\n // Cleanup\r\n for (let prop in that) {\r\n if (hasOwnProperty.call(that, prop)) {\r\n that[prop] = null;\r\n }\r\n }\r\n\r\n that.__removed = true;\r\n\r\n if ($el) {\r\n $el.remove();\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * @private\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype._unbindCellEventsForTable = function() {\r\n const p = this.p;\r\n\r\n if (p.headerRow) {\r\n for (let i = 0, rows = p.headerRow.childNodes, rowCount = rows.length; i < rowCount; i++) {\r\n let rowToClean = rows[i];\r\n for (let j = 0, cells = rowToClean.childNodes, cellCount = cells.length; j < cellCount; j++) {\r\n p._unbindCellHoverIn(cells[j]);\r\n }\r\n }\r\n }\r\n\r\n if (p.tbody) {\r\n for (let i = 0, rows = p.tbody.childNodes, rowCount = rows.length; i < rowCount; i++) {\r\n this._unbindCellEventsForRow(rows[i]);\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {HTMLElement} rowToClean\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype._unbindCellEventsForRow = function(rowToClean) {\r\n const p = this.p;\r\n for (let i = 0, cells = rowToClean.childNodes, cellCount = cells.length; i < cellCount; i++) {\r\n p._unbindCellHoverIn(cells[i]);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * @public\r\n * @expose\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.render = function () {\r\n const o = this.o, p = this.p;\r\n\r\n if (!this.el.offsetParent) {\r\n if (!p._deferredRender) {\r\n p._deferredRender = setTimeout(() => {\r\n p._deferredRender = null;\r\n if (!this.__removed && this.el.offsetParent) {\r\n this.render();\r\n }\r\n });\r\n }\r\n\r\n return this;\r\n }\r\n\r\n let renderedRows, rowCount;\r\n\r\n if (p.tableSkeletonNeedsRendering === true) {\r\n p.tableSkeletonNeedsRendering = false;\r\n\r\n if (o.width === DGTable.Width.AUTO) {\r\n // We need to do this to return to the specified widths instead. The arrows added to the column widths...\r\n this._clearSortArrows();\r\n }\r\n\r\n let lastScrollTop = p.table && p.table.parentNode ? p.table.scrollTop : NaN,\r\n lastScrollHorz = p.table && p.table.parentNode ? getScrollHorz(p.table) : NaN;\r\n\r\n this._renderSkeletonBase()\r\n ._renderSkeletonBody()\r\n .tableWidthChanged(true, false) // Take this chance to calculate required column widths\r\n ._renderSkeletonHeaderCells();\r\n\r\n if (!o.virtualTable) {\r\n let rows = p.filteredRows || p.rows;\r\n rowCount = rows.length;\r\n renderedRows = this.renderRows(0, rowCount - 1);\r\n p.$tbody.html('').append(renderedRows);\r\n }\r\n\r\n this._updateLastCellWidthFromScrollbar(true);\r\n\r\n this._updateTableWidth(true);\r\n\r\n // Show sort arrows\r\n for (let i = 0; i < p.rows.sortColumn.length; i++) {\r\n this._showSortArrow(p.rows.sortColumn[i].column, p.rows.sortColumn[i].descending);\r\n }\r\n if (o.adjustColumnWidthForSortArrow && p.rows.sortColumn.length) {\r\n this.tableWidthChanged(true);\r\n } else if (!o.virtualTable) {\r\n this.tableWidthChanged();\r\n }\r\n\r\n if (!isNaN(lastScrollTop))\r\n p.table.scrollTop = lastScrollTop;\r\n\r\n if (!isNaN(lastScrollHorz)) {\r\n setScrollHorz(p.table, lastScrollHorz);\r\n setScrollHorz(p.header, lastScrollHorz);\r\n }\r\n\r\n this.trigger('renderskeleton');\r\n\r\n if (o.virtualTable) {\r\n p.$table.on('scroll', this._onVirtualTableScrolled.bind(this));\r\n this.render();\r\n }\r\n\r\n } else if (o.virtualTable) {\r\n rowCount = (p.filteredRows || p.rows).length;\r\n let scrollTop = p.table.scrollTop;\r\n let firstVisible = Math.floor((scrollTop - p.virtualRowHeightFirst) / p.virtualRowHeight) + 1 - o.rowsBufferSize;\r\n let lastVisible = Math.ceil(((scrollTop - p.virtualRowHeightFirst + p.visibleHeight) / p.virtualRowHeight)) + o.rowsBufferSize;\r\n if (firstVisible < 0) firstVisible = 0;\r\n if (lastVisible >= rowCount) {\r\n lastVisible = rowCount - 1;\r\n }\r\n\r\n let oldFirstVisible = -1, oldLastVisible = -1;\r\n let tbodyChildNodes = p.tbody.childNodes;\r\n if (tbodyChildNodes.length) {\r\n oldFirstVisible = tbodyChildNodes[0]['rowIndex'];\r\n oldLastVisible = tbodyChildNodes[tbodyChildNodes.length - 1]['rowIndex'];\r\n }\r\n\r\n let countToRemove;\r\n\r\n if (oldFirstVisible !== -1 && oldFirstVisible < firstVisible) {\r\n countToRemove = Math.min(oldLastVisible + 1, firstVisible) - oldFirstVisible;\r\n for (let i = 0; i < countToRemove; i++) {\r\n this.trigger('rowdestroy', tbodyChildNodes[0]);\r\n this._unbindCellEventsForRow(tbodyChildNodes[0]);\r\n p.tbody.removeChild(tbodyChildNodes[0]);\r\n }\r\n oldFirstVisible += countToRemove;\r\n if (oldFirstVisible > oldLastVisible) {\r\n oldFirstVisible = oldLastVisible = -1;\r\n }\r\n } else if (oldLastVisible !== -1 && oldLastVisible > lastVisible) {\r\n countToRemove = oldLastVisible - Math.max(oldFirstVisible - 1, lastVisible);\r\n for (let i = 0; i < countToRemove; i++) {\r\n this.trigger('rowdestroy', tbodyChildNodes[tbodyChildNodes.length - 1]);\r\n this._unbindCellEventsForRow(tbodyChildNodes[tbodyChildNodes.length - 1]);\r\n p.tbody.removeChild(tbodyChildNodes[tbodyChildNodes.length - 1]);\r\n }\r\n if (oldLastVisible < oldFirstVisible) {\r\n oldFirstVisible = oldLastVisible = -1;\r\n }\r\n }\r\n\r\n if (firstVisible < oldFirstVisible) {\r\n renderedRows = this.renderRows(firstVisible, Math.min(lastVisible, oldFirstVisible - 1));\r\n p.$tbody.prepend(renderedRows);\r\n }\r\n if (lastVisible > oldLastVisible || oldLastVisible === -1) {\r\n renderedRows = this.renderRows(oldLastVisible === -1 ? firstVisible : oldLastVisible + 1, lastVisible);\r\n p.$tbody.append(renderedRows);\r\n }\r\n }\r\n this.trigger('render');\r\n return this;\r\n};\r\n\r\n/**\r\n * Forces a full render of the table\r\n * @public\r\n * @expose\r\n * @param {Boolean=true} render - Should render now?\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.clearAndRender = function (render) {\r\n let p = this.p;\r\n\r\n p.tableSkeletonNeedsRendering = true;\r\n\r\n if (render === undefined || render) {\r\n this.render();\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Render rows\r\n * @private\r\n * @param {Number} first first row to render\r\n * @param {Number} last last row to render\r\n * @returns {DocumentFragment} fragment containing all rendered rows\r\n */\r\nDGTable.prototype.renderRows = function (first, last) {\r\n const o = this.o, p = this.p;\r\n\r\n let tableClassName = o.tableClassName,\r\n rowClassName = tableClassName + '-row',\r\n cellClassName = tableClassName + '-cell',\r\n rows = p.filteredRows || p.rows,\r\n isDataFiltered = !!p.filteredRows,\r\n allowCellPreview = o.allowCellPreview,\r\n visibleColumns = p.visibleColumns,\r\n isVirtual = o.virtualTable,\r\n virtualRowHeightFirst = p.virtualRowHeightFirst,\r\n virtualRowHeight = p.virtualRowHeight,\r\n top,\r\n physicalRowIndex;\r\n\r\n let colCount = visibleColumns.length;\r\n for (let colIndex = 0, column; colIndex < colCount; colIndex++) {\r\n column = visibleColumns[colIndex];\r\n column._finalWidth = (column.actualWidthConsideringScrollbarWidth || column.actualWidth);\r\n }\r\n\r\n let bodyFragment = document.createDocumentFragment();\r\n\r\n let isRtl = this._isTableRtl(),\r\n virtualRowXAttr = isRtl ? 'right' : 'left';\r\n\r\n const supportedTransform = CssUtil.getSupportedTransform();\r\n\r\n for (let i = first, rowCount = rows.length;\r\n i < rowCount && i <= last;\r\n i++) {\r\n\r\n let rowData = rows[i];\r\n physicalRowIndex = isDataFiltered ? rowData['__i'] : i;\r\n\r\n let row = createElement('div');\r\n row.className = rowClassName;\r\n row['rowIndex'] = i;\r\n row['physicalRowIndex'] = physicalRowIndex;\r\n\r\n for (let colIndex = 0; colIndex < colCount; colIndex++) {\r\n let column = visibleColumns[colIndex];\r\n let cell = createElement('div');\r\n cell['columnName'] = column.name;\r\n cell.setAttribute('data-column', column.name);\r\n cell.className = cellClassName;\r\n cell.style.width = column._finalWidth + 'px';\r\n if (column.cellClasses) cell.className += ' ' + column.cellClasses;\r\n if (allowCellPreview) {\r\n p._bindCellHoverIn(cell);\r\n }\r\n\r\n let cellInner = cell.appendChild(createElement('div'));\r\n cellInner.innerHTML = this._getHtmlForCell(rowData, column);\r\n\r\n row.appendChild(cell);\r\n }\r\n\r\n if (isVirtual) {\r\n top = i > 0 ? virtualRowHeightFirst + (i - 1) * virtualRowHeight : 0;\r\n row.style.position = 'absolute';\r\n row.style[virtualRowXAttr] = 0;\r\n\r\n if (supportedTransform === false) {\r\n row.style.top = `${top}px`;\r\n } else {\r\n row.style.top = '0px';\r\n row.style[supportedTransform] = `translateY(${top}px)`;\r\n }\r\n }\r\n\r\n bodyFragment.appendChild(row);\r\n\r\n this.trigger('rowcreate', i, physicalRowIndex, row, rowData);\r\n }\r\n\r\n return bodyFragment;\r\n};\r\n\r\n/**\r\n * Calculate virtual table height for scrollbar\r\n * @private\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype._calculateVirtualHeight = function () {\r\n let p = this.p;\r\n\r\n if (p.tbody) {\r\n let rowCount = (p.filteredRows || p.rows).length;\r\n let height = p.virtualRowHeight * rowCount;\r\n if (rowCount) {\r\n height += (p.virtualRowHeightFirst - p.virtualRowHeight);\r\n height += (p.virtualRowHeightLast - p.virtualRowHeight);\r\n }\r\n // At least 1 pixel - to show scrollers correctly.\r\n if (height < 1) {\r\n height = 1;\r\n }\r\n p.tbody.style.height = height + 'px';\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Calculate the size required for the table body width (which is the row's width)\r\n * @private\r\n * @returns {Number} calculated width\r\n */\r\nDGTable.prototype._calculateTbodyWidth = function () {\r\n const p = this.p;\r\n\r\n let tableClassName = this.o.tableClassName,\r\n rowClassName = tableClassName + '-row',\r\n cellClassName = tableClassName + '-cell',\r\n visibleColumns = p.visibleColumns,\r\n colCount = visibleColumns.length,\r\n cell,\r\n cellInner,\r\n colIndex,\r\n column;\r\n\r\n let $row = $('<div>').addClass(rowClassName).css('float', 'left');\r\n let sumActualWidth = 0;\r\n\r\n for (colIndex = 0; colIndex < colCount; colIndex++) {\r\n column = visibleColumns[colIndex];\r\n cell = createElement('div');\r\n cell.className = cellClassName;\r\n cell.style.width = column.actualWidth + 'px';\r\n if (column.cellClasses) cell.className += ' ' + column.cellClasses;\r\n cellInner = cell.appendChild(createElement('div'));\r\n $row.append(cell);\r\n sumActualWidth += column.actualWidth;\r\n }\r\n\r\n let $thisWrapper = $('<div>')\r\n .addClass(this.el.className)\r\n .css({ 'z-index': -1, 'position': 'absolute', left: '0', top: '-9999px', 'float': 'left', width: '1px', overflow: 'hidden' })\r\n .append(\r\n $('<div>').addClass(tableClassName).append(\r\n $('<div>').addClass(tableClassName + '-body').css('width', sumActualWidth + 10000).append(\r\n $row,\r\n ),\r\n ),\r\n );\r\n\r\n $thisWrapper.appendTo(document.body);\r\n\r\n let fractionTest = $('<div style=\"border:1.5px solid #000;width:0;height:0;position:absolute;left:0;top:-9999px\">').appendTo(document.body);\r\n let fractionValue = parseFloat(fractionTest.css('border-width'));\r\n let hasFractions = Math.round(fractionValue) !== fractionValue;\r\n fractionTest.remove();\r\n\r\n let width = getElementWidth($row[0], true, true, true);\r\n width -= p.scrollbarWidth || 0;\r\n\r\n if (hasFractions) {\r\n width++;\r\n }\r\n\r\n $thisWrapper.remove();\r\n return width;\r\n};\r\n\r\n/**\r\n * Sets the columns of the table\r\n * @public\r\n * @expose\r\n * @param {COLUMN_OPTIONS[]} columns - Column definitions array\r\n * @param {Boolean=true} render - Should render now?\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.setColumns = function (columns, render) {\r\n const p = this.p;\r\n\r\n columns = columns || [];\r\n\r\n let normalizedCols = new ColumnCollection();\r\n for (let i = 0, order = 0; i < columns.length; i++) {\r\n\r\n let columnData = columns[i];\r\n let normalizedColumn = this._initColumnFromData(columnData);\r\n\r\n if (columnData.order !== undefined) {\r\n if (columnData.order > order) {\r\n order = columnData.order + 1;\r\n }\r\n normalizedColumn.order = columnData.order;\r\n } else {\r\n normalizedColumn.order = order++;\r\n }\r\n\r\n normalizedCols.push(normalizedColumn);\r\n }\r\n normalizedCols.normalizeOrder();\r\n\r\n p.columns = normalizedCols;\r\n p.visibleColumns = normalizedCols.getVisibleColumns();\r\n\r\n this._ensureVisibleColumns().clearAndRender(render);\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Add a column to the table\r\n * @public\r\n * @expose\r\n * @param {COLUMN_OPTIONS} columnData column properties\r\n * @param {String|Number} [before=-1] column name or order to be inserted before\r\n * @param {Boolean=true} render - Should render now?\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.addColumn = function (columnData, before, render) {\r\n const p = this.p;\r\n let columns = p.columns;\r\n\r\n if (columnData && !columns.get(columnData.name)) {\r\n let beforeColumn = null;\r\n if (before !== undefined) {\r\n beforeColumn = columns.get(before) || columns.getByOrder(before);\r\n }\r\n\r\n let column = this._initColumnFromData(columnData);\r\n column.order = beforeColumn ? beforeColumn.order : (columns.getMaxOrder() + 1);\r\n\r\n for (let i = columns.getMaxOrder(), to = column.order; i >= to ; i--) {\r\n let col = columns.getByOrder(i);\r\n if (col) {\r\n col.order++;\r\n }\r\n }\r\n\r\n columns.push(column);\r\n columns.normalizeOrder();\r\n\r\n p.visibleColumns = columns.getVisibleColumns();\r\n this._ensureVisibleColumns().clearAndRender(render);\r\n\r\n this.trigger('addcolumn', column.name);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Remove a column from the table\r\n * @public\r\n * @expose\r\n * @param {String} column column name\r\n * @param {Boolean=true} render - Should render now?\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.removeColumn = function (column, render) {\r\n const p = this.p;\r\n let columns = p.columns;\r\n\r\n let colIdx = columns.indexOf(column);\r\n if (colIdx > -1) {\r\n columns.splice(colIdx, 1);\r\n columns.normalizeOrder();\r\n\r\n p.visibleColumns = columns.getVisibleColumns();\r\n this._ensureVisibleColumns().clearAndRender(render);\r\n\r\n this.trigger('removecolumn', column);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Sets a new cell formatter.\r\n * @public\r\n * @expose\r\n * @param {function(value: *, columnName: String, row: Object):String|null} [formatter=null] - The cell formatter. Should return an HTML.\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.setCellFormatter = function (formatter) {\r\n if (!formatter) {\r\n formatter = val => (typeof val === 'string') ? htmlEncode(val) : val;\r\n formatter[IsSafeSymbol] = true;\r\n }\r\n\r\n /**\r\n * @private\r\n * @field {Function} cellFormatter */\r\n this.o.cellFormatter = formatter;\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Sets a new header cell formatter.\r\n * @public\r\n * @expose\r\n * @param {function(label: String, columnName: String):String|null} [formatter=null] - The cell formatter. Should return an HTML.\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.setHeaderCellFormatter = function (formatter) {\r\n /**\r\n * @private\r\n * @field {Function} headerCellFormatter */\r\n this.o.headerCellFormatter = formatter || function (val) {\r\n return (typeof val === 'string') ? htmlEncode(val) : val;\r\n };\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * @public\r\n * @expose\r\n * @param {function(row:Object,args:Object):Boolean|null} [filterFunc=null] - The filter function to work with filters. Default is a by-colum filter.\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.setFilter = function (filterFunc) {\r\n /** @private\r\n * @field {Function} filter */\r\n this.o.filter = filterFunc;\r\n return this;\r\n};\r\n\r\n/**\r\n * @public\r\n * @expose\r\n * @param {Object|null} args - Options to pass to the filter function\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.filter = function (args) {\r\n const p = this.p;\r\n\r\n let filterFunc = this.o.filter || ByColumnFilter;\r\n\r\n // Deprecated use of older by-column filter\r\n if (typeof arguments[0] === 'string' && typeof arguments[1] === 'string') {\r\n args = {\r\n column: arguments[0],\r\n keyword: arguments[1],\r\n caseSensitive: arguments[2],\r\n };\r\n }\r\n\r\n let hadFilter = !!p.filteredRows;\r\n if (p.filteredRows) {\r\n p.filteredRows = null; // Allow releasing array memory now\r\n }\r\n\r\n // Shallow-clone the args, as the filter function may want to modify it for keeping state\r\n p.filterArgs = args == null ? null : ((typeof args === 'object' && !Array.isArray(args)) ? $.extend({}, args) : args);\r\n\r\n if (p.filterArgs !== null) {\r\n p.filteredRows = p.rows.filteredCollection(filterFunc, p.filterArgs);\r\n\r\n if (hadFilter || p.filteredRows) {\r\n this.clearAndRender();\r\n this.trigger('filter', args);\r\n }\r\n }\r\n else {\r\n p.filterArgs = null;\r\n p.filteredRows = null;\r\n this.clearAndRender();\r\n this.trigger('filterclear', {});\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * @public\r\n * @expose\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.clearFilter = function () {\r\n const p = this.p;\r\n\r\n if (p.filteredRows) {\r\n p.filterArgs = null;\r\n p.filteredRows = null;\r\n this.clearAndRender();\r\n this.trigger('filterclear', {});\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * @private\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype._refilter = function() {\r\n const p = this.p;\r\n\r\n if (p.filteredRows && p.filterArgs) {\r\n let filterFunc = this.o.filter || ByColumnFilter;\r\n p.filteredRows = p.rows.filteredCollection(filterFunc, p.filterArgs);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Set a new label to a column\r\n * @public\r\n * @expose\r\n * @param {String} column Name of the column\r\n * @param {String} label New label for the column\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.setColumnLabel = function (column, label) {\r\n const p = this.p;\r\n\r\n let col = p.columns.get(column);\r\n if (col) {\r\n col.label = label === undefined ? col.name : label;\r\n\r\n if (col.element) {\r\n for (let i = 0; i < col.element[0].firstChild.childNodes.length; i++) {\r\n let node = col.element[0].firstChild.childNodes[i];\r\n if (node.nodeType === 3) {\r\n node.textContent = col.label;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Move a column to a new position\r\n * @public\r\n * @expose\r\n * @param {string|number} src Name or position of the column to be moved\r\n * @param {string|number} dest Name of the column currently in the desired position, or the position itself\r\n * @param {boolean} [visibleOnly=true] Should consider only visible columns and visible-relative indexes\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.moveColumn = function (src, dest, visibleOnly = true) {\r\n const o = this.o, p = this.p;\r\n\r\n let columns = p.columns,\r\n col, destCol;\r\n\r\n let columnsArray = visibleOnly ? p.visibleColumns : columns.getColumns();\r\n\r\n if (typeof src === 'string') {\r\n col = columns.get(src);\r\n } else if (typeof src === 'number') {\r\n col = columnsArray[src];\r\n }\r\n if (typeof dest === 'string') {\r\n destCol = columns.get(dest);\r\n } else if (typeof dest === 'number') {\r\n destCol = columnsArray[dest];\r\n }\r\n\r\n if (col && destCol && src !== dest) {\r\n let srcOrder = col.order, destOrder = destCol.order;\r\n\r\n let visibleColumns = columns.moveColumn(col, destCol).getVisibleColumns();\r\n\r\n if (p.visibleColumns.length !== visibleColumns.length ||\r\n p.visibleColumns.some((x, i) => x !== visibleColumns[i])) {\r\n\r\n p.visibleColumns = visibleColumns;\r\n this._ensureVisibleColumns();\r\n\r\n if (o.virtualTable) {\r\n this.clearAndRender()\r\n ._updateLastCellWidthFromScrollbar(true);\r\n } else {\r\n let headerCell = p.$headerRow.find('>div.' + o.tableClassName + '-header-cell');\r\n let beforePos = srcOrder < destOrder ? destOrder + 1 : destOrder,\r\n fromPos = srcOrder;\r\n headerCell[0].parentNode.insertBefore(headerCell[fromPos], headerCell[beforePos]);\r\n\r\n let srcWidth = p.visibleColumns[srcOrder];\r\n srcWidth = (srcWidth.actualWidthConsideringScrollbarWidth || srcWidth.actualWidth) + 'px';\r\n let destWidth = p.visibleColumns[destOrder];\r\n destWidth = (destWidth.actualWidthConsideringScrollbarWidth || destWidth.actualWidth) + 'px';\r\n\r\n let tbodyChildren = p.$tbody[0].childNodes;\r\n for (let i = 0, count = tbodyChildren.length; i < count; i++) {\r\n let row = tbodyChildren[i];\r\n if (row.nodeType !== 1) continue;\r\n row.insertBefore(row.childNodes[fromPos], row.childNodes[beforePos]);\r\n row.childNodes[destOrder].firstChild.style.width = destWidth;\r\n row.childNodes[srcOrder].firstChild.style.width = srcWidth;\r\n }\r\n }\r\n }\r\n\r\n this.trigger('movecolumn', col.name, srcOrder, destOrder);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Sort the table\r\n * @public\r\n * @expose\r\n * @param {String?} column Name of the column to sort on (or null to remove sort arrow)\r\n * @param {Boolean=} descending Sort in descending order\r\n * @param {Boolean} [add=false] Should this sort be on top of the existing sort? (For multiple column sort)\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.sort = function (column, descending, add) {\r\n const o = this.o, p = this.p;\r\n\r\n let columns = p.columns,\r\n col = columns.get(column);\r\n\r\n let currentSort = p.rows.sortColumn;\r\n\r\n if (col) {\r\n\r\n if (currentSort.length && currentSort[currentSort.length - 1].column === column) {\r\n // Recognize current descending mode, if currently sorting by this column\r\n descending = descending === undefined ? !currentSort[currentSort.length - 1].descending : descending;\r\n }\r\n\r\n if (add) { // Add the sort to current sort stack\r\n\r\n for (let i = 0; i < currentSort.length; i++) {\r\n if (currentSort[i].column === col.name) {\r\n if (i < currentSort.length - 1) {\r\n currentSort.length = 0;\r\n } else {\r\n currentSort.splice(currentSort.length - 1, 1);\r\n }\r\n break;\r\n }\r\n }\r\n if ((o.sortableColumns > 0 /* allow manual sort when disabled */ && currentSort.length >= o.sortableColumns) || currentSort.length >= p.visibleColumns.length) {\r\n currentSort.length = 0;\r\n }\r\n\r\n } else { // Sort only by this column\r\n currentSort.length = 0;\r\n }\r\n\r\n // Default to ascending\r\n descending = descending === undefined ? false : descending;\r\n\r\n // Set the required column in the front of the stack\r\n currentSort.push({\r\n column: col.name,\r\n comparePath: col.comparePath || col.dataPath,\r\n descending: !!descending,\r\n });\r\n } else {\r\n currentSort.length = 0;\r\n }\r\n\r\n this._clearSortArrows();\r\n\r\n for (let i = 0; i < currentSort.length; i++) {\r\n this._showSortArrow(currentSort[i].column, currentSort[i].descending);\r\n }\r\n\r\n if (o.adjustColumnWidthForSortArrow && !o._tableSkeletonNeedsRendering) {\r\n this.tableWidthChanged(true);\r\n }\r\n\r\n if (o.virtualTable) {\r\n while (p.tbody && p.tbody.firstChild) {\r\n this.trigger('rowdestroy', p.tbody.firstChild);\r\n this._unbindCellEventsForRow(p.tbody.firstChild);\r\n p.tbody.removeChild(p.tbody.firstChild);\r\n }\r\n } else {\r\n p.tableSkeletonNeedsRendering = true;\r\n }\r\n\r\n p.rows.sortColumn = currentSort;\r\n\r\n if (currentSort.length) {\r\n p.rows.sort(!!p.filteredRows);\r\n if (p.filteredRows) {\r\n p.filteredRows.sort(!!p.filteredRows);\r\n }\r\n }\r\n\r\n // Build output for event, with option names that will survive compilers\r\n let sorts = [];\r\n for (let i = 0; i < currentSort.length; i++) {\r\n sorts.push({ 'column': currentSort[i].column, 'descending': currentSort[i].descending });\r\n }\r\n this.trigger('sort', sorts, true /* direct sort */);\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Re-sort the table using current sort specifiers\r\n * @public\r\n * @expose\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.resort = function () {\r\n const p = this.p;\r\n let columns = p.columns;\r\n\r\n let currentSort = p.rows.sortColumn;\r\n if (currentSort.length) {\r\n\r\n for (let i = 0; i < currentSort.length; i++) {\r\n if (!columns.get(currentSort[i].column)) {\r\n currentSort.splice(i--, 1);\r\n }\r\n }\r\n\r\n p.rows.sortColumn = currentSort;\r\n if (currentSort.length) {\r\n p.rows.sort(!!p.filteredRows);\r\n if (p.filteredRows) {\r\n p.filteredRows.sort(!!p.filteredRows);\r\n }\r\n }\r\n\r\n // Build output for event, with option names that will survive compilers\r\n let sorts = [];\r\n for (let i = 0; i < currentSort.length; i++) {\r\n sorts.push({ 'column': currentSort[i].column, 'descending': currentSort[i].descending });\r\n }\r\n this.trigger('sort', sorts, false /* indirect sort */);\r\n }\r\n\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Make sure there's at least one column visible\r\n * @private\r\n * @expose\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype._ensureVisibleColumns = function () {\r\n const p = this.p;\r\n\r\n if (p.visibleColumns.length === 0 && p.columns.length) {\r\n p.columns[0].visible = true;\r\n p.visibleColumns.push(p.columns[0]);\r\n this.trigger('showcolumn', p.columns[0].name);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Show or hide a column\r\n * @public\r\n * @expose\r\n * @param {String} column Unique column name\r\n * @param {Boolean} visible New visibility mode for the column\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.setColumnVisible = function (column, visible) {\r\n const p = this.p;\r\n\r\n let col = p.columns.get(column);\r\n\r\n //noinspection PointlessBooleanExpressionJS\r\n visible = !!visible;\r\n\r\n if (col && !!col.visible !== visible) {\r\n col.visible = visible;\r\n p.visibleColumns = p.columns.getVisibleColumns();\r\n this.trigger(visible ? 'showcolumn' : 'hidecolumn', column);\r\n this._ensureVisibleColumns();\r\n this.clearAndRender();\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Get the visibility mode of a column\r\n * @public\r\n * @expose\r\n * @returns {Boolean} true if visible\r\n */\r\nDGTable.prototype.isColumnVisible = function (column) {\r\n const p = this.p;\r\n let col = p.columns.get(column);\r\n if (col) {\r\n return col.visible;\r\n }\r\n return false;\r\n};\r\n\r\n/**\r\n * Globally set the minimum column width\r\n * @public\r\n * @expose\r\n * @param {Number} minColumnWidth Minimum column width\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.setMinColumnWidth = function (minColumnWidth) {\r\n let o = this.o;\r\n minColumnWidth = Math.max(minColumnWidth, 0);\r\n if (o.minColumnWidth !== minColumnWidth) {\r\n o.minColumnWidth = minColumnWidth;\r\n this.tableWidthChanged(true);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Get the current minimum column width\r\n * @public\r\n * @expose\r\n * @returns {Number} Minimum column width\r\n */\r\nDGTable.prototype.getMinColumnWidth = function () {\r\n return this.o.minColumnWidth;\r\n};\r\n\r\n/**\r\n * Set the limit on concurrent columns sorted\r\n * @public\r\n * @expose\r\n * @param {Number} sortableColumns How many sortable columns to allow?\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.setSortableColumns = function (sortableColumns) {\r\n const p = this.p, o = this.o;\r\n if (o.sortableColumns !== sortableColumns) {\r\n o.sortableColumns = sortableColumns;\r\n if (p.$table) {\r\n let headerCell = p.$headerRow.find('>div.' + o.tableClassName + '-header-cell');\r\n for (let i = 0; i < headerCell.length; i++) {\r\n $(headerCell[0])[(o.sortableColumns > 0 && p.visibleColumns[i].sortable) ? 'addClass' : 'removeClass']('sortable');\r\n }\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Get the limit on concurrent columns sorted\r\n * @public\r\n * @expose\r\n * @returns {Number} How many sortable columns are allowed?\r\n */\r\nDGTable.prototype.getSortableColumns = function () {\r\n return this.o.sortableColumns;\r\n};\r\n\r\n/**\r\n * @public\r\n * @expose\r\n * @param {Boolean?} movableColumns=true are the columns movable?\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.setMovableColumns = function (movableColumns) {\r\n let o = this.o;\r\n //noinspection PointlessBooleanExpressionJS\r\n movableColumns = movableColumns === undefined ? true : !!movableColumns;\r\n if (o.movableColumns !== movableColumns) {\r\n o.movableColumns = movableColumns;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * @public\r\n * @expose\r\n * @returns {Boolean} are the columns movable?\r\n */\r\nDGTable.prototype.getMovableColumns = function () {\r\n return this.o.movableColumns;\r\n};\r\n\r\n/**\r\n * @public\r\n * @expose\r\n * @param {Boolean} resizableColumns=true are the columns resizable?\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.setResizableColumns = function (resizableColumns) {\r\n let o = this.o;\r\n //noinspection PointlessBooleanExpressionJS\r\n resizableColumns = resizableColumns === undefined ? true : !!resizableColumns;\r\n if (o.resizableColumns !== resizableColumns) {\r\n o.resizableColumns = resizableColumns;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * @public\r\n * @expose\r\n * @returns {Boolean} are the columns resizable?\r\n */\r\nDGTable.prototype.getResizableColumns = function () {\r\n return this.o.resizableColumns;\r\n};\r\n\r\n/**\r\n * @public\r\n * @expose\r\n * @param {{function(columnName: string, descending: boolean, defaultComparator: function(a,b):number):{function(a,b):number}}} comparatorCallback a callback function that returns the comparator for a specific column\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.setComparatorCallback = function (comparatorCallback) {\r\n let o = this.o;\r\n if (o.onComparatorRequired !== comparatorCallback) {\r\n o.onComparatorRequired = comparatorCallback;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Set a new width to a column\r\n * @public\r\n * @expose\r\n * @param {String} column name of the column to resize\r\n * @param {Number|String} width new column as pixels, or relative size (0.5, 50%)\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.setColumnWidth = function (column, width) {\r\n\r\n const p = this.p;\r\n\r\n let col = p.columns.get(column);\r\n\r\n let parsedWidth = this._parseColumnWidth(width, col.ignoreMin ? 0 : this.o.minColumnWidth);\r\n\r\n if (col) {\r\n let oldWidth = this._serializeColumnWidth(col);\r\n\r\n col.width = parsedWidth.width;\r\n col.widthMode = parsedWidth.mode;\r\n\r\n let newWidth = this._serializeColumnWidth(col);\r\n\r\n if (oldWidth !== newWidth) {\r\n this.tableWidthChanged(true); // Calculate actual sizes\r\n }\r\n\r\n this.trigger('columnwidth', col.name, oldWidth, newWidth);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * @public\r\n * @expose\r\n * @param {String} column name of the column\r\n * @returns {String|null} the serialized width of the specified column, or null if column not found\r\n */\r\nDGTable.prototype.getColumnWidth = function (column) {\r\n const p = this.p;\r\n\r\n let col = p.columns.get(column);\r\n if (col) {\r\n return this._serializeColumnWidth(col);\r\n }\r\n return null;\r\n};\r\n\r\n/**\r\n * @public\r\n * @expose\r\n * @param {String} column name of the column\r\n * @returns {SERIALIZED_COLUMN|null} configuration for all columns\r\n */\r\nDGTable.prototype.getColumnConfig = function (column) {\r\n const p = this.p;\r\n let col = p.columns.get(column);\r\n if (col) {\r\n return {\r\n 'order': col.order,\r\n 'width': this._serializeColumnWidth(col),\r\n 'visible': col.visible,\r\n 'label': col.label,\r\n };\r\n }\r\n return null;\r\n};\r\n\r\n/**\r\n * Returns a config object for the columns, to allow saving configurations for next time...\r\n * @public\r\n * @expose\r\n * @returns {Object} configuration for all columns\r\n */\r\nDGTable.prototype.getColumnsConfig = function () {\r\n const p = this.p;\r\n\r\n let config = {};\r\n for (let i = 0; i < p.columns.length; i++) {\r\n config[p.columns[i].name] = this.getColumnConfig(p.columns[i].name);\r\n }\r\n return config;\r\n};\r\n\r\n/**\r\n * Returns an array of the currently sorted columns\r\n * @public\r\n * @expose\r\n * @returns {Array.<SERIALIZED_COLUMN_SORT>} configuration for all columns\r\n */\r\nDGTable.prototype.getSortedColumns = function () {\r\n const p = this.p;\r\n\r\n let sorted = [];\r\n for (let i = 0; i < p.rows.sortColumn.length; i++) {\r\n let sort = p.rows.sortColumn[i];\r\n sorted.push({ column: sort.column, descending: sort.descending });\r\n }\r\n return sorted;\r\n};\r\n\r\n/**\r\n * Returns the HTML string for a specific cell. Can be used externally for special cases (i.e. when setting a fresh HTML in the cell preview through the callback).\r\n * @public\r\n * @expose\r\n * @param {number} rowIndex - index of the row\r\n * @param {string} columnName - name of the column\r\n * @returns {string} HTML string for the specified cell\r\n */\r\nDGTable.prototype.getHtmlForRowCell = function (rowIndex, columnName) {\r\n const p = this.p;\r\n\r\n if (rowIndex < 0 || rowIndex > p.rows.length - 1) return null;\r\n let column = p.columns.get(columnName);\r\n if (!column) return null;\r\n let rowData = p.rows[rowIndex];\r\n\r\n return this._getHtmlForCell(rowData, column);\r\n};\r\n\r\n/**\r\n * Returns the HTML string for a specific cell. Can be used externally for special cases (i.e. when setting a fresh HTML in the cell preview through the callback).\r\n * @public\r\n * @expose\r\n * @param {Object} rowData - row data\r\n * @param {Object} columnName - column data\r\n * @returns {string|null} HTML string for the specified cell\r\n */\r\nDGTable.prototype.getHtmlForRowDataCell = function (rowData, columnName) {\r\n const p = this.p;\r\n\r\n let column = p.columns.get(columnName);\r\n if (!column) return null;\r\n\r\n return this._getHtmlForCell(rowData, column);\r\n};\r\n\r\n/**\r\n * Returns the HTML string for a specific cell. Can be used externally for special cases (i.e. when setting a fresh HTML in the cell preview through the callback).\r\n * @private\r\n * @expose\r\n * @param {Object} rowData - row data\r\n * @param {Object} column - column data\r\n * @returns {string} HTML string for the specified cell\r\n */\r\nDGTable.prototype._getHtmlForCell = function (rowData, column) {\r\n let dataPath = column.dataPath;\r\n let colValue = rowData[dataPath[0]];\r\n for (let dataPathIndex = 1; dataPathIndex < dataPath.length; dataPathIndex++) {\r\n if (colValue == null) break;\r\n colValue = colValue && colValue[dataPath[dataPathIndex]];\r\n }\r\n\r\n const formatter = this.o.cellFormatter;\r\n let content;\r\n\r\n if (formatter[IsSafeSymbol]) {\r\n content = formatter(colValue, column.name, rowData);\r\n } else {\r\n try {\r\n content = formatter(colValue, column.name, rowData);\r\n } catch (err) {\r\n content = '[ERROR]';\r\n // eslint-disable-next-line no-console\r\n console.error('Failed to generate content for cell ' + column.name, err);\r\n }\r\n }\r\n\r\n if (content === undefined || content === null) {\r\n content = '';\r\n }\r\n\r\n return content;\r\n};\r\n\r\n/**\r\n * Returns the y pos of a row by index\r\n * @public\r\n * @expose\r\n * @param {Number} rowIndex - index of the row\r\n * @returns {Number|null} Y pos\r\n */\r\nDGTable.prototype.getRowYPos = function (rowIndex) {\r\n const p = this.p;\r\n\r\n if (this.o.virtualTable) {\r\n return rowIndex > 0 ? p.virtualRowHeightFirst + (rowIndex - 1) * p.virtualRowHeight : 0;\r\n } else {\r\n let row = p.tbody.childNodes[rowIndex];\r\n return row ? row.offsetTop : null;\r\n }\r\n};\r\n\r\n/**\r\n * Returns the row data for a specific row\r\n * @public\r\n * @expose\r\n * @param {Number} row index of the row\r\n * @returns {Object} Row data\r\n */\r\nDGTable.prototype.getDataForRow = function (row) {\r\n const p = this.p;\r\n\r\n if (row < 0 || row > p.rows.length - 1) return null;\r\n return p.rows[row];\r\n};\r\n\r\n/**\r\n * Gets the number of rows\r\n * @public\r\n * @expose\r\n * @returns {Number} Row count\r\n */\r\nDGTable.prototype.getRowCount = function () {\r\n const p = this.p;\r\n return p.rows ? p.rows.length : 0;\r\n};\r\n\r\n/**\r\n * Returns the physical row index for specific row\r\n * @public\r\n * @expose\r\n * @param {Object} rowData - Row data to find\r\n * @returns {Number} Row index\r\n */\r\nDGTable.prototype.getIndexForRow = function (rowData) {\r\n const p = this.p;\r\n return p.rows.indexOf(rowData);\r\n};\r\n\r\n/**\r\n * Gets the number of filtered rows\r\n * @public\r\n * @expose\r\n * @returns {Number} Filtered row count\r\n */\r\nDGTable.prototype.getFilteredRowCount = function () {\r\n const p = this.p;\r\n return (p.filteredRows || p.rows).length;\r\n};\r\n\r\n/**\r\n * Returns the filtered row index for specific row\r\n * @public\r\n * @expose\r\n * @param {Object} rowData - Row data to find\r\n * @returns {Number} Row index\r\n */\r\nDGTable.prototype.getIndexForFilteredRow = function (rowData) {\r\n const p = this.p;\r\n return (p.filteredRows || p.rows).indexOf(rowData);\r\n};\r\n\r\n/**\r\n * Returns the row data for a specific row\r\n * @public\r\n * @expose\r\n * @param {Number} row index of the filtered row\r\n * @returns {Object} Row data\r\n */\r\nDGTable.prototype.getDataForFilteredRow = function (row) {\r\n const p = this.p;\r\n if (row < 0 || row > (p.filteredRows || p.rows).length - 1) return null;\r\n return (p.filteredRows || p.rows)[row];\r\n};\r\n\r\n/**\r\n * Returns DOM element of the header row\r\n * @public\r\n * @expose\r\n * @returns {Element} Row element\r\n */\r\nDGTable.prototype.getHeaderRowElement = function () {\r\n return this.p.headerRow;\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {Element} el\r\n * @returns {Number} width\r\n */\r\nDGTable.prototype._horizontalPadding = function(el) {\r\n return ((parseFloat($.css(el, 'padding-left')) || 0) +\r\n (parseFloat($.css(el, 'padding-right')) || 0));\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {Element} el\r\n * @returns {Number} width\r\n */\r\nDGTable.prototype._horizontalBorderWidth = function(el) {\r\n return ((parseFloat($.css(el, 'border-left')) || 0) +\r\n (parseFloat($.css(el, 'border-right')) || 0));\r\n};\r\n\r\n/**\r\n * @private\r\n * @returns {Number} width\r\n */\r\nDGTable.prototype._calculateWidthAvailableForColumns = function() {\r\n const o = this.o, p = this.p;\r\n\r\n // Changing display mode briefly, to prevent taking in account the parent's scrollbar width when we are the cause for it\r\n let oldDisplay, lastScrollTop, lastScrollLeft;\r\n if (p.$table) {\r\n lastScrollTop = p.table ? p.table.scrollTop : 0;\r\n lastScrollLeft = p.table ? p.table.scrollLeft : 0;\r\n\r\n if (o.virtualTable) {\r\n oldDisplay = p.$table[0].style.display;\r\n p.$table[0].style.display = 'none';\r\n }\r\n }\r\n\r\n let detectedWidth = getElementWidth(this.$el[0]);\r\n\r\n if (p.$table) {\r\n if (o.virtualTable) {\r\n p.$table[0].style.display = oldDisplay;\r\n }\r\n\r\n p.table.scrollTop = lastScrollTop;\r\n p.table.scrollLeft = lastScrollLeft;\r\n p.header.scrollLeft = lastScrollLeft;\r\n }\r\n\r\n let tableClassName = o.tableClassName;\r\n\r\n let $thisWrapper = $('<div>').addClass(this.el.className).css({ 'z-index': -1, 'position': 'absolute', left: '0', top: '-9999px' });\r\n let $header = $('<div>').addClass(tableClassName + '-header').appendTo($thisWrapper);\r\n let $headerRow = $('<div>').addClass(tableClassName + '-header-row').appendTo($header);\r\n for (let i = 0; i < p.visibleColumns.length; i++) {\r\n $headerRow.append($('<div><div></div></div>').addClass(tableClassName + '-header-cell').addClass(p.visibleColumns[i].cellClasses || ''));\r\n }\r\n $thisWrapper.appendTo(document.body);\r\n\r\n detectedWidth -= this._horizontalBorderWidth($headerRow[0]);\r\n\r\n let $cells = $headerRow.find('>div.' + tableClassName + '-header-cell');\r\n for (let i = 0; i < $cells.length; i++) {\r\n let $cell = $($cells[i]);\r\n\r\n let isBoxing = $cell.css('boxSizing') === 'border-box';\r\n if (!isBoxing) {\r\n detectedWidth -=\r\n (parseFloat($cell.css('border-right-width')) || 0) +\r\n (parseFloat($cell.css('border-left-width')) || 0) +\r\n (this._horizontalPadding($cell[0])); // CELL's padding\r\n }\r\n }\r\n\r\n if ($thisWrapper) {\r\n $thisWrapper.remove();\r\n }\r\n\r\n return Math.max(0, detectedWidth);\r\n};\r\n\r\n/**\r\n * Notify the table that its width has changed\r\n * @public\r\n * @expose\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.tableWidthChanged = (function () {\r\n\r\n let getTextWidth = function(text) {\r\n let tableClassName = this.o.tableClassName;\r\n\r\n let $cell, $tableWrapper = $('<div>').addClass(this.$el).append(\r\n $('<div>').addClass(tableClassName + '-header').append(\r\n $('<div>').addClass(tableClassName + '-header-row').append(\r\n $cell = $('<div>').addClass(tableClassName + '-header-cell').append(\r\n $('<div>').text(text),\r\n ),\r\n ),\r\n ),\r\n ).css({ 'position': 'absolute', top: '-9999px', 'visibility': 'hidden' });\r\n $tableWrapper.appendTo(document.body);\r\n\r\n let width = getElementWidth($cell[0]);\r\n\r\n $tableWrapper.remove();\r\n\r\n return width;\r\n };\r\n\r\n let lastDetectedWidth = null;\r\n\r\n /**\r\n * @public\r\n * @expose\r\n * @param {Boolean} [forceUpdate=false]\r\n * @param {Boolean} [renderColumns=true]\r\n * @returns {DGTable} self\r\n */\r\n return function(forceUpdate, renderColumns) {\r\n\r\n let that = this,\r\n o = that.o,\r\n p = that.p,\r\n detectedWidth = this._calculateWidthAvailableForColumns(),\r\n sizeLeft = detectedWidth,\r\n relatives = 0;\r\n\r\n if (!p.$table) return this;\r\n\r\n renderColumns = renderColumns === undefined || renderColumns;\r\n\r\n let tableWidthBeforeCalculations = 0;\r\n\r\n if (!p.tbody) {\r\n renderColumns = false;\r\n }\r\n\r\n if (renderColumns) {\r\n tableWidthBeforeCalculations = parseFloat(p.tbody.style.minWidth) || 0;\r\n }\r\n\r\n if (sizeLeft !== lastDetectedWidth || forceUpdate) {\r\n lastDetectedWidth = detectedWidth;\r\n\r\n let absWidthTotal = 0, changedColumnIndexes = [], totalRelativePercentage = 0;\r\n\r\n for (let i = 0; i < p.columns.length; i++) {\r\n p.columns[i].actualWidthConsideringScrollbarWidth = null;\r\n }\r\n\r\n for (let i = 0; i < p.visibleColumns.length; i++) {\r\n let col = p.visibleColumns[i];\r\n if (col.widthMode === ColumnWidthMode.ABSOLUTE) {\r\n let width = col.width;\r\n width += col.arrowProposedWidth || 0; // Sort-arrow width\r\n if (!col.ignoreMin && width < o.minColumnWidth) {\r\n width = o.minColumnWidth;\r\n }\r\n sizeLeft -= width;\r\n absWidthTotal += width;\r\n\r\n // Update actualWidth\r\n if (width !== col.actualWidth) {\r\n col.actualWidth = width;\r\n changedColumnIndexes.push(i);\r\n }\r\n } else if (col.widthMode === ColumnWidthMode.AUTO) {\r\n let width = getTextWidth.call(this, col.label) + 20;\r\n width += col.arrowProposedWidth || 0; // Sort-arrow width\r\n if (!col.ignoreMin && width < o.minColumnWidth) {\r\n width = o.minColumnWidth;\r\n }\r\n sizeLeft -= width;\r\n absWidthTotal += width;\r\n\r\n // Update actualWidth\r\n if (width !== col.actualWidth) {\r\n col.actualWidth = width;\r\n if (!o.convertColumnWidthsToRelative) {\r\n changedColumnIndexes.push(i);\r\n }\r\n }\r\n } else if (col.widthMode === ColumnWidthMode.RELATIVE) {\r\n totalRelativePercentage += col.width;\r\n relatives++;\r\n }\r\n }\r\n\r\n // Normalize relative sizes if needed\r\n if (o.convertColumnWidthsToRelative) {\r\n for (let i = 0; i < p.visibleColumns.length; i++) {\r\n let col = p.visibleColumns[i];\r\n if (col.widthMode === ColumnWidthMode.AUTO) {\r\n col.widthMode = ColumnWidthMode.RELATIVE;\r\n sizeLeft += col.actualWidth;\r\n col.width = col.actualWidth / absWidthTotal;\r\n totalRelativePercentage += col.width;\r\n relatives++;\r\n }\r\n }\r\n }\r\n\r\n // Normalize relative sizes if needed\r\n if (relatives && ((totalRelativePercentage < 1 && o.relativeWidthGrowsToFillWidth) ||\r\n (totalRelativePercentage > 1 && o.relativeWidthShrinksToFillWidth))) {\r\n for (let i = 0; i < p.visibleColumns.length; i++) {\r\n let col = p.visibleColumns[i];\r\n if (col.widthMode === ColumnWidthMode.RELATIVE) {\r\n col.width /= totalRelativePercentage;\r\n }\r\n }\r\n }\r\n\r\n let sizeLeftForRelative = Math.max(0, sizeLeft); // Use this as the space to take the relative widths out of\r\n if (sizeLeftForRelative === 0) {\r\n sizeLeftForRelative = p.table.clientWidth;\r\n }\r\n\r\n let minColumnWidthRelative = (o.minColumnWidth / sizeLeftForRelative);\r\n if (isNaN(minColumnWidthRelative)) {\r\n minColumnWidthRelative = 0;\r\n }\r\n if (minColumnWidthRelative > 0) {\r\n let extraRelative = 0, delta;\r\n\r\n // First pass - make sure they are all constrained to the minimum width\r\n for (let i = 0; i < p.visibleColumns.length; i++) {\r\n let col = p.visibleColumns[i];\r\n if (col.widthMode === ColumnWidthMode.RELATIVE) {\r\n if (!col.ignoreMin && col.width < minColumnWidthRelative) {\r\n extraRelative += minColumnWidthRelative - col.width;\r\n col.width = minColumnWidthRelative;\r\n }\r\n }\r\n }\r\n\r\n // Second pass - try to take the extra width out of the other columns to compensate\r\n for (let i = 0; i < p.visibleColumns.length; i++) {\r\n let col = p.visibleColumns[i];\r\n if (col.widthMode === ColumnWidthMode.RELATIVE) {\r\n if (!col.ignoreMin && col.width > minColumnWidthRelative) {\r\n if (extraRelative > 0) {\r\n delta = Math.min(extraRelative, col.width - minColumnWidthRelative);\r\n col.width -= delta;\r\n extraRelative -= delta;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Try to fill width\r\n if (o.autoFillTableWidth && sizeLeft > 0) {\r\n let nonResizableTotal = 0;\r\n let sizeLeftToFill = sizeLeft;\r\n\r\n for (let i = 0; i < p.visibleColumns.length; i++) {\r\n let col = p.visibleColumns[i];\r\n if (!col.resizable && col.widthMode === ColumnWidthMode.ABSOLUTE)\r\n nonResizableTotal += col.width;\r\n\r\n if (col.widthMode === ColumnWidthMode.RELATIVE)\r\n sizeLeftToFill -= Math.round(sizeLeftForRelative * col.width);\r\n }\r\n\r\n let conv = ((detectedWidth - nonResizableTotal) / (detectedWidth - sizeLeftToFill - nonResizableTotal)) || NaN;\r\n for (let i = 0; i < p.visibleColumns.length && sizeLeftToFill > 0; i++) {\r\n let col = p.visibleColumns[i];\r\n if (!col.resizable && col.widthMode === ColumnWidthMode.ABSOLUTE)\r\n continue;\r\n\r\n if (col.widthMode === ColumnWidthMode.RELATIVE) {\r\n col.width *= conv;\r\n } else {\r\n let width = col.actualWidth * conv;\r\n if (col.actualWidth !== width) {\r\n col.actualWidth = width;\r\n if (changedColumnIndexes.indexOf(i) === -1)\r\n changedColumnIndexes.push(i);\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Materialize relative sizes\r\n for (let i = 0; i < p.visibleColumns.length; i++) {\r\n let col = p.visibleColumns[i];\r\n if (col.widthMode === ColumnWidthMode.RELATIVE) {\r\n let width = Math.round(sizeLeftForRelative * col.width);\r\n sizeLeft -= width;\r\n relatives--;\r\n\r\n // Take care of rounding errors\r\n if (relatives === 0 && sizeLeft === 1) { // Take care of rounding errors\r\n width++;\r\n sizeLeft--;\r\n }\r\n if (sizeLeft === -1) {\r\n width--;\r\n sizeLeft++;\r\n }\r\n\r\n // Update actualWidth\r\n if (width !== col.actualWidth) {\r\n col.actualWidth = width;\r\n changedColumnIndexes.push(i);\r\n }\r\n }\r\n }\r\n\r\n if (p.visibleColumns.length) {\r\n // (There should always be at least 1 column visible, but just in case)\r\n p.visibleColumns[p.visibleColumns.length - 1].actualWidthConsideringScrollbarWidth =\r\n p.visibleColumns[p.visibleColumns.length - 1].actualWidth - (p.scrollbarWidth || 0);\r\n }\r\n\r\n if (renderColumns) {\r\n let tableWidth = this._calculateTbodyWidth();\r\n\r\n if (tableWidthBeforeCalculations < tableWidth) {\r\n this._updateTableWidth(false);\r\n }\r\n\r\n for (let i = 0; i < changedColumnIndexes.length; i++) {\r\n this._resizeColumnElements(changedColumnIndexes[i]);\r\n }\r\n\r\n if (tableWidthBeforeCalculations > tableWidth) {\r\n this._updateTableWidth(false);\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n };\r\n})();\r\n\r\n/**\r\n * Notify the table that its height has changed\r\n * @public\r\n * @expose\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.tableHeightChanged = function () {\r\n let that = this,\r\n o = that.o,\r\n p = that.p;\r\n\r\n if (!p.$table) {\r\n return that;\r\n }\r\n\r\n let height = getElementHeight(that.$el[0], true)\r\n - (parseFloat(p.$table.css('border-top-width')) || 0) // Subtract top border of inner element\r\n - (parseFloat(p.$table.css('border-bottom-width')) || 0); // Subtract bottom border of inner element\r\n\r\n if (height !== o.height) {\r\n\r\n o.height = height;\r\n\r\n if (p.tbody) {\r\n // At least 1 pixel - to show scrollers correctly.\r\n p.tbody.style.height = Math.max(o.height - getElementHeight(p.$headerRow[0], true, true, true), 1) + 'px';\r\n }\r\n\r\n if (o.virtualTable) {\r\n that.clearAndRender();\r\n }\r\n }\r\n\r\n return that;\r\n};\r\n\r\n/**\r\n * Add rows to the table\r\n * @public\r\n * @expose\r\n * @param {Object[]} data - array of rows to add to the table\r\n * @param {Number} [at=-1] - where to add the rows at\r\n * @param {Boolean} [resort=false] - should resort all rows?\r\n * @param {Boolean} [render=true]\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.addRows = function (data, at, resort, render) {\r\n let that = this,\r\n p = that.p;\r\n\r\n if (typeof at === 'boolean') {\r\n render = resort;\r\n resort = at;\r\n at = -1;\r\n }\r\n\r\n if (typeof at !== 'number')\r\n at = -1;\r\n\r\n if (at < 0 || at > p.rows.length)\r\n at = p.rows.length;\r\n\r\n render = (render === undefined) ? true : !!render;\r\n\r\n if (data) {\r\n p.rows.add(data, at);\r\n\r\n if (p.filteredRows || (resort && p.rows.sortColumn.length)) {\r\n\r\n if (resort && p.rows.sortColumn.length) {\r\n this.resort();\r\n } else {\r\n this._refilter();\r\n }\r\n\r\n p.tableSkeletonNeedsRendering = true;\r\n\r\n if (render) {\r\n // Render the skeleton with all rows from scratch\r\n this.render();\r\n }\r\n\r\n } else if (render) {\r\n let childNodes = p.tbody.childNodes;\r\n\r\n if (that.o.virtualTable) {\r\n\r\n while (p.tbody.firstChild) {\r\n this.trigger('rowdestroy', p.tbody.firstChild);\r\n this._unbindCellEventsForRow(p.tbody.firstChild);\r\n p.tbody.removeChild(p.tbody.firstChild);\r\n }\r\n\r\n this._calculateVirtualHeight() // Calculate virtual height\r\n ._updateLastCellWidthFromScrollbar() // Detect vertical scrollbar height\r\n .render()\r\n ._updateTableWidth(false); // Update table width to suit the required width considering vertical scrollbar\r\n\r\n } else if (p.$tbody) {\r\n\r\n let firstRow = at,\r\n lastRow = at + data.length - 1;\r\n\r\n let renderedRows = that.renderRows(firstRow, lastRow);\r\n p.tbody.insertBefore(renderedRows, childNodes[at] || null);\r\n\r\n for (let i = lastRow + 1; i < childNodes.length; i++) {\r\n let row = childNodes[i];\r\n row['rowIndex'] += data.length;\r\n row['physicalRowIndex'] += data.length;\r\n }\r\n\r\n this.render()\r\n ._updateLastCellWidthFromScrollbar() // Detect vertical scrollbar height, and update existing last cells\r\n ._updateTableWidth(true); // Update table width to suit the required width considering vertical scrollbar\r\n\r\n }\r\n }\r\n\r\n this.trigger('addrows', data.length, false);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes a row from the table\r\n * @public\r\n * @expose\r\n * @param {Number} physicalRowIndex - index\r\n * @param {Number} count - how many rows to remove\r\n * @param {Boolean=true} render\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.removeRows = function (physicalRowIndex, count, render) {\r\n let that = this,\r\n p = that.p;\r\n\r\n if (typeof count !== 'number' || count <= 0) return this;\r\n\r\n if (physicalRowIndex < 0 || physicalRowIndex > p.rows.length - 1) return this;\r\n\r\n p.rows.splice(physicalRowIndex, count);\r\n render = (render === undefined) ? true : !!render;\r\n\r\n if (p.filteredRows) {\r\n\r\n this._refilter();\r\n\r\n p.tableSkeletonNeedsRendering = true;\r\n\r\n if (render) {\r\n // Render the skeleton with all rows from scratch\r\n this.render();\r\n }\r\n\r\n } else if (render) {\r\n\r\n let childNodes = p.tbody.childNodes;\r\n\r\n if (this.o.virtualTable) {\r\n\r\n while (p.tbody.firstChild) {\r\n this.trigger('rowdestroy', p.tbody.firstChild);\r\n this._unbindCellEventsForRow(p.tbody.firstChild);\r\n p.tbody.removeChild(p.tbody.firstChild);\r\n }\r\n\r\n this._calculateVirtualHeight()\r\n ._updateLastCellWidthFromScrollbar()\r\n .render()\r\n ._updateTableWidth(false); // Update table width to suit the required width considering vertical scrollbar\r\n\r\n\r\n } else {\r\n\r\n let countRemoved = 0, lastRowIndex = physicalRowIndex + count - 1;\r\n\r\n for (let i = 0; i < childNodes.length; i++) {\r\n let row = childNodes[i];\r\n let index = row['physicalRowIndex'];\r\n\r\n if (index >= physicalRowIndex) {\r\n if (index <= lastRowIndex) {\r\n this.trigger('rowdestroy', row);\r\n this._unbindCellEventsForRow(row);\r\n p.tbody.removeChild(row);\r\n i--;\r\n } else {\r\n row['physicalRowIndex'] -= count;\r\n }\r\n } else {\r\n row['rowIndex'] = i;\r\n }\r\n }\r\n\r\n this.render()\r\n ._updateLastCellWidthFromScrollbar()\r\n ._updateTableWidth(true); // Update table width to suit the required width considering vertical scrollbar\r\n\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes a row from the table\r\n * @public\r\n * @expose\r\n * @param {Number} physicalRowIndex - index\r\n * @param {Boolean=true} render\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.removeRow = function (physicalRowIndex, render) {\r\n return this.removeRows(physicalRowIndex, 1, render);\r\n};\r\n\r\n/**\r\n * Refreshes the row specified\r\n * @public\r\n * @expose\r\n * @param {Number} physicalRowIndex index\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.refreshRow = function(physicalRowIndex) {\r\n let that = this,\r\n p = that.p;\r\n\r\n if (physicalRowIndex < 0 || physicalRowIndex > p.rows.length - 1) return this;\r\n\r\n // Find out if the row is in the rendered dataset\r\n let rowIndex = -1;\r\n if (p.filteredRows && (rowIndex = p.filteredRows.indexOf(p.rows[physicalRowIndex])) === -1) return this;\r\n\r\n if (rowIndex === -1) {\r\n rowIndex = physicalRowIndex;\r\n }\r\n\r\n let childNodes = p.tbody.childNodes;\r\n\r\n if (this.o.virtualTable) {\r\n // Now make sure that the row actually rendered, as this is a virtual table\r\n let isRowVisible = false;\r\n let i = 0;\r\n\r\n for (; i < childNodes.length; i++) {\r\n if (childNodes[i]['physicalRowIndex'] === physicalRowIndex) {\r\n isRowVisible = true;\r\n this.trigger('rowdestroy', childNodes[i]);\r\n this._unbindCellEventsForRow(childNodes[i]);\r\n p.tbody.removeChild(childNodes[i]);\r\n break;\r\n }\r\n }\r\n\r\n if (isRowVisible) {\r\n let renderedRow = this.renderRows(rowIndex, rowIndex);\r\n p.tbody.insertBefore(renderedRow, childNodes[i] || null);\r\n }\r\n } else {\r\n this.trigger('rowdestroy', childNodes[rowIndex]);\r\n this._unbindCellEventsForRow(childNodes[rowIndex]);\r\n p.tbody.removeChild(childNodes[rowIndex]);\r\n let renderedRow = this.renderRows(rowIndex, rowIndex);\r\n p.tbody.insertBefore(renderedRow, childNodes[rowIndex] || null);\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Get the DOM element for the specified row, if it exists\r\n * @public\r\n * @expose\r\n * @param {Number} physicalRowIndex index\r\n * @returns {Element|null} row or null\r\n */\r\nDGTable.prototype.getRowElement = function(physicalRowIndex) {\r\n let that = this,\r\n p = that.p;\r\n\r\n if (physicalRowIndex < 0 || physicalRowIndex > p.rows.length - 1) return null;\r\n\r\n // Find out if the row is in the rendered dataset\r\n let rowIndex = -1;\r\n if (p.filteredRows && (rowIndex = p.filteredRows.indexOf(p.rows[physicalRowIndex])) === -1) return this;\r\n\r\n if (rowIndex === -1) {\r\n rowIndex = physicalRowIndex;\r\n }\r\n\r\n let childNodes = p.tbody.childNodes;\r\n\r\n if (this.o.virtualTable) {\r\n // Now make sure that the row actually rendered, as this is a virtual table\r\n for (let i = 0; i < childNodes.length; i++) {\r\n if (childNodes[i]['physicalRowIndex'] === physicalRowIndex) {\r\n return childNodes[i];\r\n }\r\n }\r\n } else {\r\n return childNodes[rowIndex];\r\n }\r\n\r\n return null;\r\n};\r\n\r\n/**\r\n * Refreshes all virtual rows\r\n * @public\r\n * @expose\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.refreshAllVirtualRows = function () {\r\n\r\n const p = this.p;\r\n\r\n if (this.o.virtualTable) {\r\n // Now make sure that the row actually rendered, as this is a virtual table\r\n let rowsToRender = [];\r\n let childNodes = p.tbody.childNodes;\r\n\r\n for (let i = 0, rowCount = childNodes.length; i < rowCount; i++) {\r\n rowsToRender.push(childNodes[i]['physicalRowIndex']);\r\n this.trigger('rowdestroy', childNodes[i]);\r\n this._unbindCellEventsForRow(childNodes[i]);\r\n p.tbody.removeChild(childNodes[i]);\r\n i--;\r\n rowCount--;\r\n }\r\n\r\n for (let i = 0; i < rowsToRender.length; i++) {\r\n let renderedRow = this.renderRows(rowsToRender[i], rowsToRender[i]);\r\n p.tbody.appendChild(renderedRow);\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Replace the whole dataset\r\n * @public\r\n * @expose\r\n * @param {Object[]} data array of rows to add to the table\r\n * @param {Boolean} [resort=false] should resort all rows?\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.setRows = function (data, resort) {\r\n let that = this,\r\n p = that.p;\r\n\r\n // this.scrollTop = this.$el.find('.table').scrollTop();\r\n p.rows.reset(data);\r\n\r\n if (resort && p.rows.sortColumn.length) {\r\n this.resort();\r\n } else {\r\n this._refilter();\r\n }\r\n\r\n this.clearAndRender().trigger('addrows', data.length, true);\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Creates a URL representing the data in the specified element.\r\n * This uses the Blob or BlobBuilder of the modern browsers.\r\n * The url can be used for a Web Worker.\r\n * @public\r\n * @expose\r\n * @param {string} id Id of the element containing your data\r\n * @returns {String|null} the url, or null if not supported\r\n */\r\nDGTable.prototype.getUrlForElementContent = function (id) {\r\n let blob,\r\n el = document.getElementById(id);\r\n if (el) {\r\n let data = el.textContent;\r\n if (typeof Blob === 'function') {\r\n blob = new Blob([data]);\r\n } else {\r\n let BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder;\r\n if (!BlobBuilder) {\r\n return null;\r\n }\r\n let builder = new BlobBuilder();\r\n builder.append(data);\r\n blob = builder.getBlob();\r\n }\r\n return (window.URL || window.webkitURL).createObjectURL(blob);\r\n }\r\n return null;\r\n};\r\n\r\n/**\r\n * @public\r\n * @expose\r\n * @returns {Boolean} A value indicating whether Web Workers are supported\r\n */\r\nDGTable.prototype.isWorkerSupported = function() {\r\n return window['Worker'] instanceof Function;\r\n};\r\n\r\n/**\r\n * Creates a Web Worker for updating the table.\r\n * @public\r\n * @expose\r\n * @param {string} url Url to the script for the Web Worker\r\n * @param {boolean} [start=true] if true, starts the Worker immediately\r\n * @param {boolean} [resort=false]\r\n * @returns {Worker|null} the Web Worker, or null if not supported\r\n */\r\nDGTable.prototype.createWebWorker = function (url, start, resort) {\r\n if (this.isWorkerSupported()) {\r\n let that = this,\r\n p = that.p;\r\n\r\n let worker = new Worker(url);\r\n let listener = function (evt) {\r\n if (evt.data.append) {\r\n that.addRows(evt.data.rows, resort);\r\n } else {\r\n that.setRows(evt.data.rows, resort);\r\n }\r\n };\r\n worker.addEventListener('message', listener, false);\r\n if (!p.workerListeners) {\r\n p.workerListeners = [];\r\n }\r\n p.workerListeners.push({ worker: worker, listener: listener });\r\n if (start || start === undefined) {\r\n worker.postMessage(null);\r\n }\r\n return worker;\r\n }\r\n return null;\r\n};\r\n\r\n/**\r\n * Unbinds a Web Worker from the table, stopping updates.\r\n * @public\r\n * @expose\r\n * @param {Worker} worker the Web Worker\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.unbindWebWorker = function (worker) {\r\n let that = this,\r\n p = that.p;\r\n\r\n if (p.workerListeners) {\r\n for (let j = 0; j < p.workerListeners.length; j++) {\r\n if (p.workerListeners[j].worker === worker) {\r\n worker.removeEventListener('message', p.workerListeners[j].listener, false);\r\n p.workerListeners.splice(j, 1);\r\n j--;\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * A synonym for hideCellPreview()\r\n * @public\r\n * @expose\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.abortCellPreview = function() {\r\n this.hideCellPreview();\r\n return this;\r\n};\r\n\r\n/**\r\n * Cancel a resize in progress\r\n * @expose\r\n * @private\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.cancelColumnResize = function() {\r\n const p = this.p;\r\n\r\n if (p.$resizer) {\r\n p.$resizer.remove();\r\n p.$resizer = null;\r\n $(document).off('mousemove.dgtable', p.onMouseMoveResizeAreaBound)\r\n .off('mouseup.dgtable', p.onEndDragColumnHeaderBound);\r\n }\r\n\r\n return this;\r\n};\r\n\r\nDGTable.prototype._onVirtualTableScrolled = function () {\r\n this.render();\r\n};\r\n\r\nDGTable.prototype._onTableScrolledHorizontally = function () {\r\n const p = this.p;\r\n\r\n p.header.scrollLeft = p.table.scrollLeft;\r\n};\r\n\r\n/**previousElementSibling\r\n * Reverse-calculate the column to resize from mouse position\r\n * @private\r\n * @param {jQuery_Event} e jQuery mouse event\r\n * @returns {String} name of the column which the mouse is over, or null if the mouse is not in resize position\r\n */\r\nDGTable.prototype._getColumnByResizePosition = function (e) {\r\n\r\n let that = this,\r\n o = that.o,\r\n rtl = this._isTableRtl();\r\n\r\n let $headerCell = $(e.target).closest('div.' + o.tableClassName + '-header-cell,div.' + o.cellPreviewClassName),\r\n headerCell = $headerCell[0];\r\n if (headerCell['__cell']) {\r\n headerCell = headerCell['__cell'];\r\n $headerCell = $(headerCell);\r\n }\r\n\r\n let previousElementSibling = $headerCell[0].previousSibling;\r\n while (previousElementSibling && previousElementSibling.nodeType !== 1) {\r\n previousElementSibling = previousElementSibling.previousSibling;\r\n }\r\n\r\n let firstCol = !previousElementSibling;\r\n\r\n let mouseX = ((e.pageX != null ? e.pageX : e.originalEvent.pageX) || e.originalEvent.clientX) - $headerCell.offset().left;\r\n\r\n if (rtl) {\r\n if (!firstCol && getElementWidth($headerCell[0], true, true, true) - mouseX <= o.resizeAreaWidth / 2) {\r\n return previousElementSibling['columnName'];\r\n } else if (mouseX <= o.resizeAreaWidth / 2) {\r\n return headerCell['columnName'];\r\n }\r\n } else {\r\n if (!firstCol && mouseX <= o.resizeAreaWidth / 2) {\r\n return previousElementSibling['columnName'];\r\n } else if (getElementWidth($headerCell[0], true, true, true) - mouseX <= o.resizeAreaWidth / 2) {\r\n return headerCell['columnName'];\r\n }\r\n }\r\n\r\n return null;\r\n};\r\n\r\n/**\r\n * @param {jQuery_Event} event\r\n */\r\nDGTable.prototype._onTouchStartColumnHeader = function (event) {\r\n const p = this.p;\r\n\r\n if (p.currentTouchId) return;\r\n\r\n let startTouch = event.originalEvent.changedTouches[0];\r\n p.currentTouchId = startTouch.identifier;\r\n\r\n let $eventTarget = $(event.currentTarget);\r\n\r\n let startPos = { x: startTouch.pageX, y: startTouch.pageY },\r\n currentPos = startPos,\r\n distanceTreshold = 9;\r\n\r\n let tapAndHoldTimeout;\r\n\r\n let unbind = function () {\r\n p.currentTouchId = null;\r\n $eventTarget.off('touchend').off('touchcancel');\r\n clearTimeout(tapAndHoldTimeout);\r\n };\r\n\r\n let fakeEvent = function (name) {\r\n let fakeEvent = $.Event(name);\r\n let extendObjects = Array.prototype.slice.call(arguments, 1);\r\n for (let key of ['target', 'clientX', 'clientY', 'offsetX', 'offsetY', 'screenX', 'screenY', 'pageX', 'pageY', 'which']) {\r\n fakeEvent[key] = event[key];\r\n for (let i = 0; i < extendObjects.length; i++) {\r\n if (extendObjects[i][key] != null) {\r\n fakeEvent[key] = extendObjects[i][key];\r\n }\r\n }\r\n }\r\n return fakeEvent;\r\n };\r\n\r\n $eventTarget.trigger(fakeEvent('mousedown', event.originalEvent.changedTouches[0], { 'which': 1, target: event.target }));\r\n\r\n tapAndHoldTimeout = setTimeout(() => {\r\n unbind();\r\n\r\n $eventTarget\r\n .one('touchend', (event) => {\r\n // Prevent simulated mouse events after touchend\r\n if (!isInputElementEvent(event))\r\n event.preventDefault();\r\n\r\n $eventTarget.off('touchend').off('touchcancel');\r\n })\r\n .one('touchcancel', (_event) => {\r\n $eventTarget.off('touchend').off('touchcancel');\r\n });\r\n\r\n let distanceTravelled = Math.sqrt(Math.pow(Math.abs(currentPos.x - startPos.x), 2) + Math.pow(Math.abs(currentPos.y - startPos.y), 2));\r\n\r\n if (distanceTravelled < distanceTreshold) {\r\n this.cancelColumnResize();\r\n $eventTarget.trigger(fakeEvent('mouseup', event.originalEvent.changedTouches[0], { 'which': 3, target: event.target }));\r\n }\r\n\r\n }, 500);\r\n\r\n $eventTarget\r\n .on('touchend', (event) => {\r\n let touch = find(event.originalEvent.changedTouches, (touch) => touch.identifier === p.currentTouchId);\r\n if (!touch) return;\r\n\r\n unbind();\r\n\r\n // Prevent simulated mouse events after touchend\r\n if (!isInputElementEvent(event))\r\n event.preventDefault();\r\n\r\n currentPos = { x: touch.pageX, y: touch.pageY };\r\n let distanceTravelled = Math.sqrt(Math.pow(Math.abs(currentPos.x - startPos.x), 2) + Math.pow(Math.abs(currentPos.y - startPos.y), 2));\r\n\r\n if (distanceTravelled < distanceTreshold || p.$resizer) {\r\n $eventTarget.trigger(fakeEvent('mouseup', touch, { 'which': 1, target: event.target }));\r\n $eventTarget.trigger(fakeEvent('click', touch, { 'which': 1, target: event.target }));\r\n }\r\n\r\n })\r\n .on('touchcancel', () => {\r\n unbind();\r\n })\r\n .on('touchmove', (event) => {\r\n let touch = find(event.originalEvent.changedTouches, (touch) => touch.identifier === p.currentTouchId);\r\n if (!touch) return;\r\n\r\n // Keep track of current position, so we know if we need to cancel the tap-and-hold\r\n currentPos = { x: touch.pageX, y: touch.pageY };\r\n\r\n if (p.$resizer) {\r\n event.preventDefault();\r\n\r\n $eventTarget.trigger(fakeEvent('mousemove', touch, { target: event.target }));\r\n }\r\n });\r\n};\r\n\r\n/**\r\n * @param {jQuery_Event} event\r\n */\r\nDGTable.prototype._onMouseDownColumnHeader = function (event) {\r\n if (event.which !== 1) return this; // Only treat left-clicks\r\n\r\n let that = this,\r\n o = that.o,\r\n p = that.p,\r\n col = this._getColumnByResizePosition(event);\r\n\r\n if (col) {\r\n let column = p.columns.get(col);\r\n if (!o.resizableColumns || !column || !column.resizable) {\r\n return false;\r\n }\r\n\r\n let rtl = this._isTableRtl();\r\n\r\n if (p.$resizer) {\r\n $(p.$resizer).remove();\r\n }\r\n p.$resizer = $('<div></div>')\r\n .addClass(o.resizerClassName)\r\n .css({\r\n 'position': 'absolute',\r\n 'display': 'block',\r\n 'z-index': -1,\r\n 'visibility': 'hidden',\r\n 'width': '2px',\r\n 'background': '#000',\r\n 'opacity': 0.7,\r\n })\r\n .appendTo(this.$el);\r\n\r\n let selectedHeaderCell = column.element,\r\n commonAncestor = p.$resizer.parent();\r\n\r\n let posCol = selectedHeaderCell.offset(),\r\n posRelative = commonAncestor.offset();\r\n if (ieVersion === 8) {\r\n posCol = selectedHeaderCell.offset(); // IE8 bug, first time it receives zeros...\r\n }\r\n posRelative.left += parseFloat(commonAncestor.css('border-left-width')) || 0;\r\n posRelative.top += parseFloat(commonAncestor.css('border-top-width')) || 0;\r\n posCol.left -= posRelative.left;\r\n posCol.top -= posRelative.top;\r\n posCol.top -= parseFloat(selectedHeaderCell.css('border-top-width')) || 0;\r\n let resizerWidth = getElementWidth(p.$resizer[0], true, true, true);\r\n if (rtl) {\r\n posCol.left -= Math.ceil((parseFloat(selectedHeaderCell.css('border-left-width')) || 0) / 2);\r\n posCol.left -= Math.ceil(resizerWidth / 2);\r\n } else {\r\n posCol.left += getElementWidth(selectedHeaderCell[0], true, true, true);\r\n posCol.left += Math.ceil((parseFloat(selectedHeaderCell.css('border-right-width')) || 0) / 2);\r\n posCol.left -= Math.ceil(resizerWidth / 2);\r\n }\r\n\r\n p.$resizer\r\n .css({\r\n 'z-index': '10',\r\n 'visibility': 'visible',\r\n 'left': posCol.left,\r\n 'top': posCol.top,\r\n 'height': getElementHeight(this.$el[0]),\r\n })[0]['columnName'] = selectedHeaderCell[0]['columnName'];\r\n\r\n try { p.$resizer[0].style.zIndex = ''; }\r\n catch (ignored) { /* we're ok with this */ }\r\n\r\n $(document).on('mousemove.dgtable', p.onMouseMoveResizeAreaBound);\r\n $(document).on('mouseup.dgtable', p.onEndDragColumnHeaderBound);\r\n\r\n event.preventDefault();\r\n }\r\n};\r\n\r\n/**\r\n * @param {jQuery_Event} event event\r\n */\r\nDGTable.prototype._onMouseMoveColumnHeader = function (event) {\r\n\r\n let that = this,\r\n o = that.o,\r\n p = that.p;\r\n\r\n if (o.resizableColumns) {\r\n let col = this._getColumnByResizePosition(event);\r\n let headerCell = $(event.target).closest('div.' + o.tableClassName + '-header-cell,div.' + o.cellPreviewClassName)[0];\r\n if (!col || !p.columns.get(col).resizable) {\r\n headerCell.style.cursor = '';\r\n } else {\r\n headerCell.style.cursor = 'e-resize';\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * @param {jQuery_Event} event\r\n */\r\nDGTable.prototype._onMouseUpColumnHeader = function (event) {\r\n if (event.which === 3) {\r\n let o = this.o;\r\n let $headerCell = $(event.target).closest('div.' + o.tableClassName + '-header-cell,div.' + o.cellPreviewClassName);\r\n let bounds = $headerCell.offset();\r\n bounds['width'] = getElementWidth($headerCell[0], true, true, true);\r\n bounds['height'] = getElementHeight($headerCell[0], true, true, true);\r\n this.trigger('headercontextmenu', $headerCell[0]['columnName'], event.pageX, event.pageY, bounds);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {jQuery_Event} event event\r\n */\r\nDGTable.prototype._onMouseLeaveColumnHeader = function (event) {\r\n let o = this.o;\r\n let headerCell = $(event.target).closest('div.' + o.tableClassName + '-header-cell,div.' + o.cellPreviewClassName)[0];\r\n headerCell.style.cursor = '';\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {jQuery_Event} event event\r\n */\r\nDGTable.prototype._onClickColumnHeader = function (event) {\r\n if (isInputElementEvent(event))\r\n return;\r\n\r\n if (!this._getColumnByResizePosition(event)) {\r\n\r\n let that = this,\r\n o = that.o,\r\n p = that.p;\r\n\r\n let headerCell = $(event.target).closest('div.' + o.tableClassName + '-header-cell,div.' + o.cellPreviewClassName)[0];\r\n if (o.sortableColumns) {\r\n let column = p.columns.get(headerCell['columnName']);\r\n if (column && column.sortable) {\r\n this.sort(headerCell['columnName'], undefined, true).render();\r\n }\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {jQuery_Event} event event\r\n */\r\nDGTable.prototype._onStartDragColumnHeader = function (event) {\r\n\r\n let that = this,\r\n o = that.o,\r\n p = that.p;\r\n\r\n if (o.movableColumns) {\r\n\r\n let $headerCell = $(event.target).closest('div.' + o.tableClassName + '-header-cell,div.' + o.cellPreviewClassName);\r\n let column = p.columns.get($headerCell[0]['columnName']);\r\n if (column && column.movable) {\r\n $headerCell[0].style.opacity = 0.35;\r\n p.dragId = Math.random() * 0x9999999; // Recognize this ID on drop\r\n event.originalEvent.dataTransfer.setData('text', JSON.stringify({ dragId: p.dragId, column: column.name }));\r\n } else {\r\n event.preventDefault();\r\n }\r\n\r\n } else {\r\n\r\n event.preventDefault();\r\n\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {MouseEvent} event event\r\n */\r\nDGTable.prototype._onMouseMoveResizeArea = function (event) {\r\n\r\n let that = this,\r\n p = that.p;\r\n\r\n let column = p.columns.get(p.$resizer[0]['columnName']);\r\n let rtl = this._isTableRtl();\r\n\r\n let selectedHeaderCell = column.element,\r\n commonAncestor = p.$resizer.parent();\r\n let posCol = selectedHeaderCell.offset(), posRelative = commonAncestor.offset();\r\n posRelative.left += parseFloat(commonAncestor.css('border-left-width')) || 0;\r\n posCol.left -= posRelative.left;\r\n let resizerWidth = getElementWidth(p.$resizer[0], true, true, true);\r\n\r\n let isBoxing = selectedHeaderCell.css('box-sizing') === 'border-box';\r\n\r\n let actualX = event.pageX - posRelative.left;\r\n let minX = posCol.left;\r\n\r\n minX -= Math.ceil(resizerWidth / 2);\r\n\r\n if (rtl) {\r\n minX += getElementWidth(selectedHeaderCell[0], true, true, true);\r\n minX -= column.ignoreMin ? 0 : this.o.minColumnWidth;\r\n\r\n if (!isBoxing) {\r\n minX -= Math.ceil((parseFloat(selectedHeaderCell.css('border-left-width')) || 0) / 2);\r\n minX -= this._horizontalPadding(selectedHeaderCell[0]);\r\n }\r\n\r\n if (actualX > minX) {\r\n actualX = minX;\r\n }\r\n } else {\r\n minX += column.ignoreMin ? 0 : this.o.minColumnWidth;\r\n\r\n if (!isBoxing) {\r\n minX += Math.ceil((parseFloat(selectedHeaderCell.css('border-right-width')) || 0) / 2);\r\n minX += this._horizontalPadding(selectedHeaderCell[0]);\r\n }\r\n\r\n if (actualX < minX) {\r\n actualX = minX;\r\n }\r\n }\r\n\r\n p.$resizer.css('left', actualX + 'px');\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {Event} event event\r\n */\r\nDGTable.prototype._onEndDragColumnHeader = function (event) {\r\n\r\n let that = this,\r\n o = that.o,\r\n p = that.p;\r\n\r\n if (!p.$resizer) {\r\n event.target.style.opacity = null;\r\n } else {\r\n $(document).off('mousemove.dgtable', p.onMouseMoveResizeAreaBound)\r\n .off('mouseup.dgtable', p.onEndDragColumnHeaderBound);\r\n\r\n let column = p.columns.get(p.$resizer[0]['columnName']);\r\n let rtl = this._isTableRtl();\r\n\r\n let selectedHeaderCell = column.element,\r\n commonAncestor = p.$resizer.parent();\r\n let posCol = selectedHeaderCell.offset(), posRelative = commonAncestor.offset();\r\n posRelative.left += parseFloat(commonAncestor.css('border-left-width')) || 0;\r\n posCol.left -= posRelative.left;\r\n let resizerWidth = getElementWidth(p.$resizer[0], true, true, true);\r\n\r\n let isBoxing = selectedHeaderCell.css('box-sizing') === 'border-box';\r\n\r\n let actualX = event.pageX - posRelative.left;\r\n let baseX = posCol.left, minX = posCol.left;\r\n let width = 0;\r\n\r\n baseX -= Math.ceil(resizerWidth / 2);\r\n\r\n if (rtl) {\r\n\r\n if (!isBoxing) {\r\n actualX += this._horizontalPadding(selectedHeaderCell[0]);\r\n actualX += parseFloat(selectedHeaderCell.css('border-left-width')) || 0;\r\n actualX += parseFloat(selectedHeaderCell.css('border-right-width')) || 0;\r\n }\r\n\r\n baseX += getElementWidth(selectedHeaderCell[0], true, true, true);\r\n\r\n minX = baseX - (column.ignoreMin ? 0 : this.o.minColumnWidth);\r\n if (actualX > minX) {\r\n actualX = minX;\r\n }\r\n\r\n width = baseX - actualX;\r\n } else {\r\n\r\n if (!isBoxing) {\r\n actualX -= this._horizontalPadding(selectedHeaderCell[0]);\r\n actualX -= parseFloat(selectedHeaderCell.css('border-left-width')) || 0;\r\n actualX -= parseFloat(selectedHeaderCell.css('border-right-width')) || 0;\r\n }\r\n\r\n minX = baseX + (column.ignoreMin ? 0 : this.o.minColumnWidth);\r\n if (actualX < minX) {\r\n actualX = minX;\r\n }\r\n\r\n width = actualX - baseX;\r\n }\r\n\r\n p.$resizer.remove();\r\n p.$resizer = null;\r\n\r\n let sizeToSet = width;\r\n\r\n if (column.widthMode === ColumnWidthMode.RELATIVE) {\r\n let sizeLeft = this._calculateWidthAvailableForColumns();\r\n //sizeLeft -= p.table.offsetWidth - p.table.clientWidth;\r\n\r\n let totalRelativePercentage = 0;\r\n let relatives = 0;\r\n\r\n for (let i = 0; i < p.visibleColumns.length; i++) {\r\n let col = p.visibleColumns[i];\r\n if (col.name === column.name) continue;\r\n\r\n if (col.widthMode === ColumnWidthMode.RELATIVE) {\r\n totalRelativePercentage += col.width;\r\n relatives++;\r\n } else {\r\n sizeLeft -= col.actualWidth;\r\n }\r\n }\r\n\r\n sizeLeft = Math.max(1, sizeLeft);\r\n sizeToSet = width / sizeLeft;\r\n\r\n if (relatives > 0) {\r\n // When there's more than one relative overall,\r\n // we can do relative enlarging/shrinking.\r\n // Otherwise, we can end up having a 0 width.\r\n\r\n let unNormalizedSizeToSet = sizeToSet / ((1 - sizeToSet) / totalRelativePercentage);\r\n\r\n totalRelativePercentage += sizeToSet;\r\n\r\n // Account for relative widths scaling later\r\n if ((totalRelativePercentage < 1 && o.relativeWidthGrowsToFillWidth) ||\r\n (totalRelativePercentage > 1 && o.relativeWidthShrinksToFillWidth)) {\r\n sizeToSet = unNormalizedSizeToSet;\r\n }\r\n }\r\n\r\n sizeToSet *= 100;\r\n sizeToSet += '%';\r\n }\r\n\r\n this.setColumnWidth(column.name, sizeToSet);\r\n }\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {jQuery_Event} event event\r\n */\r\nDGTable.prototype._onDragEnterColumnHeader = function (event) {\r\n let that = this,\r\n o = that.o,\r\n p = that.p;\r\n\r\n if (o.movableColumns) {\r\n let dataTransferred = event.originalEvent.dataTransfer.getData('text');\r\n if (dataTransferred) {\r\n dataTransferred = JSON.parse(dataTransferred);\r\n }\r\n else {\r\n dataTransferred = null; // WebKit does not provide the dataTransfer on dragenter?..\r\n }\r\n\r\n let $headerCell = $(event.target).closest('div.' + o.tableClassName + '-header-cell,div.' + o.cellPreviewClassName);\r\n if (!dataTransferred ||\r\n (p.dragId === dataTransferred.dragId && $headerCell['columnName'] !== dataTransferred.column)) {\r\n\r\n let column = p.columns.get($headerCell[0]['columnName']);\r\n if (column && (column.movable || column !== p.visibleColumns[0])) {\r\n $($headerCell).addClass('drag-over');\r\n }\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {jQuery_Event} event event\r\n */\r\nDGTable.prototype._onDragOverColumnHeader = function (event) {\r\n event.preventDefault();\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {jQuery_Event} event event\r\n */\r\nDGTable.prototype._onDragLeaveColumnHeader = function (event) {\r\n let o = this.o;\r\n let $headerCell = $(event.target).closest('div.' + o.tableClassName + '-header-cell,div.' + o.cellPreviewClassName);\r\n if ( !$($headerCell[0].firstChild)\r\n .has(event.originalEvent.relatedTarget).length ) {\r\n $headerCell.removeClass('drag-over');\r\n }\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {jQuery_Event} event event\r\n */\r\nDGTable.prototype._onDropColumnHeader = function (event) {\r\n event.preventDefault();\r\n\r\n let that = this,\r\n o = that.o,\r\n p = that.p;\r\n\r\n let dataTransferred = JSON.parse(event.originalEvent.dataTransfer.getData('text'));\r\n let $headerCell = $(event.target).closest('div.' + o.tableClassName + '-header-cell,div.' + o.cellPreviewClassName);\r\n if (o.movableColumns && dataTransferred.dragId === p.dragId) {\r\n let srcColName = dataTransferred.column,\r\n destColName = $headerCell[0]['columnName'],\r\n srcCol = p.columns.get(srcColName),\r\n destCol = p.columns.get(destColName);\r\n if (srcCol && destCol && srcCol.movable && (destCol.movable || destCol !== p.visibleColumns[0])) {\r\n this.moveColumn(srcColName, destColName);\r\n }\r\n }\r\n $($headerCell).removeClass('drag-over');\r\n};\r\n\r\n/**\r\n * @private\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype._clearSortArrows = function () {\r\n\r\n let that = this,\r\n p = that.p;\r\n\r\n if (p.$table) {\r\n let tableClassName = this.o.tableClassName;\r\n let sortedColumns = p.$headerRow.find('>div.' + tableClassName + '-header-cell.sorted');\r\n let arrows = sortedColumns.find('>div>.sort-arrow');\r\n for (let arrow of arrows) {\r\n let col = p.columns.get(arrow.parentNode.parentNode['columnName']);\r\n if (col) {\r\n col.arrowProposedWidth = 0;\r\n }\r\n }\r\n arrows.remove();\r\n sortedColumns.removeClass('sorted').removeClass('desc');\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {String} column the name of the sort column\r\n * @param {Boolean} descending table is sorted descending\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype._showSortArrow = function (column, descending) {\r\n\r\n let that = this,\r\n p = that.p;\r\n\r\n let col = p.columns.get(column);\r\n if (!col) return false;\r\n\r\n let arrow = createElement('span');\r\n arrow.className = 'sort-arrow';\r\n\r\n if (col.element) {\r\n col.element.addClass(descending ? 'sorted desc' : 'sorted');\r\n col.element[0].firstChild.insertBefore(arrow, col.element[0].firstChild.firstChild);\r\n }\r\n\r\n if (col.widthMode !== ColumnWidthMode.RELATIVE && this.o.adjustColumnWidthForSortArrow) {\r\n col.arrowProposedWidth = arrow.scrollWidth + (parseFloat($(arrow).css('margin-right')) || 0) + (parseFloat($(arrow).css('margin-left')) || 0);\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {Number} cellIndex index of the column in the DOM\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype._resizeColumnElements = function (cellIndex) {\r\n\r\n let that = this,\r\n p = that.p;\r\n\r\n let headerCells = p.$headerRow.find('div.' + this.o.tableClassName + '-header-cell');\r\n let col = p.columns.get(headerCells[cellIndex]['columnName']);\r\n\r\n if (col) {\r\n headerCells[cellIndex].style.width = (col.actualWidthConsideringScrollbarWidth || col.actualWidth) + 'px';\r\n\r\n let width = (col.actualWidthConsideringScrollbarWidth || col.actualWidth) + 'px';\r\n let tbodyChildren = p.$tbody[0].childNodes;\r\n for (let i = 0, count = tbodyChildren.length; i < count; i++) {\r\n let headerRow = tbodyChildren[i];\r\n if (headerRow.nodeType !== 1) continue;\r\n headerRow.childNodes[cellIndex].style.width = width;\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * @returns {DGTable} self\r\n * */\r\nDGTable.prototype._destroyHeaderCells = function() {\r\n\r\n let that = this,\r\n o = that.o,\r\n p = that.p;\r\n\r\n if (p.$headerRow) {\r\n this.trigger('headerrowdestroy', p.headerRow);\r\n p.$headerRow.find('div.' + o.tableClassName + '-header-cell').remove();\r\n p.$headerRow = null;\r\n p.headerRow = null;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * @private\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype._renderSkeletonBase = function () {\r\n let that = this,\r\n p = that.p,\r\n o = that.o;\r\n\r\n // Clean up old elements\r\n\r\n if (p.$table && o.virtualTable) {\r\n p.$table.remove();\r\n if (p.$tbody) {\r\n let rows = p.$tbody[0].childNodes;\r\n for (let i = 0, len = rows.length; i < len; i++) {\r\n that.trigger('rowdestroy', rows[i]);\r\n that._unbindCellEventsForRow(rows[i]);\r\n }\r\n }\r\n p.$table = p.table = p.$tbody = p.tbody = null;\r\n }\r\n\r\n that._destroyHeaderCells();\r\n p.currentTouchId = null;\r\n if (p.$header) {\r\n p.$header.remove();\r\n }\r\n\r\n // Create new base elements\r\n let tableClassName = o.tableClassName,\r\n headerCellClassName = tableClassName + '-header-cell',\r\n header = createElement('div'),\r\n $header = $(header),\r\n headerRow = createElement('div'),\r\n $headerRow = $(headerRow);\r\n\r\n header.className = tableClassName + '-header';\r\n headerRow.className = tableClassName + '-header-row';\r\n\r\n p.$header = $header;\r\n p.header = header;\r\n p.$headerRow = $headerRow;\r\n p.headerRow = headerRow;\r\n $headerRow.appendTo(p.$header);\r\n $header.prependTo(this.$el);\r\n\r\n relativizeElement(that.$el);\r\n\r\n if (o.width === DGTable.Width.SCROLL) {\r\n this.el.style.overflow = 'hidden';\r\n } else {\r\n this.el.style.overflow = '';\r\n }\r\n\r\n if (!o.height && o.virtualTable) {\r\n o.height = getElementHeight(this.$el[0], true);\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * @private\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype._renderSkeletonHeaderCells = function () {\r\n let that = this,\r\n p = that.p,\r\n o = that.o;\r\n\r\n let allowCellPreview = o.allowCellPreview,\r\n allowHeaderCellPreview = o.allowHeaderCellPreview;\r\n\r\n let tableClassName = o.tableClassName,\r\n headerCellClassName = tableClassName + '-header-cell',\r\n headerRow = p.headerRow;\r\n\r\n let ieDragDropHandler;\r\n if (hasIeDragAndDropBug) {\r\n ieDragDropHandler = function(evt) {\r\n evt.preventDefault();\r\n this.dragDrop();\r\n return false;\r\n };\r\n }\r\n\r\n let preventDefault = function (event) { event.preventDefault(); };\r\n\r\n // Create header cells\r\n for (let i = 0; i < p.visibleColumns.length; i++) {\r\n let column = p.visibleColumns[i];\r\n if (column.visible) {\r\n let cell = createElement('div');\r\n let $cell = $(cell);\r\n cell.draggable = true;\r\n cell.className = headerCellClassName;\r\n cell.style.width = column.actualWidth + 'px';\r\n if (o.sortableColumns && column.sortable) {\r\n cell.className += ' sortable';\r\n }\r\n cell['columnName'] = column.name;\r\n cell.setAttribute('data-column', column.name);\r\n\r\n let cellInside = createElement('div');\r\n cellInside.innerHTML = o.headerCellFormatter(column.label, column.name);\r\n cell.appendChild(cellInside);\r\n if (allowCellPreview && allowHeaderCellPreview) {\r\n p._bindCellHoverIn(cell);\r\n }\r\n headerRow.appendChild(cell);\r\n\r\n p.visibleColumns[i].element = $cell;\r\n\r\n $cell.on('mousedown.dgtable', that._onMouseDownColumnHeader.bind(that))\r\n .on('mousemove.dgtable', that._onMouseMoveColumnHeader.bind(that))\r\n .on('mouseup.dgtable', that._onMouseUpColumnHeader.bind(that))\r\n .on('mouseleave.dgtable', that._onMouseLeaveColumnHeader.bind(that))\r\n .on('touchstart.dgtable', that._onTouchStartColumnHeader.bind(that))\r\n .on('dragstart.dgtable', that._onStartDragColumnHeader.bind(that))\r\n .on('click.dgtable', that._onClickColumnHeader.bind(that))\r\n .on('contextmenu.dgtable', preventDefault);\r\n $(cellInside)\r\n .on('dragenter.dgtable', that._onDragEnterColumnHeader.bind(that))\r\n .on('dragover.dgtable', that._onDragOverColumnHeader.bind(that))\r\n .on('dragleave.dgtable', that._onDragLeaveColumnHeader.bind(that))\r\n .on('drop.dgtable', that._onDropColumnHeader.bind(that));\r\n\r\n if (hasIeDragAndDropBug) {\r\n $cell.on('selectstart.dgtable', ieDragDropHandler.bind(cell));\r\n }\r\n\r\n // Disable these to allow our own context menu events without interruption\r\n $cell.css({ '-webkit-touch-callout': 'none', '-webkit-user-select': 'none', '-moz-user-select': 'none', '-ms-user-select': 'none', '-o-user-select': 'none', 'user-select': 'none' });\r\n }\r\n }\r\n\r\n this.trigger('headerrowcreate', headerRow);\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * @private\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype._renderSkeletonBody = function () {\r\n let that = this,\r\n p = that.p,\r\n o = that.o;\r\n\r\n let tableClassName = o.tableClassName;\r\n\r\n // Calculate virtual row heights\r\n if (o.virtualTable && !p.virtualRowHeight) {\r\n let createDummyRow = function() {\r\n let row = createElement('div'),\r\n cell = row.appendChild(createElement('div')),\r\n cellInner = cell.appendChild(createElement('div'));\r\n row.className = tableClassName + '-row';\r\n cell.className = tableClassName + '-cell';\r\n cellInner.innerHTML = '0';\r\n row.style.visibility = 'hidden';\r\n row.style.position = 'absolute';\r\n return row;\r\n };\r\n\r\n let $dummyTbody, $dummyWrapper = $('<div>')\r\n .addClass(that.el.className)\r\n .css({ 'z-index': -1, 'position': 'absolute', left: '0', top: '-9999px', width: '1px', overflow: 'hidden' })\r\n .append(\r\n $('<div>').addClass(tableClassName).append(\r\n $dummyTbody = $('<div>').addClass(tableClassName + '-body').css('width', 99999),\r\n ),\r\n );\r\n\r\n $dummyWrapper.appendTo(document.body);\r\n\r\n let row1 = createDummyRow(), row2 = createDummyRow(), row3 = createDummyRow();\r\n $dummyTbody.append(row1, row2, row3);\r\n\r\n p.virtualRowHeightFirst = getElementHeight(row1, true, true, true);\r\n p.virtualRowHeight = getElementHeight(row2, true, true, true);\r\n p.virtualRowHeightLast = getElementHeight(row3, true, true, true);\r\n\r\n p.virtualRowHeightMin = Math.min(Math.min(p.virtualRowHeightFirst, p.virtualRowHeight), p.virtualRowHeightLast);\r\n p.virtualRowHeightMax = Math.max(Math.max(p.virtualRowHeightFirst, p.virtualRowHeight), p.virtualRowHeightLast);\r\n\r\n $dummyWrapper.remove();\r\n }\r\n\r\n // Create inner table and tbody\r\n if (!p.$table) {\r\n\r\n let fragment = document.createDocumentFragment();\r\n\r\n // Create the inner table element\r\n let table = createElement('div');\r\n let $table = $(table);\r\n table.className = tableClassName;\r\n\r\n if (o.virtualTable) {\r\n table.className += ' virtual';\r\n }\r\n\r\n let tableHeight = (o.height - getElementHeight(p.$headerRow[0], true, true, true));\r\n if ($table.css('box-sizing') !== 'border-box') {\r\n tableHeight -= parseFloat($table.css('border-top-width')) || 0;\r\n tableHeight -= parseFloat($table.css('border-bottom-width')) || 0;\r\n tableHeight -= parseFloat($table.css('padding-top')) || 0;\r\n tableHeight -= parseFloat($table.css('padding-bottom')) || 0;\r\n }\r\n p.visibleHeight = tableHeight;\r\n table.style.height = o.height ? tableHeight + 'px' : 'auto';\r\n table.style.display = 'block';\r\n table.style.overflowY = 'auto';\r\n table.style.overflowX = o.width === DGTable.Width.SCROLL ? 'auto' : 'hidden';\r\n fragment.appendChild(table);\r\n\r\n // Create the \"tbody\" element\r\n let tbody = createElement('div');\r\n let $tbody = $(tbody);\r\n tbody.className = o.tableClassName + '-body';\r\n p.table = table;\r\n p.tbody = tbody;\r\n p.$table = $table;\r\n p.$tbody = $tbody;\r\n\r\n if (o.virtualTable) {\r\n p.virtualVisibleRows = Math.ceil(p.visibleHeight / p.virtualRowHeightMin);\r\n }\r\n\r\n that._calculateVirtualHeight();\r\n\r\n relativizeElement($tbody);\r\n relativizeElement($table);\r\n\r\n table.appendChild(tbody);\r\n that.el.appendChild(fragment);\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * @private\r\n * @returns {DGTable} self\r\n * @deprecated\r\n */\r\nDGTable.prototype._renderSkeleton = function () {\r\n return this;\r\n};\r\n\r\n/**\r\n * @private\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype._updateLastCellWidthFromScrollbar = function(force) {\r\n\r\n const p = this.p;\r\n\r\n // Calculate scrollbar's width and reduce from lat column's width\r\n let scrollbarWidth = p.table.offsetWidth - p.table.clientWidth;\r\n if (scrollbarWidth !== p.scrollbarWidth || force) {\r\n p.scrollbarWidth = scrollbarWidth;\r\n for (let i = 0; i < p.columns.length; i++) {\r\n p.columns[i].actualWidthConsideringScrollbarWidth = null;\r\n }\r\n\r\n if (p.scrollbarWidth > 0 && p.visibleColumns.length > 0) {\r\n // (There should always be at least 1 column visible, but just in case)\r\n let lastColIndex = p.visibleColumns.length - 1;\r\n\r\n p.visibleColumns[lastColIndex].actualWidthConsideringScrollbarWidth = p.visibleColumns[lastColIndex].actualWidth - p.scrollbarWidth;\r\n let lastColWidth = p.visibleColumns[lastColIndex].actualWidthConsideringScrollbarWidth + 'px';\r\n let tbodyChildren = p.tbody.childNodes;\r\n for (let i = 0, count = tbodyChildren.length; i < count; i++) {\r\n let row = tbodyChildren[i];\r\n if (row.nodeType !== 1) continue;\r\n row.childNodes[lastColIndex].style.width = lastColWidth;\r\n }\r\n\r\n p.headerRow.childNodes[lastColIndex].style.width = lastColWidth;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Explicitly set the width of the table based on the sum of the column widths\r\n * @private\r\n * @param {boolean} parentSizeMayHaveChanged Parent size may have changed, treat rendering accordingly\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype._updateTableWidth = function (parentSizeMayHaveChanged) {\r\n const o = this.o, p = this.p;\r\n let width = this._calculateTbodyWidth();\r\n\r\n p.tbody.style.minWidth = width + 'px';\r\n p.headerRow.style.minWidth = (width + (p.scrollbarWidth || 0)) + 'px';\r\n\r\n p.$table.off('scroll', p.onTableScrolledHorizontallyBound);\r\n\r\n if (o.width === DGTable.Width.AUTO) {\r\n // Update wrapper element's size to fully contain the table body\r\n\r\n setElementWidth(p.$table[0], getElementWidth(p.$tbody[0], true, true, true));\r\n setElementWidth(this.$el[0], getElementWidth(p.$table[0], true, true, true));\r\n\r\n } else if (o.width === DGTable.Width.SCROLL) {\r\n\r\n if (parentSizeMayHaveChanged) {\r\n let lastScrollTop = p.table ? p.table.scrollTop : 0,\r\n lastScrollLeft = p.table ? p.table.scrollLeft : 0;\r\n\r\n // BUGFIX: Relayout before recording the widths\r\n webkitRenderBugfix(this.el);\r\n\r\n p.table.scrollTop = lastScrollTop;\r\n p.table.scrollLeft = lastScrollLeft;\r\n p.header.scrollLeft = lastScrollLeft;\r\n }\r\n\r\n p.$table.on('scroll', p.onTableScrolledHorizontallyBound);\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * @private\r\n * @returns {Boolean}\r\n */\r\nDGTable.prototype._isTableRtl = function() {\r\n return this.p.$table.css('direction') === 'rtl';\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {Object} column column object\r\n * @returns {String}\r\n */\r\nDGTable.prototype._serializeColumnWidth = function(column) {\r\n return column.widthMode === ColumnWidthMode.AUTO ? 'auto' :\r\n column.widthMode === ColumnWidthMode.RELATIVE ? column.width * 100 + '%' :\r\n column.width;\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {HTMLElement} el\r\n */\r\nDGTable.prototype._cellMouseOverEvent = function(el) {\r\n const o = this.o, p = this.p;\r\n\r\n let elInner = el.firstChild;\r\n\r\n if ((elInner.scrollWidth - elInner.clientWidth > 1) ||\r\n (elInner.scrollHeight - elInner.clientHeight > 1)) {\r\n\r\n this.hideCellPreview();\r\n p.abortCellPreview = false;\r\n\r\n let $el = $(el), $elInner = $(elInner);\r\n let previewCell = createElement('div'), $previewCell = $(previewCell);\r\n previewCell.innerHTML = el.innerHTML;\r\n previewCell.className = o.cellPreviewClassName;\r\n\r\n let isHeaderCell = $el.hasClass(o.tableClassName + '-header-cell');\r\n if (isHeaderCell) {\r\n previewCell.className += ' header';\r\n if ($el.hasClass('sortable')) {\r\n previewCell.className += ' sortable';\r\n }\r\n\r\n previewCell.draggable = true;\r\n\r\n $(previewCell).on('mousedown', this._onMouseDownColumnHeader.bind(this))\r\n .on('mousemove', this._onMouseMoveColumnHeader.bind(this))\r\n .on('mouseup', this._onMouseUpColumnHeader.bind(this))\r\n .on('mouseleave', this._onMouseLeaveColumnHeader.bind(this))\r\n .on('touchstart', this._onTouchStartColumnHeader.bind(this))\r\n .on('dragstart', this._onStartDragColumnHeader.bind(this))\r\n .on('click', this._onClickColumnHeader.bind(this))\r\n .on('contextmenu.dgtable', function (event) { event.preventDefault(); });\r\n $(previewCell.firstChild)\r\n .on('dragenter', this._onDragEnterColumnHeader.bind(this))\r\n .on('dragover', this._onDragOverColumnHeader.bind(this))\r\n .on('dragleave', this._onDragLeaveColumnHeader.bind(this))\r\n .on('drop', this._onDropColumnHeader.bind(this));\r\n\r\n if (hasIeDragAndDropBug) {\r\n $(previewCell).on('selectstart', (function(evt) {\r\n evt.preventDefault();\r\n this.dragDrop();\r\n return false;\r\n }).bind(previewCell));\r\n }\r\n }\r\n\r\n let paddingL = parseFloat($el.css('padding-left')) || 0,\r\n paddingR = parseFloat($el.css('padding-right')) || 0,\r\n paddingT = parseFloat($el.css('padding-top')) || 0,\r\n paddingB = parseFloat($el.css('padding-bottom')) || 0;\r\n\r\n let requiredWidth = elInner.scrollWidth + (el.clientWidth - elInner.offsetWidth);\r\n\r\n let borderBox = $el.css('box-sizing') === 'border-box';\r\n if (borderBox) {\r\n $previewCell.css('box-sizing', 'border-box');\r\n } else {\r\n requiredWidth -= paddingL + paddingR;\r\n $previewCell.css('margin-top', parseFloat($(el).css('border-top-width')) || 0);\r\n }\r\n\r\n if (!p.transparentBgColor1) {\r\n // Detect browser's transparent spec\r\n let tempDiv = document.createElement('div');\r\n tempDiv.style.backgroundColor = 'transparent';\r\n p.transparentBgColor1 = $(tempDiv).css('background-color');\r\n tempDiv.style.backgroundColor = 'rgba(0,0,0,0)';\r\n p.transparentBgColor2 = $(tempDiv).css('background-color');\r\n }\r\n\r\n let css = {\r\n 'box-sizing': borderBox ? 'border-box' : 'content-box',\r\n 'width': requiredWidth,\r\n 'min-height': getElementHeight($el[0]),\r\n 'padding-left': paddingL,\r\n 'padding-right': paddingR,\r\n 'padding-top': paddingT,\r\n 'padding-bottom': paddingB,\r\n 'overflow': 'hidden',\r\n 'position': 'absolute',\r\n 'z-index': '-1',\r\n 'left': '0',\r\n 'top': '0',\r\n 'cursor': 'default',\r\n };\r\n\r\n if (css) {\r\n let bgColor = $(el).css('background-color');\r\n if (bgColor === p.transparentBgColor1 || bgColor === p.transparentBgColor2) {\r\n bgColor = $(el.parentNode).css('background-color');\r\n }\r\n if (bgColor === p.transparentBgColor1 || bgColor === p.transparentBgColor2) {\r\n bgColor = '#fff';\r\n }\r\n css['background-color'] = bgColor;\r\n }\r\n\r\n $previewCell.css(css);\r\n\r\n this.el.appendChild(previewCell);\r\n\r\n $(previewCell.firstChild).css({\r\n 'direction': $elInner.css('direction'),\r\n 'white-space': $elInner.css('white-space'),\r\n });\r\n\r\n if (isHeaderCell) {\r\n // Disable these to allow our own context menu events without interruption\r\n $previewCell.css({\r\n '-webkit-touch-callout': 'none',\r\n '-webkit-user-select': 'none',\r\n '-moz-user-select': 'none',\r\n '-ms-user-select': 'none',\r\n '-o-user-select': 'none',\r\n 'user-select': 'none',\r\n });\r\n }\r\n\r\n previewCell['rowIndex'] = el.parentNode['rowIndex'];\r\n let physicalRowIndex = previewCell['physicalRowIndex'] = el.parentNode['physicalRowIndex'];\r\n previewCell['columnName'] = p.visibleColumns[nativeIndexOf.call(el.parentNode.childNodes, el)].name;\r\n\r\n try {\r\n let selection = SelectionHelper.saveSelection(el);\r\n if (selection)\r\n SelectionHelper.restoreSelection(previewCell, selection);\r\n } catch (ignored) { /* we're ok with this */ }\r\n\r\n this.trigger(\r\n 'cellpreview',\r\n previewCell.firstChild,\r\n physicalRowIndex == null ? null : physicalRowIndex,\r\n previewCell['columnName'],\r\n physicalRowIndex == null ? null : p.rows[physicalRowIndex],\r\n el,\r\n );\r\n\r\n if (p.abortCellPreview) {\r\n $previewCell.remove();\r\n return;\r\n }\r\n\r\n let $parent = this.$el;\r\n let $scrollParent = $parent[0] === window ? $(document) : $parent;\r\n\r\n let offset = $el.offset();\r\n let parentOffset = $parent.offset();\r\n let rtl = $el.css('float') === 'right';\r\n let prop = rtl ? 'right' : 'left';\r\n\r\n // Handle RTL, go from the other side\r\n if (rtl) {\r\n let windowWidth = $(window).width();\r\n offset.right = windowWidth - (offset.left + getElementWidth($el[0], true, true, true));\r\n parentOffset.right = windowWidth - (parentOffset.left + getElementWidth($parent[0], true, true, true));\r\n }\r\n\r\n // If the parent has borders, then it would offset the offset...\r\n offset.left -= parseFloat($parent.css('border-left-width')) || 0;\r\n offset.right -= parseFloat($parent.css('border-right-width')) || 0;\r\n offset.top -= parseFloat($parent.css('border-top-width')) || 0;\r\n\r\n // Handle border widths of the element being offset\r\n offset[prop] += parseFloat($(el).css('border-' + prop + '-width')) || 0;\r\n offset.top += parseFloat($(el).css('border-top-width')) || parseFloat($(el).css('border-bottom-width')) || 0;\r\n\r\n // Subtract offsets to get offset relative to parent\r\n offset.left -= parentOffset.left;\r\n offset.right -= parentOffset.right;\r\n offset.top -= parentOffset.top;\r\n\r\n // Constrain horizontally\r\n let minHorz = 0,\r\n maxHorz = $parent - getElementWidth($previewCell[0], true, true, true);\r\n offset[prop] = offset[prop] < minHorz ?\r\n minHorz :\r\n (offset[prop] > maxHorz ? maxHorz : offset[prop]);\r\n\r\n // Constrain vertically\r\n let totalHeight = getElementHeight($el[0], true, true, true);\r\n let maxTop = $scrollParent.scrollTop() + getElementHeight($parent[0], true) - totalHeight;\r\n if (offset.top > maxTop) {\r\n offset.top = Math.max(0, maxTop);\r\n }\r\n\r\n // Apply css to preview cell\r\n let previewCss = {\r\n top: offset.top,\r\n 'z-index': 9999,\r\n };\r\n previewCss[prop] = offset[prop];\r\n\r\n $previewCell.css(previewCss);\r\n\r\n previewCell['__cell'] = el;\r\n p.$cellPreviewCell = $previewCell;\r\n el['__previewCell'] = previewCell;\r\n\r\n p._bindCellHoverOut(el);\r\n p._bindCellHoverOut(previewCell);\r\n\r\n // Avoid interfering with wheel scrolling the table\r\n $previewCell.on('wheel', () => {\r\n // Let the table naturally scroll with the wheel\r\n this.hideCellPreview();\r\n });\r\n }\r\n};\r\n\r\n/**\r\n * @private\r\n * @param {HTMLElement} _el\r\n */\r\nDGTable.prototype._cellMouseOutEvent = function(_el) {\r\n this.hideCellPreview();\r\n};\r\n\r\n/**\r\n * Hides the current cell preview,\r\n * or prevents the one that is currently trying to show (in the 'cellpreview' event)\r\n * @public\r\n * @expose\r\n * @returns {DGTable} self\r\n */\r\nDGTable.prototype.hideCellPreview = function() {\r\n const p = this.p;\r\n\r\n if (p.$cellPreviewCell) {\r\n let previewCell = p.$cellPreviewCell[0];\r\n let origCell = previewCell['__cell'];\r\n let selection;\r\n\r\n try {\r\n selection = SelectionHelper.saveSelection(previewCell);\r\n } catch (ignored) { /* we're ok with this */ }\r\n\r\n p.$cellPreviewCell.remove();\r\n p._unbindCellHoverOut(origCell);\r\n p._unbindCellHoverOut(previewCell);\r\n\r\n try {\r\n if (selection)\r\n SelectionHelper.restoreSelection(origCell, selection);\r\n } catch (ignored) { /* we're ok with this */ }\r\n\r\n this.trigger('cellpreviewdestroy', previewCell.firstChild, previewCell['physicalRowIndex'], previewCell['columnName'], origCell);\r\n\r\n origCell['__previewCell'] = null;\r\n previewCell['__cell'] = null;\r\n\r\n p.$cellPreviewCell = null;\r\n p.abortCellPreview = false;\r\n } else {\r\n p.abortCellPreview = true;\r\n }\r\n\r\n return this;\r\n};\r\n\r\n// It's a shame the Google Closure Compiler does not support exposing a nested @param\r\n\r\n/**\r\n * @typedef {Object} SERIALIZED_COLUMN\r\n * @property {Number|null|undefined} [order=0]\r\n * @property {String|null|undefined} [width='auto']\r\n * @property {Boolean|null|undefined} [visible=true]\r\n * */\r\n\r\n/**\r\n * @typedef {Object} SERIALIZED_COLUMN_SORT\r\n * @property {String|null|undefined} [column='']\r\n * @property {Boolean|null|undefined} [descending=false]\r\n * */\r\n\r\n/**\r\n * @enum {ColumnWidthMode|number|undefined}\r\n * @const\r\n * @typedef {ColumnWidthMode}\r\n */\r\nconst ColumnWidthMode = {\r\n /** @const*/ AUTO: 0,\r\n /** @const*/ ABSOLUTE: 1,\r\n /** @const*/ RELATIVE: 2,\r\n};\r\n\r\n/**\r\n * @enum {DGTable.Width|String|undefined}\r\n * @const\r\n * @typedef {DGTable.Width}\r\n */\r\nDGTable.Width = {\r\n /** @const*/ NONE: 'none',\r\n /** @const*/ AUTO: 'auto',\r\n /** @const*/ SCROLL: 'scroll',\r\n};\r\n\r\n/**\r\n * @expose\r\n * @typedef {Object} COLUMN_SORT_OPTIONS\r\n * @property {String|null|undefined} column\r\n * @property {Boolean|null|undefined} [descending=false]\r\n * */\r\n\r\n/**\r\n * @expose\r\n * @typedef {Object} COLUMN_OPTIONS\r\n * @property {String|null|undefined} width\r\n * @property {String|null|undefined} name\r\n * @property {String|null|undefined} label\r\n * @property {String|null|undefined} dataPath - defaults to `name`\r\n * @property {String|null|undefined} comparePath - defaults to `dataPath`\r\n * @property {Number|String|null|undefined} comparePath\r\n * @property {Boolean|null|undefined} [resizable=true]\r\n * @property {Boolean|null|undefined} [movable=true]\r\n * @property {Boolean|null|undefined} [sortable=true]\r\n * @property {Boolean|null|undefined} [visible=true]\r\n * @property {String|null|undefined} [cellClasses]\r\n * @property {Boolean|null|undefined} [ignoreMin=false]\r\n * */\r\n\r\n/**\r\n * @typedef {Object} DGTable.Options\r\n * @property {COLUMN_OPTIONS[]} [columns]\r\n * @property {Number} [height]\r\n * @property {DGTable.Width} [width]\r\n * @property {Boolean|null|undefined} [virtualTable=true]\r\n * @property {Boolean|null|undefined} [resizableColumns=true]\r\n * @property {Boolean|null|undefined} [movableColumns=true]\r\n * @property {Number|null|undefined} [sortableColumns=1]\r\n * @property {Boolean|null|undefined} [adjustColumnWidthForSortArrow=true]\r\n * @property {Boolean|null|undefined} [relativeWidthGrowsToFillWidth=true]\r\n * @property {Boolean|null|undefined} [relativeWidthShrinksToFillWidth=false]\r\n * @property {Boolean|null|undefined} [convertColumnWidthsToRelative=false]\r\n * @property {Boolean|null|undefined} [autoFillTableWidth=false]\r\n * @property {String|null|undefined} [cellClasses]\r\n * @property {String|String[]|COLUMN_SORT_OPTIONS|COLUMN_SORT_OPTIONS[]} [sortColumn]\r\n * @property {Function|null|undefined} [cellFormatter=null]\r\n * @property {Function|null|undefined} [headerCellFormatter=null]\r\n * @property {Number|null|undefined} [rowsBufferSize=10]\r\n * @property {Number|null|undefined} [minColumnWidth=35]\r\n * @property {Number|null|undefined} [resizeAreaWidth=8]\r\n * @property {{function(string,boolean):{function(a:*,b:*):boolean}}} [onComparatorRequired]\r\n * @property {String|null|undefined} [resizerClassName=undefined]\r\n * @property {String|null|undefined} [tableClassName=undefined]\r\n * @property {Boolean|null|undefined} [allowCellPreview=true]\r\n * @property {Boolean|null|undefined} [allowHeaderCellPreview=true]\r\n * @property {String|null|undefined} [cellPreviewClassName=undefined]\r\n * @property {Boolean|null|undefined} [cellPreviewAutoBackground=true]\r\n * @property {Element|null|undefined} [el=undefined]\r\n * @property {String|null|undefined} [className=undefined]\r\n * @property {Function|null|undefined} [filter=undefined]\r\n * */\r\n\r\n/**\r\n * @typedef {{\r\n * currentTarget: Element,\r\n * data: Object.<string, *>,\r\n * delegateTarget: Element,\r\n * isDefaultPrevented: Boolean,\r\n * isImmediatePropagationStopped: Boolean,\r\n * isPropagationStopped: Boolean,\r\n * namespace: string,\r\n * originalEvent: MouseEvent|TouchEvent|Event,\r\n * pageX: Number,\r\n * pageY: Number,\r\n * preventDefault: Function,\r\n * props: Object.<string, *>,\r\n * relatedTarget: Element,\r\n * result: *,\r\n * stopImmediatePropagation: Function,\r\n * stopPropagation: Function,\r\n * target: Element,\r\n * timeStamp: Number,\r\n * type: string,\r\n * which: Number\r\n * }} jQuery_Event\r\n * */\r\n\r\nif (!$.controls) {\r\n $.controls = {};\r\n}\r\n\r\n$.controls.dgtable = DGTable;\r\n\r\nexport default DGTable;\r\n"],"names":["check","it","Math","global","globalThis","window","self","this","Function","fails","exec","error","descriptors","require$$0","Object","defineProperty","get","call","prototype","functionCall","bind","apply","arguments","$propertyIsEnumerable","propertyIsEnumerable","getOwnPropertyDescriptor","NASHORN_BUG","1","V","descriptor","enumerable","match","version","createPropertyDescriptor","bitmap","value","configurable","writable","FunctionPrototype","uncurryThis","functionUncurryThis","fn","toString","stringSlice","slice","classofRaw","require$$1","require$$2","classof","require$$3","split","indexedObject","TypeError","requireObjectCoercible","undefined","IndexedObject","toIndexedObject","isCallable","argument","isObject","aFunction","getBuiltIn","namespace","method","length","objectIsPrototypeOf","isPrototypeOf","engineUserAgent","userAgent","process","Deno","versions","v8","engineV8Version","V8_VERSION","nativeSymbol","getOwnPropertySymbols","symbol","Symbol","String","sham","useSymbolAsUid","iterator","USE_SYMBOL_AS_UID","require$$4","isSymbol","$Symbol","tryToString","aCallable","getMethod","P","func","setGlobal","key","SHARED","sharedStore","store","sharedModule","push","mode","copyright","toObject","hasOwnProperty","hasOwnProperty_1","hasOwn","id","postfix","random","uid","shared","NATIVE_SYMBOL","require$$5","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","wellKnownSymbol","name","description","require$$6","TO_PRIMITIVE","toPrimitive","input","pref","result","exoticToPrim","val","valueOf","ordinaryToPrimitive","toPropertyKey","document","EXISTS","createElement","documentCreateElement","ie8DomDefine","a","DESCRIPTORS","propertyIsEnumerableModule","IE8_DOM_DEFINE","require$$7","$getOwnPropertyDescriptor","O","f","v8PrototypeDefineBug","anObject","V8_PROTOTYPE_DEFINE_BUG","$defineProperty","Attributes","current","definePropertyModule","createNonEnumerableProperty","object","functionToString","inspectSource","set","has","WeakMap","nativeWeakMap","test","keys","sharedKey","hiddenKeys","NATIVE_WEAK_MAP","require$$8","OBJECT_ALREADY_INITIALIZED","state","wmget","wmhas","wmset","metadata","facade","STATE","internalState","enforce","getterFor","TYPE","type","getDescriptor","functionName","PROPER","CONFIGURABLE","CONFIGURABLE_FUNCTION_NAME","getInternalState","enforceInternalState","TEMPLATE","redefineModule","options","unsafe","simple","noTargetGet","replace","source","join","ceil","floor","toIntegerOrInfinity","number","max","min","toAbsoluteIndex","index","integer","toLength","lengthOfArrayLike","obj","createMethod","IS_INCLUDES","$this","el","fromIndex","arrayIncludes","includes","indexOf","objectKeysInternal","names","i","enumBugKeys","internalObjectKeys","concat","getOwnPropertyNames","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","ownKeys","getOwnPropertyDescriptorModule","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","toLowerCase","isForced_1","redefine","copyConstructorProperties","target","exceptions","_export","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","forced","arrayMethodIsStrict","METHOD_NAME","$","$IndexOf","un$IndexOf","NEGATIVE_ZERO","STRICT_METHOD","proto","searchElement","toStringTagSupport","TO_STRING_TAG_SUPPORT","TO_STRING_TAG","CORRECT_ARGUMENTS","tag","tryGet","callee","whitespace","ltrim","RegExp","rtrim","stringTrim","start","end","trim","charAt","n$ParseFloat","parseFloat","ITERATOR","numberParseFloat","whitespaces","trimmedString","regexpFlags","that","ignoreCase","multiline","dotAll","unicode","sticky","$RegExp","UNSUPPORTED_Y","re","lastIndex","MISSED_STICKY","regexpStickyHelpers","BROKEN_CARET","objectKeys","defineProperties","Properties","props","activeXDocument","html","definePropertiesModule","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","domain","style","display","appendChild","src","contentWindow","open","F","re1","re2","objectCreate","create","regexpUnsupportedDotAll","flags","regexpUnsupportedNcg","groups","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","require$$9","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","reCopy","group","str","raw","charsAdded","strCopy","regexpExec","isArray","Array","createProperty","propertyKey","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","isConstructor","called","SPECIES","arraySpeciesCreate","originalArray","C","constructor","arrayMethodHasSpeciesSupport","array","foo","Boolean","require$$11","IS_CONCAT_SPREADABLE","require$$10","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","arg","k","len","E","A","n","arraySlice","un$Slice","HAS_SPECIES_SUPPORT","Constructor","fin","$parseInt","parseInt","hex","numberParseInt","radix","S","functionBindContext","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","callbackfn","specificCreate","boundFunction","arrayIteration","forEach","map","filter","some","every","find","findIndex","filterReject","$filter","objectToString","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","splice","deleteCount","insertCount","actualDeleteCount","from","to","actualStart","argumentsLength","FUNCTION_NAME_EXISTS","nameRE","regExpExec","functionApply","Reflect","RegExpPrototype","fixRegexpWellKnownSymbolLogic","KEY","FORCED","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","uncurriedNativeRegExpMethod","methods","nativeMethod","regexp","arg2","forceStringMethod","uncurriedNativeMethod","$exec","done","MATCH","charCodeAt","CONVERT_TO_STRING","pos","first","second","position","size","stringMultibyte","codeAt","advanceStringIndex","arraySliceSimple","regexpExecAbstract","R","fixRegExpWellKnownSymbolLogic","speciesConstructor","defaultConstructor","aConstructor","require$$12","callRegExpExec","require$$13","require$$14","require$$16","require$$15","MAX_UINT32","$push","SPLIT","nativeSplit","maybeCallNative","internalSplit","separator","limit","lim","isRegExp","lastLength","output","lastLastIndex","separatorCopy","splitter","rx","res","unicodeMatching","p","q","e","z","originalExec","UNSCOPABLES","ArrayPrototype","addToUnscopables","$find","FIND","SKIPS_HOLES","mergeSort","comparefn","middle","insertionSort","merge","element","j","left","right","llength","rlength","lindex","rindex","arraySort","firefox","engineFfVersion","engineIsIeOrEdge","webkit","engineWebkitVersion","internalSort","FF","IE_OR_EDGE","V8","WEBKIT","un$Sort","sort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STABLE_SORT","code","chr","fromCharCode","v","b","itemsLength","items","arrayLength","x","y","getSortCompare","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","iterators","correctPrototypeGetter","getPrototypeOf","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","objectGetPrototypeOf","BUGGY_SAFARI_ITERATORS","iteratorsCore","setToStringTag","TAG","Iterators","returnThis","createIteratorConstructor","IteratorConstructor","NAME","next","ENUMERABLE_NEXT","objectSetPrototypeOf","setPrototypeOf","setter","CORRECT_SETTER","aPossiblePrototype","__proto__","FunctionName","PROPER_FUNCTION_NAME","KEYS","VALUES","ENTRIES","defineIterator","Iterable","DEFAULT","IS_SET","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","values","InternalStateModule","ARRAY_ITERATOR","setInternalState","es_array_iterator","iterated","kind","Arguments","STRING_ITERATOR","point","classList","DOMTokenListPrototype","domTokenListPrototype","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","ArrayIteratorMethods","ArrayValues","handlePrototype","CollectionPrototype","COLLECTION_NAME","nativeUrl","url","URL","searchParams","pathname","href","URLSearchParams","username","host","hash","anInstance","Prototype","$assign","assign","objectAssign","B","alphabet","T","getIteratorMethod","getIterator","usingIterator","iteratorMethod","callWithSafeIterationClosing","innerResult","innerError","iteratorClose","isArrayIteratorMethod","maxInt","regexNonASCII","regexSeparators","OVERFLOW_ERROR","RangeError","digitToBasic","digit","adapt","delta","numPoints","firstTime","baseMinusTMin","base","encode","currentValue","inputLength","counter","extra","ucs2decode","bias","basicLength","handledCPCount","m","handledCPCountPlusOne","t","qMinusT","baseMinusT","USE_NATIVE_URL","require$$17","$toString","require$$18","require$$19","require$$20","require$$21","require$$22","require$$24","require$$23","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","n$Fetch","N$Request","Headers","RequestPrototype","HeadersPrototype","decodeURIComponent","encodeURIComponent","shift","plus","sequences","percentSequence","bytes","percentDecode","sequence","deserialize","replacements","!","'","(",")","~","%20","replacer","serialize","validateArgumentsLength","passed","required","URLSearchParamsIterator","params","step","entry","URLSearchParamsState","init","parseObject","parseQuery","bindURL","update","entryIterator","entryNext","query","attribute","attributes","updateURL","URLSearchParamsConstructor","URLSearchParamsPrototype","redefineAll","append","delete","getAll","found","callback","headersHas","headersSet","wrapRequestOptions","headers","body","fetch","RequestConstructor","Request","EOF","web_urlSearchParams","getState","arrayFrom","arrayLike","IS_CONSTRUCTOR","mapfn","mapping","URLSearchParamsModule","getInternalURLState","getInternalSearchParamsState","NativeURL","pow","numberToString","pop","unshift","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","serializeHost","compress","ignore0","ipv6","maxIndex","maxLength","currStart","currLength","findLongestZeroSequence","C0ControlPercentEncodeSet","fragmentPercentEncodeSet"," ","\"","<",">","`","pathPercentEncodeSet","#","?","{","}","userinfoPercentEncodeSet","/",":",";","=","@","[","\\","]","^","|","percentEncode","specialSchemes","ftp","file","http","https","ws","wss","isWindowsDriveLetter","normalized","startsWithWindowsDriveLetter","third","isSingleDot","segment","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","URLState","isBase","baseState","failure","urlString","parse","stateOverride","codePoints","bufferCodePoints","pointer","buffer","seenAt","seenBracket","seenPasswordToken","scheme","password","port","path","fragment","cannotBeABaseURL","isSpecial","includesCredentials","codePoint","encodedCodePoints","parseHost","shortenPath","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","parseIPv6","label","encoded","labels","toASCII","partsLength","numbers","part","ipv4","parts","parseIPv4","cannotHaveUsernamePasswordPort","pathSize","setHref","getOrigin","URLConstructor","origin","getProtocol","setProtocol","protocol","getUsername","setUsername","getPassword","setPassword","getHost","setHost","getHostname","setHostname","hostname","getPort","setPort","getPathname","setPathname","getSearch","setSearch","search","getSearchParams","getHash","setHash","URLPrototype","accessorDescriptor","getter","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","getSubstitution","matched","captures","namedCaptures","tailPos","symbols","ch","capture","REPLACE","stringIndexOf","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","_","UNSAFE_SUBSTITUTE","searchValue","replaceValue","functionalReplace","fullUnicode","results","accumulatedResult","nextSourcePosition","replacerArgs","predicate","htmlEncode","text","RowCollection","collection","initialize","sortColumn","add","rows","at","reset","filteredCollection","filterFunc","args","row","onComparatorRequired","onSort","nativeSort","getDefaultComparator","column","descending","columnName","comparePath","pathLength","hasPath","lessVal","moreVal","leftRow","rightRow","leftVal","rightVal","ColumnCollection","silent","comparator","comparators","defaultComparator","getByOrder","order","normalizeOrder","ordered","col1","col2","getColumns","cols","getVisibleColumns","visible","getMaxOrder","moveColumn","dest","srcOrder","destOrder","CssUtil","_isTransformSupported","getSupportedTransform","div","item","regExpFlags","TO_STRING","n$ToString","getFlags","NOT_GENERIC","INCORRECT_NAME","rf","SelectionHelper","range","getSelection","getRangeAt","commonAncestorContainer","child","parent","parentNode","isChildOf","preSelectionRange","cloneRange","selectNodeContents","setEnd","startContainer","startOffset","savedSel","node","charIndex","nodeStack","foundStart","stop","createRange","setStart","collapse","nodeType","nextCharIndex","childNodes","sel","removeAllRanges","addRange","ByColumnFilter","keyword","actualVal","caseSensitive","nativeIndexOf","jQuery","navigator","ieVersion","substr","hasIeDragAndDropBug","relativizeElement","$el","css","getTextWidth","lastDetectedWidth","isInputElementEvent","event","tagName","DGTable","VERSION","o","events","Element","addClass","className","on","destroy","onMouseMoveResizeAreaBound","_onMouseMoveResizeArea","onEndDragColumnHeaderBound","_onEndDragColumnHeader","onTableScrolledHorizontallyBound","_onTableScrolledHorizontally","tableSkeletonNeedsRendering","virtualTable","rowsBufferSize","minColumnWidth","resizeAreaWidth","resizableColumns","movableColumns","sortableColumns","adjustColumnWidthForSortArrow","convertColumnWidthsToRelative","autoFillTableWidth","cellClasses","resizerClassName","tableClassName","allowCellPreview","allowHeaderCellPreview","cellPreviewClassName","cellPreviewAutoBackground","width","Width","NONE","relativeWidthGrowsToFillWidth","relativeWidthShrinksToFillWidth","setCellFormatter","cellFormatter","setHeaderCellFormatter","headerCellFormatter","setFilter","height","setColumns","columns","sortColumns","tmpSortColumns","_typeof","col","dataPath","filteredRows","hoverMouseOverHandler","evt","relatedTarget","fromElement","contains","_cellMouseOverEvent","hoverMouseOutHandler","toElement","_cellMouseOutEvent","_bindCellHoverIn","addEventListener","_unbindCellHoverIn","removeEventListener","_bindCellHoverOut","_unbindCellHoverOut","attachEvent","detachEvent","eventName","cb","once","off","callbacks","trigger","_parseColumnWidth","minWidth","widthSize","widthMode","ColumnWidthMode","AUTO","ABSOLUTE","_initColumnFromData","columnData","parsedWidth","ignoreMin","resizable","sortable","movable","remove","__removed","$resizer","$tbody","trs","_destroyHeaderCells","_unbindCellEventsForTable","$table","workerListeners","worker","listener","prop","_deferredRender","clearTimeout","headerRow","rowCount","cells","cellCount","tbody","_unbindCellEventsForRow","rowToClean","render","renderedRows","offsetParent","setTimeout","_this","_clearSortArrows","lastScrollTop","table","scrollTop","NaN","lastScrollHorz","getScrollHorz","_renderSkeletonBase","_renderSkeletonBody","tableWidthChanged","_renderSkeletonHeaderCells","renderRows","_updateLastCellWidthFromScrollbar","_updateTableWidth","_showSortArrow","isNaN","setScrollHorz","header","_onVirtualTableScrolled","firstVisible","virtualRowHeightFirst","virtualRowHeight","lastVisible","visibleHeight","countToRemove","oldFirstVisible","oldLastVisible","tbodyChildNodes","removeChild","prepend","clearAndRender","last","top","physicalRowIndex","rowClassName","cellClassName","isDataFiltered","visibleColumns","isVirtual","colCount","colIndex","_finalWidth","actualWidthConsideringScrollbarWidth","actualWidth","bodyFragment","createDocumentFragment","virtualRowXAttr","_isTableRtl","supportedTransform","rowData","cell","setAttribute","innerHTML","_getHtmlForCell","_calculateVirtualHeight","virtualRowHeightLast","_calculateTbodyWidth","$row","sumActualWidth","$thisWrapper","z-index","float","overflow","appendTo","fractionTest","fractionValue","hasFractions","round","getElementWidth","scrollbarWidth","normalizedCols","normalizedColumn","_ensureVisibleColumns","addColumn","before","beforeColumn","removeColumn","colIdx","formatter","hadFilter","filterArgs","extend","clearFilter","_refilter","setColumnLabel","firstChild","textContent","destCol","visibleOnly","columnsArray","headerCell","$headerRow","beforePos","fromPos","insertBefore","srcWidth","destWidth","tbodyChildren","count","currentSort","_tableSkeletonNeedsRendering","sorts","resort","setColumnVisible","isColumnVisible","setMinColumnWidth","getMinColumnWidth","setSortableColumns","getSortableColumns","setMovableColumns","getMovableColumns","setResizableColumns","getResizableColumns","setComparatorCallback","comparatorCallback","setColumnWidth","oldWidth","_serializeColumnWidth","newWidth","getColumnWidth","getColumnConfig","getColumnsConfig","config","getSortedColumns","sorted","getHtmlForRowCell","rowIndex","getHtmlForRowDataCell","colValue","dataPathIndex","err","console","getRowYPos","offsetTop","getDataForRow","getRowCount","getIndexForRow","getFilteredRowCount","getIndexForFilteredRow","getDataForFilteredRow","getHeaderRowElement","_horizontalPadding","_horizontalBorderWidth","_calculateWidthAvailableForColumns","oldDisplay","lastScrollLeft","scrollLeft","detectedWidth","$header","$cells","$cell","$tableWrapper","visibility","forceUpdate","renderColumns","sizeLeft","relatives","tableWidthBeforeCalculations","absWidthTotal","changedColumnIndexes","totalRelativePercentage","arrowProposedWidth","sizeLeftForRelative","clientWidth","minColumnWidthRelative","extraRelative","nonResizableTotal","sizeLeftToFill","conv","tableWidth","_resizeColumnElements","tableHeightChanged","getElementHeight","addRows","firstRow","lastRow","removeRows","lastRowIndex","removeRow","refreshRow","isRowVisible","renderedRow","getRowElement","refreshAllVirtualRows","rowsToRender","setRows","getUrlForElementContent","blob","getElementById","Blob","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","builder","getBlob","webkitURL","isWorkerSupported","createWebWorker","Worker","postMessage","unbindWebWorker","abortCellPreview","hideCellPreview","cancelColumnResize","_getColumnByResizePosition","rtl","$headerCell","closest","previousElementSibling","previousSibling","firstCol","mouseX","pageX","originalEvent","clientX","offset","_onTouchStartColumnHeader","currentTouchId","startTouch","changedTouches","identifier","tapAndHoldTimeout","$eventTarget","currentTarget","startPos","pageY","currentPos","unbind","fakeEvent","Event","extendObjects","which","one","preventDefault","_event","sqrt","abs","_this2","touch","_onMouseDownColumnHeader","selectedHeaderCell","commonAncestor","posCol","posRelative","resizerWidth","zIndex","ignored","_onMouseMoveColumnHeader","cursor","_onMouseUpColumnHeader","bounds","_onMouseLeaveColumnHeader","_onClickColumnHeader","_onStartDragColumnHeader","opacity","dragId","dataTransfer","setData","JSON","stringify","isBoxing","actualX","minX","baseX","sizeToSet","unNormalizedSizeToSet","_onDragEnterColumnHeader","dataTransferred","getData","_onDragOverColumnHeader","_onDragLeaveColumnHeader","removeClass","_onDropColumnHeader","srcColName","destColName","srcCol","sortedColumns","arrows","arrow","scrollWidth","cellIndex","headerCells","prependTo","SCROLL","ieDragDropHandler","headerCellClassName","dragDrop","draggable","cellInside","-webkit-touch-callout","-webkit-user-select","-moz-user-select","-ms-user-select","-o-user-select","user-select","$dummyTbody","createDummyRow","cellInner","$dummyWrapper","row1","row2","row3","virtualRowHeightMin","virtualRowHeightMax","tableHeight","overflowY","overflowX","virtualVisibleRows","_renderSkeleton","force","offsetWidth","lastColIndex","lastColWidth","parentSizeMayHaveChanged","setElementWidth","offsetHeight","elInner","scrollHeight","clientHeight","$elInner","previewCell","$previewCell","isHeaderCell","hasClass","paddingL","paddingR","paddingT","paddingB","requiredWidth","borderBox","transparentBgColor1","tempDiv","backgroundColor","transparentBgColor2","bgColor","selection","saveSelection","restoreSelection","$parent","$scrollParent","parentOffset","windowWidth","maxHorz","totalHeight","maxTop","previewCss","$cellPreviewCell","_this3","_el","origCell","controls","dgtable"],"mappings":"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"}
|