{"version":3,"file":"svg.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/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/to-primitive.js","../node_modules/core-js/internals/has.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/set-global.js","../node_modules/core-js/internals/shared-store.js","../node_modules/core-js/internals/shared.js","../node_modules/core-js/internals/function-to-string.js","../node_modules/core-js/internals/native-weak-map.js","../node_modules/core-js/internals/uid.js","../node_modules/core-js/internals/shared-key.js","../node_modules/core-js/internals/hidden-keys.js","../node_modules/core-js/internals/internal-state.js","../node_modules/core-js/internals/redefine.js","../node_modules/core-js/internals/path.js","../node_modules/core-js/internals/get-built-in.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/object-keys.js","../node_modules/core-js/internals/to-object.js","../node_modules/core-js/internals/object-assign.js","../node_modules/core-js/modules/es.object.assign.js","../node_modules/core-js/internals/is-array.js","../node_modules/core-js/internals/create-property.js","../node_modules/core-js/internals/native-symbol.js","../node_modules/core-js/internals/well-known-symbol.js","../node_modules/core-js/internals/user-agent.js","../node_modules/core-js/internals/v8-version.js","../node_modules/core-js/internals/array-method-has-species-support.js","../node_modules/core-js/modules/es.array.slice.js","../node_modules/core-js/modules/es.function.name.js","../node_modules/core-js/internals/object-get-own-property-names-external.js","../node_modules/core-js/modules/es.object.get-own-property-names.js","../node_modules/@babel/runtime/helpers/esm/typeof.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/wrapped-well-known-symbol.js","../node_modules/core-js/internals/define-well-known-symbol.js","../node_modules/core-js/internals/set-to-string-tag.js","../node_modules/core-js/internals/a-function.js","../node_modules/core-js/internals/bind-context.js","../node_modules/core-js/internals/array-species-create.js","../node_modules/core-js/internals/array-iteration.js","../node_modules/core-js/modules/es.symbol.js","../node_modules/core-js/modules/es.symbol.description.js","../node_modules/core-js/modules/es.symbol.iterator.js","../node_modules/core-js/internals/add-to-unscopables.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/iterators-core.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/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/internals/freezing.js","../node_modules/core-js/internals/internal-metadata.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/call-with-safe-iteration-closing.js","../node_modules/core-js/internals/iterate.js","../node_modules/core-js/internals/an-instance.js","../node_modules/core-js/internals/check-correctness-of-iteration.js","../node_modules/core-js/internals/inherit-if-required.js","../node_modules/core-js/internals/collection.js","../node_modules/core-js/internals/redefine-all.js","../node_modules/core-js/internals/set-species.js","../node_modules/core-js/internals/collection-strong.js","../node_modules/core-js/modules/es.set.js","../node_modules/core-js/internals/string-multibyte.js","../node_modules/core-js/modules/es.string.iterator.js","../node_modules/core-js/internals/dom-iterables.js","../node_modules/core-js/modules/web.dom-collections.iterator.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../src/utils/methods.js","../node_modules/core-js/modules/es.array.includes.js","../node_modules/core-js/internals/regexp-flags.js","../node_modules/core-js/internals/regexp-exec.js","../node_modules/core-js/modules/es.regexp.exec.js","../node_modules/core-js/internals/is-regexp.js","../node_modules/core-js/internals/not-a-regexp.js","../node_modules/core-js/internals/correct-is-regexp-logic.js","../node_modules/core-js/modules/es.string.includes.js","../node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.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.replace.js","../node_modules/core-js/internals/whitespaces.js","../node_modules/core-js/internals/string-trim.js","../node_modules/core-js/internals/forced-string-trim-method.js","../node_modules/core-js/modules/es.string.trim.js","../src/utils/utils.js","../src/modules/core/namespaces.js","../src/utils/window.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../src/types/Base.js","../src/utils/adopter.js","../src/modules/optional/arrange.js","../node_modules/core-js/modules/es.array.filter.js","../node_modules/core-js/internals/sloppy-array-method.js","../node_modules/core-js/modules/es.array.index-of.js","../node_modules/core-js/modules/es.array.join.js","../node_modules/core-js/internals/species-constructor.js","../node_modules/core-js/modules/es.string.split.js","../src/modules/core/regex.js","../src/modules/optional/class.js","../node_modules/core-js/internals/array-for-each.js","../node_modules/core-js/modules/es.array.for-each.js","../node_modules/core-js/modules/web.dom-collections.for-each.js","../src/modules/optional/css.js","../src/modules/optional/data.js","../src/modules/optional/memory.js","../node_modules/core-js/internals/array-reduce.js","../node_modules/core-js/modules/es.array.reduce.js","../src/modules/core/event.js","../node_modules/core-js/modules/es.array.concat.js","../node_modules/core-js/modules/es.array.map.js","../node_modules/core-js/modules/es.date.to-string.js","../node_modules/core-js/internals/parse-int.js","../node_modules/core-js/modules/es.parse-int.js","../node_modules/core-js/modules/es.regexp.to-string.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../src/types/Color.js","../node_modules/core-js/modules/es.object.keys.js","../node_modules/core-js/modules/es.string.match.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/superPropBase.js","../node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/core-js/modules/es.number.constructor.js","../node_modules/core-js/internals/parse-float.js","../node_modules/core-js/modules/es.parse-float.js","../src/types/Point.js","../src/types/Matrix.js","../src/modules/core/parser.js","../src/types/Box.js","../src/types/ArrayPolyfill.js","../src/types/List.js","../src/modules/core/selector.js","../src/types/EventTarget.js","../src/modules/core/defaults.js","../src/types/SVGArray.js","../src/types/SVGNumber.js","../src/modules/core/attr.js","../src/elements/Dom.js","../src/elements/Element.js","../src/modules/optional/sugar.js","../node_modules/core-js/modules/es.array.reverse.js","../node_modules/core-js/modules/es.object.define-properties.js","../node_modules/core-js/modules/es.object.define-property.js","../node_modules/core-js/modules/es.object.get-own-property-descriptor.js","../node_modules/core-js/modules/es.object.get-own-property-descriptors.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../src/modules/optional/transform.js","../src/modules/core/circled.js","../src/elements/Shape.js","../src/elements/Circle.js","../src/elements/Container.js","../src/elements/Defs.js","../src/elements/Ellipse.js","../src/elements/Stop.js","../src/modules/core/gradiented.js","../src/elements/Gradient.js","../src/elements/Pattern.js","../src/elements/Image.js","../src/types/PointArray.js","../src/modules/core/pointed.js","../src/elements/Line.js","../src/elements/Marker.js","../node_modules/core-js/modules/es.array.sort.js","../src/animation/Controller.js","../src/types/PathArray.js","../src/animation/Morphable.js","../src/elements/Path.js","../src/modules/core/poly.js","../src/elements/Polygon.js","../src/elements/Polyline.js","../src/elements/Rect.js","../node_modules/core-js/modules/es.array.splice.js","../src/animation/Queue.js","../src/animation/Animator.js","../src/animation/Timeline.js","../src/animation/Runner.js","../src/elements/Svg.js","../src/elements/Symbol.js","../src/modules/core/textable.js","../src/elements/Text.js","../src/elements/Tspan.js","../src/elements/ClipPath.js","../src/elements/ForeignObject.js","../src/elements/G.js","../src/elements/A.js","../src/elements/Mask.js","../src/elements/Style.js","../src/elements/TextPath.js","../src/elements/Use.js","../src/main.js","../src/svg.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 no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n 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// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\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\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.github.io/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 isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_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 (!PREFERRED_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 hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, 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 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 toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(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 toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(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 global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\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.3.6',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","var shared = require('../internals/shared');\n\nmodule.exports = shared('native-function-to-string', Function.toString);\n","var global = require('../internals/global');\nvar nativeFunctionToString = require('../internals/function-to-string');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(nativeFunctionToString.call(WeakMap));\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 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 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 sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\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) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\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 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 shared = require('../internals/shared');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar nativeFunctionToString = require('../internals/function-to-string');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(nativeFunctionToString).split('toString');\n\nshared('inspectSource', function (it) {\n return nativeFunctionToString.call(it);\n});\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 if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\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 || nativeFunctionToString.call(this);\n});\n","module.exports = require('../internals/global');\n","var path = require('../internals/path');\nvar 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(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/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.github.io/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(length, 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\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\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.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/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.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","exports.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","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\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\nvar nativeAssign = Object.assign;\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !nativeAssign || fails(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\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} : nativeAssign;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nvar Symbol = global.Symbol;\nvar store = shared('wks');\n\nmodule.exports = function (name) {\n return store[name] || (store[name] = NATIVE_SYMBOL && Symbol[name]\n || (NATIVE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = 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","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/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 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 arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !arrayMethodHasSpeciesSupport('slice') }, {\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 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.github.io/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","var toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names-external').f;\n\nvar FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); });\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n getOwnPropertyNames: nativeGetOwnPropertyNames\n});\n","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nexport default function _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\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.github.io/ecma262/#sec-object.defineproperties\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","var 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');\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar PROTOTYPE = 'prototype';\nvar Empty = function () { /* empty */ };\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var length = enumBugKeys.length;\n var lt = '<';\n var script = 'script';\n var gt = '>';\n var js = 'java' + script + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n iframe.src = String(js);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + script + gt + 'document.F=Object' + lt + '/' + script + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (length--) delete createDict[PROTOTYPE][enumBugKeys[length]];\n return createDict();\n};\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\nhiddenKeys[IE_PROTO] = true;\n","exports.f = require('../internals/well-known-symbol');\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/wrapped-well-known-symbol');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\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","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 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// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\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 new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var bind = require('../internals/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 }` 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 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 ? 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 if (IS_EVERY) return false; // every\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.github.io/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/wrapped-well-known-symbol');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar JSON = global.JSON;\nvar nativeJSONStringify = JSON && JSON.stringify;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar isSymbol = NATIVE_SYMBOL && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPrimitive(P, true);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPrimitive(V, true);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPrimitive(P, true);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.github.io/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.github.io/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = String(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.github.io/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.github.io/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.github.io/ecma262/#sec-json.stringify\nJSON && $({ target: 'JSON', stat: true, forced: !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return nativeJSONStringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || nativeJSONStringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || nativeJSONStringify(Object(symbol)) != '{}';\n}) }, {\n stringify: function stringify(it) {\n var args = [it];\n var index = 1;\n var replacer, $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return nativeJSONStringify.apply(JSON, args);\n }\n});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","// `Symbol.prototype.description` getter\n// https://tc39.github.io/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var native = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n createNonEnumerableProperty(ArrayPrototype, UNSCOPABLES, create(null));\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\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 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.github.io/ecma262/#sec-object.getprototypeof\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","'use strict';\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.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\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\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\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","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\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#{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.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/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.github.io/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.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var 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 = 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 classof = require('../internals/classof');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = String(test) !== '[object z]' ? function toString() {\n return '[object ' + classof(this) + ']';\n} : test.toString;\n","var redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\nvar ObjectPrototype = Object.prototype;\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (toString !== ObjectPrototype.toString) {\n redefine(ObjectPrototype, 'toString', toString, { unsafe: true });\n}\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + ++id, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar meta = module.exports = {\n REQUIRED: false,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\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","var anObject = require('../internals/an-object');\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 // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\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","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common, IS_MAP, IS_WEAK) {\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var ADDER = IS_MAP ? 'set' : 'add';\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n // eslint-disable-next-line max-len\n if (isForced(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n })))) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\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';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.github.io/ecma262/#sec-set-objects\nmodule.exports = collection('Set', function (get) {\n return function Set() { return get(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(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.github.io/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;\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.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/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","// 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 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","export default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}","export default function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}","const methods = {}\r\nconst names = []\r\n\r\nexport function registerMethods (name, m) {\r\n if (Array.isArray(name)) {\r\n for (const _name of name) {\r\n registerMethods(_name, m)\r\n }\r\n return\r\n }\r\n\r\n if (typeof name === 'object') {\r\n for (const _name in name) {\r\n registerMethods(_name, name[_name])\r\n }\r\n return\r\n }\r\n\r\n addMethodNames(Object.getOwnPropertyNames(m))\r\n methods[name] = Object.assign(methods[name] || {}, m)\r\n}\r\n\r\nexport function getMethodsFor (name) {\r\n return methods[name] || {}\r\n}\r\n\r\nexport function getMethodNames () {\r\n return [ ...new Set(names) ]\r\n}\r\n\r\nexport function addMethodNames (_names) {\r\n names.push(..._names)\r\n}\r\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.github.io/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","'use strict';\nvar regexpFlags = require('./regexp-flags');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = 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\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;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(re, str);\n\n 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 return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\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.github.io/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 isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (e) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (f) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\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 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\nmodule.exports = function (KEY, length, exec, 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 (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\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 var stringMethod = methods[0];\n var regexMethod = methods[1];\n\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return regexMethod.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return regexMethod.call(string, this); }\n );\n if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n }\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/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.github.io/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 anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/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(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(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 = String(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 = String(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 = String(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\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(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 nativeReplace.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});\n","// a string of all valid unicode whitespaces\n// eslint-disable-next-line max-len\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var requireObjectCoercible = require('../internals/require-object-coercible');\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 = String(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.github.io/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/forced-string-trim-method');\n\n// `String.prototype.trim` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","// Map function\r\nexport function map (array, block) {\r\n var i\r\n var il = array.length\r\n var result = []\r\n\r\n for (i = 0; i < il; i++) {\r\n result.push(block(array[i]))\r\n }\r\n\r\n return result\r\n}\r\n\r\n// Filter function\r\nexport function filter (array, block) {\r\n var i\r\n var il = array.length\r\n var result = []\r\n\r\n for (i = 0; i < il; i++) {\r\n if (block(array[i])) {\r\n result.push(array[i])\r\n }\r\n }\r\n\r\n return result\r\n}\r\n\r\n// Degrees to radians\r\nexport function radians (d) {\r\n return d % 360 * Math.PI / 180\r\n}\r\n\r\n// Radians to degrees\r\nexport function degrees (r) {\r\n return r * 180 / Math.PI % 360\r\n}\r\n\r\n// Convert dash-separated-string to camelCase\r\nexport function camelCase (s) {\r\n return s.toLowerCase().replace(/-(.)/g, function (m, g) {\r\n return g.toUpperCase()\r\n })\r\n}\r\n\r\n// Convert camel cased string to string seperated\r\nexport function unCamelCase (s) {\r\n return s.replace(/([A-Z])/g, function (m, g) {\r\n return '-' + g.toLowerCase()\r\n })\r\n}\r\n\r\n// Capitalize first letter of a string\r\nexport function capitalize (s) {\r\n return s.charAt(0).toUpperCase() + s.slice(1)\r\n}\r\n\r\n// Calculate proportional width and height values when necessary\r\nexport function proportionalSize (element, width, height, box) {\r\n if (width == null || height == null) {\r\n box = box || element.bbox()\r\n\r\n if (width == null) {\r\n width = box.width / box.height * height\r\n } else if (height == null) {\r\n height = box.height / box.width * width\r\n }\r\n }\r\n\r\n return {\r\n width: width,\r\n height: height\r\n }\r\n}\r\n\r\nexport function getOrigin (o, element) {\r\n // Allow origin or around as the names\r\n const origin = o.origin // o.around == null ? o.origin : o.around\r\n let ox, oy\r\n\r\n // Allow the user to pass a string to rotate around a given point\r\n if (typeof origin === 'string' || origin == null) {\r\n // Get the bounding box of the element with no transformations applied\r\n const string = (origin || 'center').toLowerCase().trim()\r\n const { height, width, x, y } = element.bbox()\r\n\r\n // Calculate the transformed x and y coordinates\r\n const bx = string.includes('left') ? x\r\n : string.includes('right') ? x + width\r\n : x + width / 2\r\n const by = string.includes('top') ? y\r\n : string.includes('bottom') ? y + height\r\n : y + height / 2\r\n\r\n // Set the bounds eg : \"bottom-left\", \"Top right\", \"middle\" etc...\r\n ox = o.ox != null ? o.ox : bx\r\n oy = o.oy != null ? o.oy : by\r\n } else {\r\n ox = origin[0]\r\n oy = origin[1]\r\n }\r\n\r\n // Return the origin as it is if it wasn't a string\r\n return [ ox, oy ]\r\n}\r\n","// Default namespaces\r\nexport const ns = 'http://www.w3.org/2000/svg'\r\nexport const xmlns = 'http://www.w3.org/2000/xmlns/'\r\nexport const xlink = 'http://www.w3.org/1999/xlink'\r\nexport const svgjs = 'http://svgjs.com/svgjs'\r\n","export const globals = {\r\n window: typeof window === 'undefined' ? null : window,\r\n document: typeof document === 'undefined' ? null : document\r\n}\r\n\r\nexport function registerWindow (win = null, doc = null) {\r\n globals.window = win\r\n globals.document = doc\r\n}\r\n\r\nconst save = {}\r\n\r\nexport function saveWindow () {\r\n save.window = globals.window\r\n save.document = globals.document\r\n}\r\n\r\nexport function restoreWindow () {\r\n globals.window = save.window\r\n globals.document = save.document\r\n}\r\n\r\nexport function withWindow (win, fn) {\r\n saveWindow()\r\n registerWindow(win, win.document)\r\n fn(win, win.document)\r\n restoreWindow()\r\n}\r\n\r\nexport function getWindow () {\r\n return globals.window\r\n}\r\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","export default class Base {\r\n // constructor (node/*, {extensions = []} */) {\r\n // // this.tags = []\r\n // //\r\n // // for (let extension of extensions) {\r\n // // extension.setup.call(this, node)\r\n // // this.tags.push(extension.name)\r\n // // }\r\n // }\r\n}\r\n","import { addMethodNames } from './methods.js'\r\nimport { capitalize } from './utils.js'\r\nimport { ns } from '../modules/core/namespaces.js'\r\nimport { globals } from '../utils/window.js'\r\nimport Base from '../types/Base.js'\r\n\r\nconst elements = {}\r\nexport const root = '___SYMBOL___ROOT___'\r\n\r\n// Method for element creation\r\nexport function create (name) {\r\n // create element\r\n return globals.document.createElementNS(ns, name)\r\n}\r\n\r\nexport function makeInstance (element) {\r\n if (element instanceof Base) return element\r\n\r\n if (typeof element === 'object') {\r\n return adopter(element)\r\n }\r\n\r\n if (element == null) {\r\n return new elements[root]()\r\n }\r\n\r\n if (typeof element === 'string' && element.charAt(0) !== '<') {\r\n return adopter(globals.document.querySelector(element))\r\n }\r\n\r\n var node = create('svg')\r\n node.innerHTML = element\r\n\r\n // We can use firstChild here because we know,\r\n // that the first char is < and thus an element\r\n element = adopter(node.firstChild)\r\n\r\n return element\r\n}\r\n\r\nexport function nodeOrNew (name, node) {\r\n return node instanceof globals.window.Node ? node : create(name)\r\n}\r\n\r\n// Adopt existing svg elements\r\nexport function adopt (node) {\r\n // check for presence of node\r\n if (!node) return null\r\n\r\n // make sure a node isn't already adopted\r\n if (node.instance instanceof Base) return node.instance\r\n\r\n // initialize variables\r\n var className = capitalize(node.nodeName || 'Dom')\r\n\r\n // Make sure that gradients are adopted correctly\r\n if (className === 'LinearGradient' || className === 'RadialGradient') {\r\n className = 'Gradient'\r\n\r\n // Fallback to Dom if element is not known\r\n } else if (!elements[className]) {\r\n className = 'Dom'\r\n }\r\n\r\n return new elements[className](node)\r\n}\r\n\r\nlet adopter = adopt\r\n\r\nexport function mockAdopt (mock = adopt) {\r\n adopter = mock\r\n}\r\n\r\nexport function register (element, name = element.name, asRoot = false) {\r\n elements[name] = element\r\n if (asRoot) elements[root] = element\r\n\r\n addMethodNames(Object.getOwnPropertyNames(element.prototype))\r\n\r\n return element\r\n}\r\n\r\nexport function getClass (name) {\r\n return elements[name]\r\n}\r\n\r\n// Element id sequence\r\nlet did = 1000\r\n\r\n// Get next named element id\r\nexport function eid (name) {\r\n return 'Svgjs' + capitalize(name) + (did++)\r\n}\r\n\r\n// Deep new id assignment\r\nexport function assignNewId (node) {\r\n // do the same for SVG child nodes as well\r\n for (var i = node.children.length - 1; i >= 0; i--) {\r\n assignNewId(node.children[i])\r\n }\r\n\r\n if (node.id) {\r\n return adopt(node).id(eid(node.nodeName))\r\n }\r\n\r\n return adopt(node)\r\n}\r\n\r\n// Method for extending objects\r\nexport function extend (modules, methods, attrCheck) {\r\n var key, i\r\n\r\n modules = Array.isArray(modules) ? modules : [ modules ]\r\n\r\n for (i = modules.length - 1; i >= 0; i--) {\r\n for (key in methods) {\r\n let method = methods[key]\r\n if (attrCheck) {\r\n method = wrapWithAttrCheck(methods[key])\r\n }\r\n modules[i].prototype[key] = method\r\n }\r\n }\r\n}\r\n\r\n// export function extendWithAttrCheck (...args) {\r\n// extend(...args, true)\r\n// }\r\n\r\nexport function wrapWithAttrCheck (fn) {\r\n return function (...args) {\r\n const o = args[args.length - 1]\r\n\r\n if (o && o.constructor === Object && !(o instanceof Array)) {\r\n return fn.apply(this, args.slice(0, -1)).attr(o)\r\n } else {\r\n return fn.apply(this, args)\r\n }\r\n }\r\n}\r\n\r\nexport function invent (config) {\r\n // Create element initializer\r\n var initializer = typeof config.create === 'function'\r\n ? config.create\r\n : function (node) {\r\n this.constructor(node || create(config.create))\r\n }\r\n\r\n // Inherit prototype\r\n if (config.inherit) {\r\n /* eslint new-cap: off */\r\n initializer.prototype = new config.inherit()\r\n initializer.prototype.constructor = initializer\r\n }\r\n\r\n // Extend with methods\r\n if (config.extend) { extend(initializer, config.extend) }\r\n\r\n // Attach construct method to parent\r\n if (config.construct) { extend(config.parent || elements.Container, config.construct) }\r\n\r\n return initializer\r\n}\r\n","import { makeInstance } from '../../utils/adopter.js'\r\nimport { registerMethods } from '../../utils/methods.js'\r\n\r\n// Get all siblings, including myself\r\nexport function siblings () {\r\n return this.parent().children()\r\n}\r\n\r\n// Get the curent position siblings\r\nexport function position () {\r\n return this.parent().index(this)\r\n}\r\n\r\n// Get the next element (will return null if there is none)\r\nexport function next () {\r\n return this.siblings()[this.position() + 1]\r\n}\r\n\r\n// Get the next element (will return null if there is none)\r\nexport function prev () {\r\n return this.siblings()[this.position() - 1]\r\n}\r\n\r\n// Send given element one step forward\r\nexport function forward () {\r\n var i = this.position() + 1\r\n var p = this.parent()\r\n\r\n // move node one step forward\r\n p.removeElement(this).add(this, i)\r\n\r\n // make sure defs node is always at the top\r\n if (typeof p.isRoot === 'function' && p.isRoot()) {\r\n p.node.appendChild(p.defs().node)\r\n }\r\n\r\n return this\r\n}\r\n\r\n// Send given element one step backward\r\nexport function backward () {\r\n var i = this.position()\r\n\r\n if (i > 0) {\r\n this.parent().removeElement(this).add(this, i - 1)\r\n }\r\n\r\n return this\r\n}\r\n\r\n// Send given element all the way to the front\r\nexport function front () {\r\n var p = this.parent()\r\n\r\n // Move node forward\r\n p.node.appendChild(this.node)\r\n\r\n // Make sure defs node is always at the top\r\n if (typeof p.isRoot === 'function' && p.isRoot()) {\r\n p.node.appendChild(p.defs().node)\r\n }\r\n\r\n return this\r\n}\r\n\r\n// Send given element all the way to the back\r\nexport function back () {\r\n if (this.position() > 0) {\r\n this.parent().removeElement(this).add(this, 0)\r\n }\r\n\r\n return this\r\n}\r\n\r\n// Inserts a given element before the targeted element\r\nexport function before (element) {\r\n element = makeInstance(element)\r\n element.remove()\r\n\r\n var i = this.position()\r\n\r\n this.parent().add(element, i)\r\n\r\n return this\r\n}\r\n\r\n// Inserts a given element after the targeted element\r\nexport function after (element) {\r\n element = makeInstance(element)\r\n element.remove()\r\n\r\n var i = this.position()\r\n\r\n this.parent().add(element, i + 1)\r\n\r\n return this\r\n}\r\n\r\nexport function insertBefore (element) {\r\n element = makeInstance(element)\r\n element.before(this)\r\n return this\r\n}\r\n\r\nexport function insertAfter (element) {\r\n element = makeInstance(element)\r\n element.after(this)\r\n return this\r\n}\r\n\r\nregisterMethods('Dom', {\r\n siblings,\r\n position,\r\n next,\r\n prev,\r\n forward,\r\n backward,\r\n front,\r\n back,\r\n before,\r\n after,\r\n insertBefore,\r\n insertAfter\r\n})\r\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !arrayMethodHasSpeciesSupport('filter') }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\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\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar sloppyArrayMethod = require('../internals/sloppy-array-method');\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar SLOPPY_METHOD = sloppyArrayMethod('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || SLOPPY_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","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar sloppyArrayMethod = require('../internals/sloppy-array-method');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar SLOPPY_METHOD = sloppyArrayMethod('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || SLOPPY_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\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.github.io/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","'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 callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\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 = String(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.github.io/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(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/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 (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\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 (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', 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 = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), 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}, !SUPPORTS_Y);\n","// Parse unit value\r\nexport const numberAndUnit = /^([+-]?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?)([a-z%]*)$/i\r\n\r\n// Parse hex value\r\nexport const hex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i\r\n\r\n// Parse rgb value\r\nexport const rgb = /rgb\\((\\d+),(\\d+),(\\d+)\\)/\r\n\r\n// Parse reference id\r\nexport const reference = /(#[a-z0-9\\-_]+)/i\r\n\r\n// splits a transformation chain\r\nexport const transforms = /\\)\\s*,?\\s*/\r\n\r\n// Whitespace\r\nexport const whitespace = /\\s/g\r\n\r\n// Test hex value\r\nexport const isHex = /^#[a-f0-9]{3,6}$/i\r\n\r\n// Test rgb value\r\nexport const isRgb = /^rgb\\(/\r\n\r\n// Test css declaration\r\nexport const isCss = /[^:]+:[^;]+;?/\r\n\r\n// Test for blank string\r\nexport const isBlank = /^(\\s+)?$/\r\n\r\n// Test for numeric string\r\nexport const isNumber = /^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i\r\n\r\n// Test for percent value\r\nexport const isPercent = /^-?[\\d.]+%$/\r\n\r\n// Test for image url\r\nexport const isImage = /\\.(jpg|jpeg|png|gif|svg)(\\?[^=]+.*)?/i\r\n\r\n// split at whitespace and comma\r\nexport const delimiter = /[\\s,]+/\r\n\r\n// The following regex are used to parse the d attribute of a path\r\n\r\n// Matches all hyphens which are not after an exponent\r\nexport const hyphen = /([^e])-/gi\r\n\r\n// Replaces and tests for all path letters\r\nexport const pathLetters = /[MLHVCSQTAZ]/gi\r\n\r\n// yes we need this one, too\r\nexport const isPathLetter = /[MLHVCSQTAZ]/i\r\n\r\n// matches 0.154.23.45\r\nexport const numbersWithDots = /((\\d?\\.\\d+(?:e[+-]?\\d+)?)((?:\\.\\d+(?:e[+-]?\\d+)?)+))+/gi\r\n\r\n// matches .\r\nexport const dots = /\\./g\r\n","import { delimiter } from '../core/regex.js'\r\nimport { registerMethods } from '../../utils/methods.js'\r\n\r\n// Return array of classes on the node\r\nexport function classes () {\r\n var attr = this.attr('class')\r\n return attr == null ? [] : attr.trim().split(delimiter)\r\n}\r\n\r\n// Return true if class exists on the node, false otherwise\r\nexport function hasClass (name) {\r\n return this.classes().indexOf(name) !== -1\r\n}\r\n\r\n// Add class to the node\r\nexport function addClass (name) {\r\n if (!this.hasClass(name)) {\r\n var array = this.classes()\r\n array.push(name)\r\n this.attr('class', array.join(' '))\r\n }\r\n\r\n return this\r\n}\r\n\r\n// Remove class from the node\r\nexport function removeClass (name) {\r\n if (this.hasClass(name)) {\r\n this.attr('class', this.classes().filter(function (c) {\r\n return c !== name\r\n }).join(' '))\r\n }\r\n\r\n return this\r\n}\r\n\r\n// Toggle the presence of a class on the node\r\nexport function toggleClass (name) {\r\n return this.hasClass(name) ? this.removeClass(name) : this.addClass(name)\r\n}\r\n\r\nregisterMethods('Dom', {\r\n classes, hasClass, addClass, removeClass, toggleClass\r\n})\r\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar sloppyArrayMethod = require('../internals/sloppy-array-method');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\nmodule.exports = sloppyArrayMethod('forEach') ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","import { camelCase } from '../../utils/utils.js'\r\nimport { isBlank } from '../core/regex.js'\r\nimport { registerMethods } from '../../utils/methods.js'\r\n\r\n// Dynamic style generator\r\nexport function css (style, val) {\r\n const ret = {}\r\n if (arguments.length === 0) {\r\n // get full style as object\r\n this.node.style.cssText.split(/\\s*;\\s*/)\r\n .filter(function (el) {\r\n return !!el.length\r\n })\r\n .forEach(function (el) {\r\n const t = el.split(/\\s*:\\s*/)\r\n ret[t[0]] = t[1]\r\n })\r\n return ret\r\n }\r\n\r\n if (arguments.length < 2) {\r\n // get style properties in the array\r\n if (Array.isArray(style)) {\r\n for (const name of style) {\r\n const cased = camelCase(name)\r\n ret[cased] = this.node.style[cased]\r\n }\r\n return ret\r\n }\r\n\r\n // get style for property\r\n if (typeof style === 'string') {\r\n return this.node.style[camelCase(style)]\r\n }\r\n\r\n // set styles in object\r\n if (typeof style === 'object') {\r\n for (const name in style) {\r\n // set empty string if null/undefined/'' was given\r\n this.node.style[camelCase(name)]\r\n = (style[name] == null || isBlank.test(style[name])) ? '' : style[name]\r\n }\r\n }\r\n }\r\n\r\n // set style for property\r\n if (arguments.length === 2) {\r\n this.node.style[camelCase(style)]\r\n = (val == null || isBlank.test(val)) ? '' : val\r\n }\r\n\r\n return this\r\n}\r\n\r\n// Show element\r\nexport function show () {\r\n return this.css('display', '')\r\n}\r\n\r\n// Hide element\r\nexport function hide () {\r\n return this.css('display', 'none')\r\n}\r\n\r\n// Is element visible?\r\nexport function visible () {\r\n return this.css('display') !== 'none'\r\n}\r\n\r\nregisterMethods('Dom', {\r\n css, show, hide, visible\r\n})\r\n","import { registerMethods } from '../../utils/methods.js'\r\n\r\n// Store data values on svg nodes\r\nexport function data (a, v, r) {\r\n if (typeof a === 'object') {\r\n for (v in a) {\r\n this.data(v, a[v])\r\n }\r\n } else if (arguments.length < 2) {\r\n try {\r\n return JSON.parse(this.attr('data-' + a))\r\n } catch (e) {\r\n return this.attr('data-' + a)\r\n }\r\n } else {\r\n this.attr('data-' + a,\r\n v === null ? null\r\n : r === true || typeof v === 'string' || typeof v === 'number' ? v\r\n : JSON.stringify(v)\r\n )\r\n }\r\n\r\n return this\r\n}\r\n\r\nregisterMethods('Dom', { data })\r\n","import { registerMethods } from '../../utils/methods.js'\r\n\r\n// Remember arbitrary data\r\nexport function remember (k, v) {\r\n // remember every item in an object individually\r\n if (typeof arguments[0] === 'object') {\r\n for (var key in k) {\r\n this.remember(key, k[key])\r\n }\r\n } else if (arguments.length === 1) {\r\n // retrieve memory\r\n return this.memory()[k]\r\n } else {\r\n // store memory\r\n this.memory()[k] = v\r\n }\r\n\r\n return this\r\n}\r\n\r\n// Erase a given memory\r\nexport function forget () {\r\n if (arguments.length === 0) {\r\n this._memory = {}\r\n } else {\r\n for (var i = arguments.length - 1; i >= 0; i--) {\r\n delete this.memory()[arguments[i]]\r\n }\r\n }\r\n return this\r\n}\r\n\r\n// This triggers creation of a new hidden class which is not performant\r\n// However, this function is not rarely used so it will not happen frequently\r\n// Return local memory object\r\nexport function memory () {\r\n return (this._memory = this._memory || {})\r\n}\r\n\r\nregisterMethods('Dom', { remember, forget, memory })\r\n","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar sloppyArrayMethod = require('../internals/sloppy-array-method');\n\n// `Array.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: sloppyArrayMethod('reduce') }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","import { delimiter } from './regex.js'\r\nimport { makeInstance } from '../../utils/adopter.js'\r\nimport { globals } from '../../utils/window.js'\r\n\r\nlet listenerId = 0\r\nconst windowEvents = {}\r\n\r\nfunction getEvents (instance) {\r\n let n = instance.getEventHolder()\r\n\r\n // We dont want to save events in global space\r\n if (n === globals.window) n = windowEvents\r\n if (!n.events) n.events = {}\r\n return n.events\r\n}\r\n\r\nfunction getEventTarget (instance) {\r\n return instance.getEventTarget()\r\n}\r\n\r\nfunction clearEvents (instance) {\r\n const n = instance.getEventHolder()\r\n if (n.events) n.events = {}\r\n}\r\n\r\n// Add event binder in the SVG namespace\r\nexport function on (node, events, listener, binding, options) {\r\n var l = listener.bind(binding || node)\r\n var instance = makeInstance(node)\r\n var bag = getEvents(instance)\r\n var n = getEventTarget(instance)\r\n\r\n // events can be an array of events or a string of events\r\n events = Array.isArray(events) ? events : events.split(delimiter)\r\n\r\n // add id to listener\r\n if (!listener._svgjsListenerId) {\r\n listener._svgjsListenerId = ++listenerId\r\n }\r\n\r\n events.forEach(function (event) {\r\n var ev = event.split('.')[0]\r\n var ns = event.split('.')[1] || '*'\r\n\r\n // ensure valid object\r\n bag[ev] = bag[ev] || {}\r\n bag[ev][ns] = bag[ev][ns] || {}\r\n\r\n // reference listener\r\n bag[ev][ns][listener._svgjsListenerId] = l\r\n\r\n // add listener\r\n n.addEventListener(ev, l, options || false)\r\n })\r\n}\r\n\r\n// Add event unbinder in the SVG namespace\r\nexport function off (node, events, listener, options) {\r\n var instance = makeInstance(node)\r\n var bag = getEvents(instance)\r\n var n = getEventTarget(instance)\r\n\r\n // listener can be a function or a number\r\n if (typeof listener === 'function') {\r\n listener = listener._svgjsListenerId\r\n if (!listener) return\r\n }\r\n\r\n // events can be an array of events or a string or undefined\r\n events = Array.isArray(events) ? events : (events || '').split(delimiter)\r\n\r\n events.forEach(function (event) {\r\n var ev = event && event.split('.')[0]\r\n var ns = event && event.split('.')[1]\r\n var namespace, l\r\n\r\n if (listener) {\r\n // remove listener reference\r\n if (bag[ev] && bag[ev][ns || '*']) {\r\n // removeListener\r\n n.removeEventListener(ev, bag[ev][ns || '*'][listener], options || false)\r\n\r\n delete bag[ev][ns || '*'][listener]\r\n }\r\n } else if (ev && ns) {\r\n // remove all listeners for a namespaced event\r\n if (bag[ev] && bag[ev][ns]) {\r\n for (l in bag[ev][ns]) {\r\n off(n, [ ev, ns ].join('.'), l)\r\n }\r\n\r\n delete bag[ev][ns]\r\n }\r\n } else if (ns) {\r\n // remove all listeners for a specific namespace\r\n for (event in bag) {\r\n for (namespace in bag[event]) {\r\n if (ns === namespace) {\r\n off(n, [ event, ns ].join('.'))\r\n }\r\n }\r\n }\r\n } else if (ev) {\r\n // remove all listeners for the event\r\n if (bag[ev]) {\r\n for (namespace in bag[ev]) {\r\n off(n, [ ev, namespace ].join('.'))\r\n }\r\n\r\n delete bag[ev]\r\n }\r\n } else {\r\n // remove all listeners on a given node\r\n for (event in bag) {\r\n off(n, event)\r\n }\r\n\r\n clearEvents(instance)\r\n }\r\n })\r\n}\r\n\r\nexport function dispatch (node, event, data) {\r\n var n = getEventTarget(node)\r\n\r\n // Dispatch event\r\n if (event instanceof globals.window.Event) {\r\n n.dispatchEvent(event)\r\n } else {\r\n event = new globals.window.CustomEvent(event, { detail: data, cancelable: true })\r\n n.dispatchEvent(event)\r\n }\r\n return event\r\n}\r\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/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.github.io/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n concat: function concat(arg) { // eslint-disable-line no-unused-vars\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 $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\n// `Array.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !arrayMethodHasSpeciesSupport('map') }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var redefine = require('../internals/redefine');\n\nvar DatePrototype = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar nativeDateToString = DatePrototype[TO_STRING];\nvar getTime = DatePrototype.getTime;\n\n// `Date.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-date.prototype.tostring\nif (new Date(NaN) + '' != INVALID_DATE) {\n redefine(DatePrototype, TO_STRING, function toString() {\n var value = getTime.call(this);\n // eslint-disable-next-line no-self-compare\n return value === value ? nativeDateToString.call(this) : INVALID_DATE;\n });\n}\n","var global = require('../internals/global');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar nativeParseInt = global.parseInt;\nvar hex = /^[+-]?0[Xx]/;\nvar FORCED = nativeParseInt(whitespaces + '08') !== 8 || nativeParseInt(whitespaces + '0x16') !== 22;\n\n// `parseInt` method\n// https://tc39.github.io/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(String(string));\n return nativeParseInt(S, (radix >>> 0) || (hex.test(S) ? 16 : 10));\n} : nativeParseInt;\n","var $ = require('../internals/export');\nvar parseIntImplementation = require('../internals/parse-int');\n\n// `parseInt` method\n// https://tc39.github.io/ecma262/#sec-parseint-string-radix\n$({ global: true, forced: parseInt != parseIntImplementation }, {\n parseInt: parseIntImplementation\n});\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\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.github.io/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 = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","\r\nimport { hex, isHex, isRgb, rgb, whitespace } from '../modules/core/regex.js'\r\n\r\nfunction sixDigitHex (hex) {\r\n return hex.length === 4\r\n ? [ '#',\r\n hex.substring(1, 2), hex.substring(1, 2),\r\n hex.substring(2, 3), hex.substring(2, 3),\r\n hex.substring(3, 4), hex.substring(3, 4)\r\n ].join('')\r\n : hex\r\n}\r\n\r\nfunction componentHex (component) {\r\n const integer = Math.round(component)\r\n const bounded = Math.max(0, Math.min(255, integer))\r\n const hex = bounded.toString(16)\r\n return hex.length === 1 ? '0' + hex : hex\r\n}\r\n\r\nfunction is (object, space) {\r\n for (let i = space.length; i--;) {\r\n if (object[space[i]] == null) {\r\n return false\r\n }\r\n }\r\n return true\r\n}\r\n\r\nfunction getParameters (a, b) {\r\n const params = is(a, 'rgb') ? { _a: a.r, _b: a.g, _c: a.b, space: 'rgb' }\r\n : is(a, 'xyz') ? { _a: a.x, _b: a.y, _c: a.z, _d: 0, space: 'xyz' }\r\n : is(a, 'hsl') ? { _a: a.h, _b: a.s, _c: a.l, _d: 0, space: 'hsl' }\r\n : is(a, 'lab') ? { _a: a.l, _b: a.a, _c: a.b, _d: 0, space: 'lab' }\r\n : is(a, 'lch') ? { _a: a.l, _b: a.c, _c: a.h, _d: 0, space: 'lch' }\r\n : is(a, 'cmyk') ? { _a: a.c, _b: a.m, _c: a.y, _d: a.k, space: 'cmyk' }\r\n : { _a: 0, _b: 0, _c: 0, space: 'rgb' }\r\n\r\n params.space = b || params.space\r\n return params\r\n}\r\n\r\nfunction cieSpace (space) {\r\n if (space === 'lab' || space === 'xyz' || space === 'lch') {\r\n return true\r\n } else {\r\n return false\r\n }\r\n}\r\n\r\nfunction hueToRgb (p, q, t) {\r\n if (t < 0) t += 1\r\n if (t > 1) t -= 1\r\n if (t < 1 / 6) return p + (q - p) * 6 * t\r\n if (t < 1 / 2) return q\r\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6\r\n return p\r\n}\r\n\r\nexport default class Color {\r\n constructor (...inputs) {\r\n this.init(...inputs)\r\n }\r\n\r\n init (a = 0, b = 0, c = 0, d = 0, space = 'rgb') {\r\n // This catches the case when a falsy value is passed like ''\r\n a = !a ? 0 : a\r\n\r\n // Reset all values in case the init function is rerun with new color space\r\n if (this.space) {\r\n for (const component in this.space) {\r\n delete this[this.space[component]]\r\n }\r\n }\r\n\r\n if (typeof a === 'number') {\r\n // Allow for the case that we don't need d...\r\n space = typeof d === 'string' ? d : space\r\n d = typeof d === 'string' ? 0 : d\r\n\r\n // Assign the values straight to the color\r\n Object.assign(this, { _a: a, _b: b, _c: c, _d: d, space })\r\n // If the user gave us an array, make the color from it\r\n } else if (a instanceof Array) {\r\n this.space = b || (typeof a[3] === 'string' ? a[3] : a[4]) || 'rgb'\r\n Object.assign(this, { _a: a[0], _b: a[1], _c: a[2], _d: a[3] || 0 })\r\n } else if (a instanceof Object) {\r\n // Set the object up and assign its values directly\r\n const values = getParameters(a, b)\r\n Object.assign(this, values)\r\n } else if (typeof a === 'string') {\r\n if (isRgb.test(a)) {\r\n const noWhitespace = a.replace(whitespace, '')\r\n const [ _a, _b, _c ] = rgb.exec(noWhitespace)\r\n .slice(1, 4).map(v => parseInt(v))\r\n Object.assign(this, { _a, _b, _c, _d: 0, space: 'rgb' })\r\n } else if (isHex.test(a)) {\r\n const hexParse = v => parseInt(v, 16)\r\n const [ , _a, _b, _c ] = hex.exec(sixDigitHex(a)).map(hexParse)\r\n Object.assign(this, { _a, _b, _c, _d: 0, space: 'rgb' })\r\n } else throw Error('Unsupported string format, can\\'t construct Color')\r\n }\r\n\r\n // Now add the components as a convenience\r\n const { _a, _b, _c, _d } = this\r\n const components = this.space === 'rgb' ? { r: _a, g: _b, b: _c }\r\n : this.space === 'xyz' ? { x: _a, y: _b, z: _c }\r\n : this.space === 'hsl' ? { h: _a, s: _b, l: _c }\r\n : this.space === 'lab' ? { l: _a, a: _b, b: _c }\r\n : this.space === 'lch' ? { l: _a, c: _b, h: _c }\r\n : this.space === 'cmyk' ? { c: _a, m: _b, y: _c, k: _d }\r\n : {}\r\n Object.assign(this, components)\r\n }\r\n\r\n /*\r\n Conversion Methods\r\n */\r\n\r\n rgb () {\r\n if (this.space === 'rgb') {\r\n return this\r\n } else if (cieSpace(this.space)) {\r\n // Convert to the xyz color space\r\n let { x, y, z } = this\r\n if (this.space === 'lab' || this.space === 'lch') {\r\n // Get the values in the lab space\r\n let { l, a, b } = this\r\n if (this.space === 'lch') {\r\n const { c, h } = this\r\n const dToR = Math.PI / 180\r\n a = c * Math.cos(dToR * h)\r\n b = c * Math.sin(dToR * h)\r\n }\r\n\r\n // Undo the nonlinear function\r\n const yL = (l + 16) / 116\r\n const xL = a / 500 + yL\r\n const zL = yL - b / 200\r\n\r\n // Get the xyz values\r\n const ct = 16 / 116\r\n const mx = 0.008856\r\n const nm = 7.787\r\n x = 0.95047 * ((xL ** 3 > mx) ? xL ** 3 : (xL - ct) / nm)\r\n y = 1.00000 * ((yL ** 3 > mx) ? yL ** 3 : (yL - ct) / nm)\r\n z = 1.08883 * ((zL ** 3 > mx) ? zL ** 3 : (zL - ct) / nm)\r\n }\r\n\r\n // Convert xyz to unbounded rgb values\r\n const rU = x * 3.2406 + y * -1.5372 + z * -0.4986\r\n const gU = x * -0.9689 + y * 1.8758 + z * 0.0415\r\n const bU = x * 0.0557 + y * -0.2040 + z * 1.0570\r\n\r\n // Convert the values to true rgb values\r\n const pow = Math.pow\r\n const bd = 0.0031308\r\n const r = (rU > bd) ? (1.055 * pow(rU, 1 / 2.4) - 0.055) : 12.92 * rU\r\n const g = (gU > bd) ? (1.055 * pow(gU, 1 / 2.4) - 0.055) : 12.92 * gU\r\n const b = (bU > bd) ? (1.055 * pow(bU, 1 / 2.4) - 0.055) : 12.92 * bU\r\n\r\n // Make and return the color\r\n const color = new Color(255 * r, 255 * g, 255 * b)\r\n return color\r\n } else if (this.space === 'hsl') {\r\n // https://bgrins.github.io/TinyColor/docs/tinycolor.html\r\n // Get the current hsl values\r\n let { h, s, l } = this\r\n h /= 360\r\n s /= 100\r\n l /= 100\r\n\r\n // If we are grey, then just make the color directly\r\n if (s === 0) {\r\n l *= 255\r\n const color = new Color(l, l, l)\r\n return color\r\n }\r\n\r\n // TODO I have no idea what this does :D If you figure it out, tell me!\r\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s\r\n const p = 2 * l - q\r\n\r\n // Get the rgb values\r\n const r = 255 * hueToRgb(p, q, h + 1 / 3)\r\n const g = 255 * hueToRgb(p, q, h)\r\n const b = 255 * hueToRgb(p, q, h - 1 / 3)\r\n\r\n // Make a new color\r\n const color = new Color(r, g, b)\r\n return color\r\n } else if (this.space === 'cmyk') {\r\n // https://gist.github.com/felipesabino/5066336\r\n // Get the normalised cmyk values\r\n const { c, m, y, k } = this\r\n\r\n // Get the rgb values\r\n const r = 255 * (1 - Math.min(1, c * (1 - k) + k))\r\n const g = 255 * (1 - Math.min(1, m * (1 - k) + k))\r\n const b = 255 * (1 - Math.min(1, y * (1 - k) + k))\r\n\r\n // Form the color and return it\r\n const color = new Color(r, g, b)\r\n return color\r\n } else {\r\n return this\r\n }\r\n }\r\n\r\n lab () {\r\n // Get the xyz color\r\n const { x, y, z } = this.xyz()\r\n\r\n // Get the lab components\r\n const l = (116 * y) - 16\r\n const a = 500 * (x - y)\r\n const b = 200 * (y - z)\r\n\r\n // Construct and return a new color\r\n const color = new Color(l, a, b, 'lab')\r\n return color\r\n }\r\n\r\n xyz () {\r\n\r\n // Normalise the red, green and blue values\r\n const { _a: r255, _b: g255, _c: b255 } = this.rgb()\r\n const [ r, g, b ] = [ r255, g255, b255 ].map(v => v / 255)\r\n\r\n // Convert to the lab rgb space\r\n const rL = (r > 0.04045) ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92\r\n const gL = (g > 0.04045) ? Math.pow((g + 0.055) / 1.055, 2.4) : g / 12.92\r\n const bL = (b > 0.04045) ? Math.pow((b + 0.055) / 1.055, 2.4) : b / 12.92\r\n\r\n // Convert to the xyz color space without bounding the values\r\n const xU = (rL * 0.4124 + gL * 0.3576 + bL * 0.1805) / 0.95047\r\n const yU = (rL * 0.2126 + gL * 0.7152 + bL * 0.0722) / 1.00000\r\n const zU = (rL * 0.0193 + gL * 0.1192 + bL * 0.9505) / 1.08883\r\n\r\n // Get the proper xyz values by applying the bounding\r\n const x = (xU > 0.008856) ? Math.pow(xU, 1 / 3) : (7.787 * xU) + 16 / 116\r\n const y = (yU > 0.008856) ? Math.pow(yU, 1 / 3) : (7.787 * yU) + 16 / 116\r\n const z = (zU > 0.008856) ? Math.pow(zU, 1 / 3) : (7.787 * zU) + 16 / 116\r\n\r\n // Make and return the color\r\n const color = new Color(x, y, z, 'xyz')\r\n return color\r\n }\r\n\r\n lch () {\r\n\r\n // Get the lab color directly\r\n const { l, a, b } = this.lab()\r\n\r\n // Get the chromaticity and the hue using polar coordinates\r\n const c = Math.sqrt(a ** 2 + b ** 2)\r\n let h = 180 * Math.atan2(b, a) / Math.PI\r\n if (h < 0) {\r\n h *= -1\r\n h = 360 - h\r\n }\r\n\r\n // Make a new color and return it\r\n const color = new Color(l, c, h, 'lch')\r\n return color\r\n }\r\n\r\n hsl () {\r\n\r\n // Get the rgb values\r\n const { _a, _b, _c } = this.rgb()\r\n const [ r, g, b ] = [ _a, _b, _c ].map(v => v / 255)\r\n\r\n // Find the maximum and minimum values to get the lightness\r\n const max = Math.max(r, g, b)\r\n const min = Math.min(r, g, b)\r\n const l = (max + min) / 2\r\n\r\n // If the r, g, v values are identical then we are grey\r\n const isGrey = max === min\r\n\r\n // Calculate the hue and saturation\r\n const delta = max - min\r\n const s = isGrey ? 0\r\n : l > 0.5 ? delta / (2 - max - min)\r\n : delta / (max + min)\r\n const h = isGrey ? 0\r\n : max === r ? ((g - b) / delta + (g < b ? 6 : 0)) / 6\r\n : max === g ? ((b - r) / delta + 2) / 6\r\n : max === b ? ((r - g) / delta + 4) / 6\r\n : 0\r\n\r\n // Construct and return the new color\r\n const color = new Color(360 * h, 100 * s, 100 * l, 'hsl')\r\n return color\r\n }\r\n\r\n cmyk () {\r\n\r\n // Get the rgb values for the current color\r\n const { _a, _b, _c } = this.rgb()\r\n const [ r, g, b ] = [ _a, _b, _c ].map(v => v / 255)\r\n\r\n // Get the cmyk values in an unbounded format\r\n const k = Math.min(1 - r, 1 - g, 1 - b)\r\n\r\n if (k === 1) {\r\n // Catch the black case\r\n return new Color(0, 0, 0, 1, 'cmyk')\r\n }\r\n\r\n const c = (1 - r - k) / (1 - k)\r\n const m = (1 - g - k) / (1 - k)\r\n const y = (1 - b - k) / (1 - k)\r\n\r\n // Construct the new color\r\n const color = new Color(c, m, y, k, 'cmyk')\r\n return color\r\n }\r\n\r\n /*\r\n Input and Output methods\r\n */\r\n\r\n _clamped () {\r\n const { _a, _b, _c } = this.rgb()\r\n const { max, min, round } = Math\r\n const format = v => max(0, min(round(v), 255))\r\n return [ _a, _b, _c ].map(format)\r\n }\r\n\r\n toHex () {\r\n const [ r, g, b ] = this._clamped().map(componentHex)\r\n return `#${r}${g}${b}`\r\n }\r\n\r\n toString () {\r\n return this.toHex()\r\n }\r\n\r\n toRgb () {\r\n const [ rV, gV, bV ] = this._clamped()\r\n const string = `rgb(${rV},${gV},${bV})`\r\n return string\r\n }\r\n\r\n toArray () {\r\n const { _a, _b, _c, _d, space } = this\r\n return [ _a, _b, _c, _d, space ]\r\n }\r\n\r\n /*\r\n Generating random colors\r\n */\r\n\r\n static random (mode = 'vibrant', t, u) {\r\n\r\n // Get the math modules\r\n const { random, round, sin, PI: pi } = Math\r\n\r\n // Run the correct generator\r\n if (mode === 'vibrant') {\r\n\r\n const l = (81 - 57) * random() + 57\r\n const c = (83 - 45) * random() + 45\r\n const h = 360 * random()\r\n const color = new Color(l, c, h, 'lch')\r\n return color\r\n\r\n } else if (mode === 'sine') {\r\n\r\n t = t == null ? random() : t\r\n const r = round(80 * sin(2 * pi * t / 0.5 + 0.01) + 150)\r\n const g = round(50 * sin(2 * pi * t / 0.5 + 4.6) + 200)\r\n const b = round(100 * sin(2 * pi * t / 0.5 + 2.3) + 150)\r\n const color = new Color(r, g, b)\r\n return color\r\n\r\n } else if (mode === 'pastel') {\r\n\r\n const l = (94 - 86) * random() + 86\r\n const c = (26 - 9) * random() + 9\r\n const h = 360 * random()\r\n const color = new Color(l, c, h, 'lch')\r\n return color\r\n\r\n } else if (mode === 'dark') {\r\n\r\n const l = 10 + 10 * random()\r\n const c = (125 - 75) * random() + 86\r\n const h = 360 * random()\r\n const color = new Color(l, c, h, 'lch')\r\n return color\r\n\r\n } else if (mode === 'rgb') {\r\n\r\n const r = 255 * random()\r\n const g = 255 * random()\r\n const b = 255 * random()\r\n const color = new Color(r, g, b)\r\n return color\r\n\r\n } else if (mode === 'lab') {\r\n\r\n const l = 100 * random()\r\n const a = 256 * random() - 128\r\n const b = 256 * random() - 128\r\n const color = new Color(l, a, b, 'lab')\r\n return color\r\n\r\n } else if (mode === 'grey') {\r\n\r\n const grey = 255 * random()\r\n const color = new Color(grey, grey, grey)\r\n return color\r\n\r\n }\r\n }\r\n\r\n /*\r\n Constructing colors\r\n */\r\n\r\n // Test if given value is a color string\r\n static test (color) {\r\n return (typeof color === 'string')\r\n && (isHex.test(color) || isRgb.test(color))\r\n }\r\n\r\n // Test if given value is an rgb object\r\n static isRgb (color) {\r\n return color && typeof color.r === 'number'\r\n && typeof color.g === 'number'\r\n && typeof color.b === 'number'\r\n }\r\n\r\n // Test if given value is a color\r\n static isColor (color) {\r\n return color && (\r\n color instanceof Color\r\n || this.isRgb(color)\r\n || this.test(color)\r\n )\r\n }\r\n}\r\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative(nativeMatch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","import superPropBase from \"./superPropBase\";\nexport default function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.github.io/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.github.io/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","var global = require('../internals/global');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar nativeParseFloat = global.parseFloat;\nvar FORCED = 1 / nativeParseFloat(whitespaces + '-0') !== -Infinity;\n\n// `parseFloat` method\n// https://tc39.github.io/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n var trimmedString = trim(String(string));\n var result = nativeParseFloat(trimmedString);\n return result === 0 && trimmedString.charAt(0) == '-' ? -0 : result;\n} : nativeParseFloat;\n","var $ = require('../internals/export');\nvar parseFloatImplementation = require('../internals/parse-float');\n\n// `parseFloat` method\n// https://tc39.github.io/ecma262/#sec-parsefloat-string\n$({ global: true, forced: parseFloat != parseFloatImplementation }, {\n parseFloat: parseFloatImplementation\n});\n","import Matrix from './Matrix.js'\r\n\r\nexport default class Point {\r\n // Initialize\r\n constructor (...args) {\r\n this.init(...args)\r\n }\r\n\r\n init (x, y) {\r\n const base = { x: 0, y: 0 }\r\n\r\n // ensure source as object\r\n const source = Array.isArray(x) ? { x: x[0], y: x[1] }\r\n : typeof x === 'object' ? { x: x.x, y: x.y }\r\n : { x: x, y: y }\r\n\r\n // merge source\r\n this.x = source.x == null ? base.x : source.x\r\n this.y = source.y == null ? base.y : source.y\r\n\r\n return this\r\n }\r\n\r\n // Clone point\r\n clone () {\r\n return new Point(this)\r\n }\r\n\r\n transform (m) {\r\n return this.clone().transformO(m)\r\n }\r\n\r\n // Transform point with matrix\r\n transformO (m) {\r\n if (!Matrix.isMatrixLike(m)) {\r\n m = new Matrix(m)\r\n }\r\n\r\n const { x, y } = this\r\n\r\n // Perform the matrix multiplication\r\n this.x = m.a * x + m.c * y + m.e\r\n this.y = m.b * x + m.d * y + m.f\r\n\r\n return this\r\n }\r\n\r\n toArray () {\r\n return [ this.x, this.y ]\r\n }\r\n}\r\n\r\nexport function point (x, y) {\r\n return new Point(x, y).transform(this.screenCTM().inverse())\r\n}\r\n","import { delimiter } from '../modules/core/regex.js'\r\nimport { radians } from '../utils/utils.js'\r\nimport { register } from '../utils/adopter.js'\r\nimport Element from '../elements/Element.js'\r\nimport Point from './Point.js'\r\n\r\nfunction closeEnough (a, b, threshold) {\r\n return Math.abs(b - a) < (threshold || 1e-6)\r\n}\r\n\r\nexport default class Matrix {\r\n constructor (...args) {\r\n this.init(...args)\r\n }\r\n\r\n // Initialize\r\n init (source) {\r\n var base = Matrix.fromArray([ 1, 0, 0, 1, 0, 0 ])\r\n\r\n // ensure source as object\r\n source = source instanceof Element ? source.matrixify()\r\n : typeof source === 'string' ? Matrix.fromArray(source.split(delimiter).map(parseFloat))\r\n : Array.isArray(source) ? Matrix.fromArray(source)\r\n : (typeof source === 'object' && Matrix.isMatrixLike(source)) ? source\r\n : (typeof source === 'object') ? new Matrix().transform(source)\r\n : arguments.length === 6 ? Matrix.fromArray([].slice.call(arguments))\r\n : base\r\n\r\n // Merge the source matrix with the base matrix\r\n this.a = source.a != null ? source.a : base.a\r\n this.b = source.b != null ? source.b : base.b\r\n this.c = source.c != null ? source.c : base.c\r\n this.d = source.d != null ? source.d : base.d\r\n this.e = source.e != null ? source.e : base.e\r\n this.f = source.f != null ? source.f : base.f\r\n\r\n return this\r\n }\r\n\r\n // Clones this matrix\r\n clone () {\r\n return new Matrix(this)\r\n }\r\n\r\n // Transform a matrix into another matrix by manipulating the space\r\n transform (o) {\r\n // Check if o is a matrix and then left multiply it directly\r\n if (Matrix.isMatrixLike(o)) {\r\n var matrix = new Matrix(o)\r\n return matrix.multiplyO(this)\r\n }\r\n\r\n // Get the proposed transformations and the current transformations\r\n var t = Matrix.formatTransforms(o)\r\n var current = this\r\n const { x: ox, y: oy } = new Point(t.ox, t.oy).transform(current)\r\n\r\n // Construct the resulting matrix\r\n var transformer = new Matrix()\r\n .translateO(t.rx, t.ry)\r\n .lmultiplyO(current)\r\n .translateO(-ox, -oy)\r\n .scaleO(t.scaleX, t.scaleY)\r\n .skewO(t.skewX, t.skewY)\r\n .shearO(t.shear)\r\n .rotateO(t.theta)\r\n .translateO(ox, oy)\r\n\r\n // If we want the origin at a particular place, we force it there\r\n if (isFinite(t.px) || isFinite(t.py)) {\r\n const origin = new Point(ox, oy).transform(transformer)\r\n // TODO: Replace t.px with isFinite(t.px)\r\n const dx = t.px ? t.px - origin.x : 0\r\n const dy = t.py ? t.py - origin.y : 0\r\n transformer.translateO(dx, dy)\r\n }\r\n\r\n // Translate now after positioning\r\n transformer.translateO(t.tx, t.ty)\r\n return transformer\r\n }\r\n\r\n // Applies a matrix defined by its affine parameters\r\n compose (o) {\r\n if (o.origin) {\r\n o.originX = o.origin[0]\r\n o.originY = o.origin[1]\r\n }\r\n // Get the parameters\r\n var ox = o.originX || 0\r\n var oy = o.originY || 0\r\n var sx = o.scaleX || 1\r\n var sy = o.scaleY || 1\r\n var lam = o.shear || 0\r\n var theta = o.rotate || 0\r\n var tx = o.translateX || 0\r\n var ty = o.translateY || 0\r\n\r\n // Apply the standard matrix\r\n var result = new Matrix()\r\n .translateO(-ox, -oy)\r\n .scaleO(sx, sy)\r\n .shearO(lam)\r\n .rotateO(theta)\r\n .translateO(tx, ty)\r\n .lmultiplyO(this)\r\n .translateO(ox, oy)\r\n return result\r\n }\r\n\r\n // Decomposes this matrix into its affine parameters\r\n decompose (cx = 0, cy = 0) {\r\n // Get the parameters from the matrix\r\n var a = this.a\r\n var b = this.b\r\n var c = this.c\r\n var d = this.d\r\n var e = this.e\r\n var f = this.f\r\n\r\n // Figure out if the winding direction is clockwise or counterclockwise\r\n var determinant = a * d - b * c\r\n var ccw = determinant > 0 ? 1 : -1\r\n\r\n // Since we only shear in x, we can use the x basis to get the x scale\r\n // and the rotation of the resulting matrix\r\n var sx = ccw * Math.sqrt(a * a + b * b)\r\n var thetaRad = Math.atan2(ccw * b, ccw * a)\r\n var theta = 180 / Math.PI * thetaRad\r\n var ct = Math.cos(thetaRad)\r\n var st = Math.sin(thetaRad)\r\n\r\n // We can then solve the y basis vector simultaneously to get the other\r\n // two affine parameters directly from these parameters\r\n var lam = (a * c + b * d) / determinant\r\n var sy = ((c * sx) / (lam * a - b)) || ((d * sx) / (lam * b + a))\r\n\r\n // Use the translations\r\n const tx = e - cx + cx * ct * sx + cy * (lam * ct * sx - st * sy)\r\n const ty = f - cy + cx * st * sx + cy * (lam * st * sx + ct * sy)\r\n\r\n // Construct the decomposition and return it\r\n return {\r\n // Return the affine parameters\r\n scaleX: sx,\r\n scaleY: sy,\r\n shear: lam,\r\n rotate: theta,\r\n translateX: tx,\r\n translateY: ty,\r\n originX: cx,\r\n originY: cy,\r\n\r\n // Return the matrix parameters\r\n a: this.a,\r\n b: this.b,\r\n c: this.c,\r\n d: this.d,\r\n e: this.e,\r\n f: this.f\r\n }\r\n }\r\n\r\n // Left multiplies by the given matrix\r\n multiply (matrix) {\r\n return this.clone().multiplyO(matrix)\r\n }\r\n\r\n multiplyO (matrix) {\r\n // Get the matrices\r\n var l = this\r\n var r = matrix instanceof Matrix\r\n ? matrix\r\n : new Matrix(matrix)\r\n\r\n return Matrix.matrixMultiply(l, r, this)\r\n }\r\n\r\n lmultiply (matrix) {\r\n return this.clone().lmultiplyO(matrix)\r\n }\r\n\r\n lmultiplyO (matrix) {\r\n var r = this\r\n var l = matrix instanceof Matrix\r\n ? matrix\r\n : new Matrix(matrix)\r\n\r\n return Matrix.matrixMultiply(l, r, this)\r\n }\r\n\r\n // Inverses matrix\r\n inverseO () {\r\n // Get the current parameters out of the matrix\r\n var a = this.a\r\n var b = this.b\r\n var c = this.c\r\n var d = this.d\r\n var e = this.e\r\n var f = this.f\r\n\r\n // Invert the 2x2 matrix in the top left\r\n var det = a * d - b * c\r\n if (!det) throw new Error('Cannot invert ' + this)\r\n\r\n // Calculate the top 2x2 matrix\r\n var na = d / det\r\n var nb = -b / det\r\n var nc = -c / det\r\n var nd = a / det\r\n\r\n // Apply the inverted matrix to the top right\r\n var ne = -(na * e + nc * f)\r\n var nf = -(nb * e + nd * f)\r\n\r\n // Construct the inverted matrix\r\n this.a = na\r\n this.b = nb\r\n this.c = nc\r\n this.d = nd\r\n this.e = ne\r\n this.f = nf\r\n\r\n return this\r\n }\r\n\r\n inverse () {\r\n return this.clone().inverseO()\r\n }\r\n\r\n // Translate matrix\r\n translate (x, y) {\r\n return this.clone().translateO(x, y)\r\n }\r\n\r\n translateO (x, y) {\r\n this.e += x || 0\r\n this.f += y || 0\r\n return this\r\n }\r\n\r\n // Scale matrix\r\n scale (x, y, cx, cy) {\r\n return this.clone().scaleO(...arguments)\r\n }\r\n\r\n scaleO (x, y = x, cx = 0, cy = 0) {\r\n // Support uniform scaling\r\n if (arguments.length === 3) {\r\n cy = cx\r\n cx = y\r\n y = x\r\n }\r\n\r\n const { a, b, c, d, e, f } = this\r\n\r\n this.a = a * x\r\n this.b = b * y\r\n this.c = c * x\r\n this.d = d * y\r\n this.e = e * x - cx * x + cx\r\n this.f = f * y - cy * y + cy\r\n\r\n return this\r\n }\r\n\r\n // Rotate matrix\r\n rotate (r, cx, cy) {\r\n return this.clone().rotateO(r, cx, cy)\r\n }\r\n\r\n rotateO (r, cx = 0, cy = 0) {\r\n // Convert degrees to radians\r\n r = radians(r)\r\n\r\n const cos = Math.cos(r)\r\n const sin = Math.sin(r)\r\n\r\n const { a, b, c, d, e, f } = this\r\n\r\n this.a = a * cos - b * sin\r\n this.b = b * cos + a * sin\r\n this.c = c * cos - d * sin\r\n this.d = d * cos + c * sin\r\n this.e = e * cos - f * sin + cy * sin - cx * cos + cx\r\n this.f = f * cos + e * sin - cx * sin - cy * cos + cy\r\n\r\n return this\r\n }\r\n\r\n // Flip matrix on x or y, at a given offset\r\n flip (axis, around) {\r\n return this.clone().flipO(axis, around)\r\n }\r\n\r\n flipO (axis, around) {\r\n return axis === 'x' ? this.scaleO(-1, 1, around, 0)\r\n : axis === 'y' ? this.scaleO(1, -1, 0, around)\r\n : this.scaleO(-1, -1, axis, around || axis) // Define an x, y flip point\r\n }\r\n\r\n // Shear matrix\r\n shear (a, cx, cy) {\r\n return this.clone().shearO(a, cx, cy)\r\n }\r\n\r\n shearO (lx, cx = 0, cy = 0) {\r\n const { a, b, c, d, e, f } = this\r\n\r\n this.a = a + b * lx\r\n this.c = c + d * lx\r\n this.e = e + f * lx - cy * lx\r\n\r\n return this\r\n }\r\n\r\n // Skew Matrix\r\n skew (x, y, cx, cy) {\r\n return this.clone().skewO(...arguments)\r\n }\r\n\r\n skewO (x, y = x, cx = 0, cy = 0) {\r\n // support uniformal skew\r\n if (arguments.length === 3) {\r\n cy = cx\r\n cx = y\r\n y = x\r\n }\r\n\r\n // Convert degrees to radians\r\n x = radians(x)\r\n y = radians(y)\r\n\r\n const lx = Math.tan(x)\r\n const ly = Math.tan(y)\r\n\r\n const { a, b, c, d, e, f } = this\r\n\r\n this.a = a + b * lx\r\n this.b = b + a * ly\r\n this.c = c + d * lx\r\n this.d = d + c * ly\r\n this.e = e + f * lx - cy * lx\r\n this.f = f + e * ly - cx * ly\r\n\r\n return this\r\n }\r\n\r\n // SkewX\r\n skewX (x, cx, cy) {\r\n return this.skew(x, 0, cx, cy)\r\n }\r\n\r\n skewXO (x, cx, cy) {\r\n return this.skewO(x, 0, cx, cy)\r\n }\r\n\r\n // SkewY\r\n skewY (y, cx, cy) {\r\n return this.skew(0, y, cx, cy)\r\n }\r\n\r\n skewYO (y, cx, cy) {\r\n return this.skewO(0, y, cx, cy)\r\n }\r\n\r\n // Transform around a center point\r\n aroundO (cx, cy, matrix) {\r\n var dx = cx || 0\r\n var dy = cy || 0\r\n return this.translateO(-dx, -dy).lmultiplyO(matrix).translateO(dx, dy)\r\n }\r\n\r\n around (cx, cy, matrix) {\r\n return this.clone().aroundO(cx, cy, matrix)\r\n }\r\n\r\n // Check if two matrices are equal\r\n equals (other) {\r\n var comp = new Matrix(other)\r\n return closeEnough(this.a, comp.a) && closeEnough(this.b, comp.b)\r\n && closeEnough(this.c, comp.c) && closeEnough(this.d, comp.d)\r\n && closeEnough(this.e, comp.e) && closeEnough(this.f, comp.f)\r\n }\r\n\r\n // Convert matrix to string\r\n toString () {\r\n return 'matrix(' + this.a + ',' + this.b + ',' + this.c + ',' + this.d + ',' + this.e + ',' + this.f + ')'\r\n }\r\n\r\n toArray () {\r\n return [ this.a, this.b, this.c, this.d, this.e, this.f ]\r\n }\r\n\r\n valueOf () {\r\n return {\r\n a: this.a,\r\n b: this.b,\r\n c: this.c,\r\n d: this.d,\r\n e: this.e,\r\n f: this.f\r\n }\r\n }\r\n\r\n static fromArray (a) {\r\n return { a: a[0], b: a[1], c: a[2], d: a[3], e: a[4], f: a[5] }\r\n }\r\n\r\n static isMatrixLike (o) {\r\n return (\r\n o.a != null\r\n || o.b != null\r\n || o.c != null\r\n || o.d != null\r\n || o.e != null\r\n || o.f != null\r\n )\r\n }\r\n\r\n static formatTransforms (o) {\r\n // Get all of the parameters required to form the matrix\r\n var flipBoth = o.flip === 'both' || o.flip === true\r\n var flipX = o.flip && (flipBoth || o.flip === 'x') ? -1 : 1\r\n var flipY = o.flip && (flipBoth || o.flip === 'y') ? -1 : 1\r\n var skewX = o.skew && o.skew.length ? o.skew[0]\r\n : isFinite(o.skew) ? o.skew\r\n : isFinite(o.skewX) ? o.skewX\r\n : 0\r\n var skewY = o.skew && o.skew.length ? o.skew[1]\r\n : isFinite(o.skew) ? o.skew\r\n : isFinite(o.skewY) ? o.skewY\r\n : 0\r\n var scaleX = o.scale && o.scale.length ? o.scale[0] * flipX\r\n : isFinite(o.scale) ? o.scale * flipX\r\n : isFinite(o.scaleX) ? o.scaleX * flipX\r\n : flipX\r\n var scaleY = o.scale && o.scale.length ? o.scale[1] * flipY\r\n : isFinite(o.scale) ? o.scale * flipY\r\n : isFinite(o.scaleY) ? o.scaleY * flipY\r\n : flipY\r\n var shear = o.shear || 0\r\n var theta = o.rotate || o.theta || 0\r\n var origin = new Point(o.origin || o.around || o.ox || o.originX, o.oy || o.originY)\r\n var ox = origin.x\r\n var oy = origin.y\r\n var position = new Point(o.position || o.px || o.positionX, o.py || o.positionY)\r\n var px = position.x\r\n var py = position.y\r\n var translate = new Point(o.translate || o.tx || o.translateX, o.ty || o.translateY)\r\n var tx = translate.x\r\n var ty = translate.y\r\n var relative = new Point(o.relative || o.rx || o.relativeX, o.ry || o.relativeY)\r\n var rx = relative.x\r\n var ry = relative.y\r\n\r\n // Populate all of the values\r\n return {\r\n scaleX, scaleY, skewX, skewY, shear, theta, rx, ry, tx, ty, ox, oy, px, py\r\n }\r\n }\r\n\r\n // left matrix, right matrix, target matrix which is overwritten\r\n static matrixMultiply (l, r, o) {\r\n // Work out the product directly\r\n var a = l.a * r.a + l.c * r.b\r\n var b = l.b * r.a + l.d * r.b\r\n var c = l.a * r.c + l.c * r.d\r\n var d = l.b * r.c + l.d * r.d\r\n var e = l.e + l.a * r.e + l.c * r.f\r\n var f = l.f + l.b * r.e + l.d * r.f\r\n\r\n // make sure to use local variables because l/r and o could be the same\r\n o.a = a\r\n o.b = b\r\n o.c = c\r\n o.d = d\r\n o.e = e\r\n o.f = f\r\n\r\n return o\r\n }\r\n}\r\n\r\nexport function ctm () {\r\n return new Matrix(this.node.getCTM())\r\n}\r\n\r\nexport function screenCTM () {\r\n /* https://bugzilla.mozilla.org/show_bug.cgi?id=1344537\r\n This is needed because FF does not return the transformation matrix\r\n for the inner coordinate system when getScreenCTM() is called on nested svgs.\r\n However all other Browsers do that */\r\n if (typeof this.isRoot === 'function' && !this.isRoot()) {\r\n var rect = this.rect(1, 1)\r\n var m = rect.node.getScreenCTM()\r\n rect.remove()\r\n return new Matrix(m)\r\n }\r\n return new Matrix(this.node.getScreenCTM())\r\n}\r\n\r\nregister(Matrix, 'Matrix')\r\n","import { globals } from '../../utils/window.js'\r\nimport { makeInstance } from '../../utils/adopter.js'\r\n\r\nexport default function parser () {\r\n // Reuse cached element if possible\r\n if (!parser.nodes) {\r\n const svg = makeInstance().size(2, 0)\r\n svg.node.style.cssText = [\r\n 'opacity: 0',\r\n 'position: absolute',\r\n 'left: -100%',\r\n 'top: -100%',\r\n 'overflow: hidden'\r\n ].join(';')\r\n\r\n svg.attr('focusable', 'false')\r\n svg.attr('aria-hidden', 'true')\r\n\r\n const path = svg.path().node\r\n\r\n parser.nodes = { svg, path }\r\n }\r\n\r\n if (!parser.nodes.svg.node.parentNode) {\r\n const b = globals.document.body || globals.document.documentElement\r\n parser.nodes.svg.addTo(b)\r\n }\r\n\r\n return parser.nodes\r\n}\r\n","import { delimiter } from '../modules/core/regex.js'\r\nimport { globals } from '../utils/window.js'\r\nimport { register } from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport Matrix from './Matrix.js'\r\nimport Point from './Point.js'\r\nimport parser from '../modules/core/parser.js'\r\n\r\nfunction isNulledBox (box) {\r\n return !box.width && !box.height && !box.x && !box.y\r\n}\r\n\r\nfunction domContains (node) {\r\n return node === globals.document\r\n || (globals.document.documentElement.contains || function (node) {\r\n // This is IE - it does not support contains() for top-level SVGs\r\n while (node.parentNode) {\r\n node = node.parentNode\r\n }\r\n return node === globals.document\r\n }).call(globals.document.documentElement, node)\r\n}\r\n\r\nexport default class Box {\r\n constructor (...args) {\r\n this.init(...args)\r\n }\r\n\r\n init (source) {\r\n var base = [ 0, 0, 0, 0 ]\r\n source = typeof source === 'string' ? source.split(delimiter).map(parseFloat)\r\n : Array.isArray(source) ? source\r\n : typeof source === 'object' ? [ source.left != null ? source.left\r\n : source.x, source.top != null ? source.top : source.y, source.width, source.height ]\r\n : arguments.length === 4 ? [].slice.call(arguments)\r\n : base\r\n\r\n this.x = source[0] || 0\r\n this.y = source[1] || 0\r\n this.width = this.w = source[2] || 0\r\n this.height = this.h = source[3] || 0\r\n\r\n // Add more bounding box properties\r\n this.x2 = this.x + this.w\r\n this.y2 = this.y + this.h\r\n this.cx = this.x + this.w / 2\r\n this.cy = this.y + this.h / 2\r\n\r\n return this\r\n }\r\n\r\n // Merge rect box with another, return a new instance\r\n merge (box) {\r\n const x = Math.min(this.x, box.x)\r\n const y = Math.min(this.y, box.y)\r\n const width = Math.max(this.x + this.width, box.x + box.width) - x\r\n const height = Math.max(this.y + this.height, box.y + box.height) - y\r\n\r\n return new Box(x, y, width, height)\r\n }\r\n\r\n transform (m) {\r\n if (!(m instanceof Matrix)) {\r\n m = new Matrix(m)\r\n }\r\n\r\n let xMin = Infinity\r\n let xMax = -Infinity\r\n let yMin = Infinity\r\n let yMax = -Infinity\r\n\r\n const pts = [\r\n new Point(this.x, this.y),\r\n new Point(this.x2, this.y),\r\n new Point(this.x, this.y2),\r\n new Point(this.x2, this.y2)\r\n ]\r\n\r\n pts.forEach(function (p) {\r\n p = p.transform(m)\r\n xMin = Math.min(xMin, p.x)\r\n xMax = Math.max(xMax, p.x)\r\n yMin = Math.min(yMin, p.y)\r\n yMax = Math.max(yMax, p.y)\r\n })\r\n\r\n return new Box(\r\n xMin, yMin,\r\n xMax - xMin,\r\n yMax - yMin\r\n )\r\n }\r\n\r\n addOffset () {\r\n // offset by window scroll position, because getBoundingClientRect changes when window is scrolled\r\n this.x += globals.window.pageXOffset\r\n this.y += globals.window.pageYOffset\r\n return this\r\n }\r\n\r\n toString () {\r\n return this.x + ' ' + this.y + ' ' + this.width + ' ' + this.height\r\n }\r\n\r\n toArray () {\r\n return [ this.x, this.y, this.width, this.height ]\r\n }\r\n\r\n isNulled () {\r\n return isNulledBox(this)\r\n }\r\n}\r\n\r\nfunction getBox (cb, retry) {\r\n let box\r\n\r\n try {\r\n box = cb(this.node)\r\n\r\n if (isNulledBox(box) && !domContains(this.node)) {\r\n throw new Error('Element not in the dom')\r\n }\r\n } catch (e) {\r\n box = retry(this)\r\n }\r\n\r\n return box\r\n}\r\n\r\nexport function bbox () {\r\n return new Box(getBox.call(this, (node) => node.getBBox(), (el) => {\r\n try {\r\n const clone = el.clone().addTo(parser().svg).show()\r\n const box = clone.node.getBBox()\r\n clone.remove()\r\n return box\r\n } catch (e) {\r\n throw new Error('Getting bbox of element \"' + el.node.nodeName + '\" is not possible. ' + e.toString())\r\n }\r\n }))\r\n}\r\n\r\nexport function rbox (el) {\r\n const box = new Box(getBox.call(this, (node) => node.getBoundingClientRect(), (el) => {\r\n throw new Error('Getting rbox of element \"' + el.node.nodeName + '\" is not possible')\r\n }))\r\n if (el) return box.transform(el.screenCTM().inverse())\r\n return box.addOffset()\r\n}\r\n\r\nregisterMethods({\r\n viewbox: {\r\n viewbox (x, y, width, height) {\r\n // act as getter\r\n if (x == null) return new Box(this.attr('viewBox'))\r\n\r\n // act as setter\r\n return this.attr('viewBox', new Box(x, y, width, height))\r\n },\r\n\r\n zoom (level, point) {\r\n let width = this.node.clientWidth\r\n let height = this.node.clientHeight\r\n const v = this.viewbox()\r\n\r\n // Firefox does not support clientHeight and returns 0\r\n // https://bugzilla.mozilla.org/show_bug.cgi?id=874811\r\n if (!width && !height) {\r\n var style = window.getComputedStyle(this.node)\r\n width = parseFloat(style.getPropertyValue('width'))\r\n height = parseFloat(style.getPropertyValue('height'))\r\n }\r\n\r\n const zoomX = width / v.width\r\n const zoomY = height / v.height\r\n const zoom = Math.min(zoomX, zoomY)\r\n\r\n if (level == null) {\r\n return zoom\r\n }\r\n\r\n let zoomAmount = zoom / level\r\n if (zoomAmount === Infinity) zoomAmount = Number.MIN_VALUE\r\n\r\n point = point || new Point(width / 2 / zoomX + v.x, height / 2 / zoomY + v.y)\r\n\r\n const box = new Box(v).transform(\r\n new Matrix({ scale: zoomAmount, origin: point })\r\n )\r\n\r\n return this.viewbox(box)\r\n }\r\n }\r\n})\r\n\r\nregister(Box, 'Box')\r\n","/* eslint no-new-func: \"off\" */\r\nexport const subClassArray = (function () {\r\n try {\r\n // try es6 subclassing\r\n return Function('name', 'baseClass', '_constructor', [\r\n 'baseClass = baseClass || Array',\r\n 'return {',\r\n ' [name]: class extends baseClass {',\r\n ' constructor (...args) {',\r\n ' super(...args)',\r\n ' _constructor && _constructor.apply(this, args)',\r\n ' }',\r\n ' }',\r\n '}[name]'\r\n ].join('\\n'))\r\n } catch (e) {\r\n // Use es5 approach\r\n return (name, baseClass = Array, _constructor) => {\r\n const Arr = function () {\r\n baseClass.apply(this, arguments)\r\n _constructor && _constructor.apply(this, arguments)\r\n }\r\n\r\n Arr.prototype = Object.create(baseClass.prototype)\r\n Arr.prototype.constructor = Arr\r\n\r\n Arr.prototype.map = function (fn) {\r\n const arr = new Arr()\r\n arr.push.apply(arr, Array.prototype.map.call(this, fn))\r\n return arr\r\n }\r\n\r\n return Arr\r\n }\r\n }\r\n})()\r\n","import { extend } from '../utils/adopter.js'\r\nimport { subClassArray } from './ArrayPolyfill.js'\r\n\r\nconst List = subClassArray('List', Array, function (arr = []) {\r\n // This catches the case, that native map tries to create an array with new Array(1)\r\n if (typeof arr === 'number') return this\r\n this.length = 0\r\n this.push(...arr)\r\n})\r\n\r\nexport default List\r\n\r\nextend(List, {\r\n each (fnOrMethodName, ...args) {\r\n if (typeof fnOrMethodName === 'function') {\r\n return this.map((el) => {\r\n return fnOrMethodName.call(el, el)\r\n })\r\n } else {\r\n return this.map(el => {\r\n return el[fnOrMethodName](...args)\r\n })\r\n }\r\n },\r\n\r\n toArray () {\r\n return Array.prototype.concat.apply([], this)\r\n }\r\n})\r\n\r\nconst reserved = [ 'toArray', 'constructor', 'each' ]\r\n\r\nList.extend = function (methods) {\r\n methods = methods.reduce((obj, name) => {\r\n // Don't overwrite own methods\r\n if (reserved.includes(name)) return obj\r\n\r\n // Don't add private methods\r\n if (name[0] === '_') return obj\r\n\r\n // Relay every call to each()\r\n obj[name] = function (...attrs) {\r\n return this.each(name, ...attrs)\r\n }\r\n return obj\r\n }, {})\r\n\r\n extend(List, methods)\r\n}\r\n","import { adopt } from '../../utils/adopter.js'\r\nimport { globals } from '../../utils/window.js'\r\nimport { map } from '../../utils/utils.js'\r\nimport List from '../../types/List.js'\r\n\r\nexport default function baseFind (query, parent) {\r\n return new List(map((parent || globals.document).querySelectorAll(query), function (node) {\r\n return adopt(node)\r\n }))\r\n}\r\n\r\n// Scoped find method\r\nexport function find (query) {\r\n return baseFind(query, this.node)\r\n}\r\n\r\nexport function findOne (query) {\r\n return adopt(this.node.querySelector(query))\r\n}\r\n","import { dispatch, off, on } from '../modules/core/event.js'\r\nimport { register } from '../utils/adopter.js'\r\nimport Base from './Base.js'\r\n\r\nexport default class EventTarget extends Base {\r\n constructor ({ events = {} } = {}) {\r\n super()\r\n this.events = events\r\n }\r\n\r\n addEventListener () {}\r\n\r\n dispatch (event, data) {\r\n return dispatch(this, event, data)\r\n }\r\n\r\n dispatchEvent (event) {\r\n const bag = this.getEventHolder().events\r\n if (!bag) return true\r\n\r\n const events = bag[event.type]\r\n\r\n for (const i in events) {\r\n for (const j in events[i]) {\r\n events[i][j](event)\r\n }\r\n }\r\n\r\n return !event.defaultPrevented\r\n }\r\n\r\n // Fire given event\r\n fire (event, data) {\r\n this.dispatch(event, data)\r\n return this\r\n }\r\n\r\n getEventHolder () {\r\n return this\r\n }\r\n\r\n getEventTarget () {\r\n return this\r\n }\r\n\r\n // Unbind event from listener\r\n off (event, listener) {\r\n off(this, event, listener)\r\n return this\r\n }\r\n\r\n // Bind given event to listener\r\n on (event, listener, binding, options) {\r\n on(this, event, listener, binding, options)\r\n return this\r\n }\r\n\r\n removeEventListener () {}\r\n}\r\n\r\nregister(EventTarget, 'EventTarget')\r\n","\r\nexport function noop () {}\r\n\r\n// Default animation values\r\nexport const timeline = {\r\n duration: 400,\r\n ease: '>',\r\n delay: 0\r\n}\r\n\r\n// Default attribute values\r\nexport const attrs = {\r\n\r\n // fill and stroke\r\n 'fill-opacity': 1,\r\n 'stroke-opacity': 1,\r\n 'stroke-width': 0,\r\n 'stroke-linejoin': 'miter',\r\n 'stroke-linecap': 'butt',\r\n fill: '#000000',\r\n stroke: '#000000',\r\n opacity: 1,\r\n\r\n // position\r\n x: 0,\r\n y: 0,\r\n cx: 0,\r\n cy: 0,\r\n\r\n // size\r\n width: 0,\r\n height: 0,\r\n\r\n // radius\r\n r: 0,\r\n rx: 0,\r\n ry: 0,\r\n\r\n // gradient\r\n offset: 0,\r\n 'stop-opacity': 1,\r\n 'stop-color': '#000000',\r\n\r\n // text\r\n 'text-anchor': 'start'\r\n}\r\n","import { delimiter } from '../modules/core/regex.js'\r\nimport { extend } from '../utils/adopter.js'\r\nimport { subClassArray } from './ArrayPolyfill.js'\r\n\r\nconst SVGArray = subClassArray('SVGArray', Array, function (arr) {\r\n this.init(arr)\r\n})\r\n\r\nexport default SVGArray\r\n\r\nextend(SVGArray, {\r\n init (arr) {\r\n // This catches the case, that native map tries to create an array with new Array(1)\r\n if (typeof arr === 'number') return this\r\n this.length = 0\r\n this.push(...this.parse(arr))\r\n return this\r\n },\r\n\r\n toArray () {\r\n return Array.prototype.concat.apply([], this)\r\n },\r\n\r\n toString () {\r\n return this.join(' ')\r\n },\r\n\r\n // Flattens the array if needed\r\n valueOf () {\r\n const ret = []\r\n ret.push(...this)\r\n return ret\r\n },\r\n\r\n // Parse whitespace separated string\r\n parse (array = []) {\r\n // If already is an array, no need to parse it\r\n if (array instanceof Array) return array\r\n\r\n return array.trim().split(delimiter).map(parseFloat)\r\n },\r\n\r\n clone () {\r\n return new this.constructor(this)\r\n },\r\n\r\n toSet () {\r\n return new Set(this)\r\n }\r\n})\r\n","import { numberAndUnit } from '../modules/core/regex.js'\r\n\r\n// Module for unit convertions\r\nexport default class SVGNumber {\r\n // Initialize\r\n constructor (...args) {\r\n this.init(...args)\r\n }\r\n\r\n init (value, unit) {\r\n unit = Array.isArray(value) ? value[1] : unit\r\n value = Array.isArray(value) ? value[0] : value\r\n\r\n // initialize defaults\r\n this.value = 0\r\n this.unit = unit || ''\r\n\r\n // parse value\r\n if (typeof value === 'number') {\r\n // ensure a valid numeric value\r\n this.value = isNaN(value) ? 0 : !isFinite(value) ? (value < 0 ? -3.4e+38 : +3.4e+38) : value\r\n } else if (typeof value === 'string') {\r\n unit = value.match(numberAndUnit)\r\n\r\n if (unit) {\r\n // make value numeric\r\n this.value = parseFloat(unit[1])\r\n\r\n // normalize\r\n if (unit[5] === '%') {\r\n this.value /= 100\r\n } else if (unit[5] === 's') {\r\n this.value *= 1000\r\n }\r\n\r\n // store unit\r\n this.unit = unit[5]\r\n }\r\n } else {\r\n if (value instanceof SVGNumber) {\r\n this.value = value.valueOf()\r\n this.unit = value.unit\r\n }\r\n }\r\n\r\n return this\r\n }\r\n\r\n toString () {\r\n return (this.unit === '%' ? ~~(this.value * 1e8) / 1e6\r\n : this.unit === 's' ? this.value / 1e3\r\n : this.value\r\n ) + this.unit\r\n }\r\n\r\n toJSON () {\r\n return this.toString()\r\n }\r\n\r\n toArray () {\r\n return [ this.value, this.unit ]\r\n }\r\n\r\n valueOf () {\r\n return this.value\r\n }\r\n\r\n // Add number\r\n plus (number) {\r\n number = new SVGNumber(number)\r\n return new SVGNumber(this + number, this.unit || number.unit)\r\n }\r\n\r\n // Subtract number\r\n minus (number) {\r\n number = new SVGNumber(number)\r\n return new SVGNumber(this - number, this.unit || number.unit)\r\n }\r\n\r\n // Multiply number\r\n times (number) {\r\n number = new SVGNumber(number)\r\n return new SVGNumber(this * number, this.unit || number.unit)\r\n }\r\n\r\n // Divide number\r\n divide (number) {\r\n number = new SVGNumber(number)\r\n return new SVGNumber(this / number, this.unit || number.unit)\r\n }\r\n\r\n convert (unit) {\r\n return new SVGNumber(this.value, unit)\r\n }\r\n}\r\n","import { attrs as defaults } from './defaults.js'\r\nimport { isNumber } from './regex.js'\r\nimport Color from '../../types/Color.js'\r\nimport SVGArray from '../../types/SVGArray.js'\r\nimport SVGNumber from '../../types/SVGNumber.js'\r\n\r\nconst hooks = []\r\nexport function registerAttrHook (fn) {\r\n hooks.push(fn)\r\n}\r\n\r\n// Set svg element attribute\r\nexport default function attr (attr, val, ns) {\r\n // act as full getter\r\n if (attr == null) {\r\n // get an object of attributes\r\n attr = {}\r\n val = this.node.attributes\r\n\r\n for (const node of val) {\r\n attr[node.nodeName] = isNumber.test(node.nodeValue)\r\n ? parseFloat(node.nodeValue)\r\n : node.nodeValue\r\n }\r\n\r\n return attr\r\n } else if (attr instanceof Array) {\r\n // loop through array and get all values\r\n return attr.reduce((last, curr) => {\r\n last[curr] = this.attr(curr)\r\n return last\r\n }, {})\r\n } else if (typeof attr === 'object' && attr.constructor === Object) {\r\n // apply every attribute individually if an object is passed\r\n for (val in attr) this.attr(val, attr[val])\r\n } else if (val === null) {\r\n // remove value\r\n this.node.removeAttribute(attr)\r\n } else if (val == null) {\r\n // act as a getter if the first and only argument is not an object\r\n val = this.node.getAttribute(attr)\r\n return val == null ? defaults[attr]\r\n : isNumber.test(val) ? parseFloat(val)\r\n : val\r\n } else {\r\n // Loop through hooks and execute them to convert value\r\n val = hooks.reduce((_val, hook) => {\r\n return hook(attr, _val, this)\r\n }, val)\r\n\r\n // ensure correct numeric values (also accepts NaN and Infinity)\r\n if (typeof val === 'number') {\r\n val = new SVGNumber(val)\r\n } else if (Color.isColor(val)) {\r\n // ensure full hex color\r\n val = new Color(val)\r\n } else if (val.constructor === Array) {\r\n // Check for plain arrays and parse array values\r\n val = new SVGArray(val)\r\n }\r\n\r\n // if the passed attribute is leading...\r\n if (attr === 'leading') {\r\n // ... call the leading method instead\r\n if (this.leading) {\r\n this.leading(val)\r\n }\r\n } else {\r\n // set given attribute on node\r\n typeof ns === 'string' ? this.node.setAttributeNS(ns, attr, val.toString())\r\n : this.node.setAttribute(attr, val.toString())\r\n }\r\n\r\n // rebuild if required\r\n if (this.rebuild && (attr === 'font-size' || attr === 'x')) {\r\n this.rebuild()\r\n }\r\n }\r\n\r\n return this\r\n}\r\n","import {\r\n adopt,\r\n assignNewId,\r\n eid,\r\n extend,\r\n makeInstance,\r\n create,\r\n register\r\n} from '../utils/adopter.js'\r\nimport { find, findOne } from '../modules/core/selector.js'\r\nimport { globals } from '../utils/window.js'\r\nimport { map } from '../utils/utils.js'\r\nimport { ns } from '../modules/core/namespaces.js'\r\nimport EventTarget from '../types/EventTarget.js'\r\nimport List from '../types/List.js'\r\nimport attr from '../modules/core/attr.js'\r\n\r\nexport default class Dom extends EventTarget {\r\n constructor (node, attrs) {\r\n super(node)\r\n this.node = node\r\n this.type = node.nodeName\r\n\r\n if (attrs && node !== attrs) {\r\n this.attr(attrs)\r\n }\r\n }\r\n\r\n // Add given element at a position\r\n add (element, i) {\r\n element = makeInstance(element)\r\n\r\n if (i == null) {\r\n this.node.appendChild(element.node)\r\n } else if (element.node !== this.node.childNodes[i]) {\r\n this.node.insertBefore(element.node, this.node.childNodes[i])\r\n }\r\n\r\n return this\r\n }\r\n\r\n // Add element to given container and return self\r\n addTo (parent) {\r\n return makeInstance(parent).put(this)\r\n }\r\n\r\n // Returns all child elements\r\n children () {\r\n return new List(map(this.node.children, function (node) {\r\n return adopt(node)\r\n }))\r\n }\r\n\r\n // Remove all elements in this container\r\n clear () {\r\n // remove children\r\n while (this.node.hasChildNodes()) {\r\n this.node.removeChild(this.node.lastChild)\r\n }\r\n\r\n return this\r\n }\r\n\r\n // Clone element\r\n clone () {\r\n // write dom data to the dom so the clone can pickup the data\r\n this.writeDataToDom()\r\n\r\n // clone element and assign new id\r\n return assignNewId(this.node.cloneNode(true))\r\n }\r\n\r\n // Iterates over all children and invokes a given block\r\n each (block, deep) {\r\n var children = this.children()\r\n var i, il\r\n\r\n for (i = 0, il = children.length; i < il; i++) {\r\n block.apply(children[i], [ i, children ])\r\n\r\n if (deep) {\r\n children[i].each(block, deep)\r\n }\r\n }\r\n\r\n return this\r\n }\r\n\r\n element (nodeName) {\r\n return this.put(new Dom(create(nodeName)))\r\n }\r\n\r\n // Get first child\r\n first () {\r\n return adopt(this.node.firstChild)\r\n }\r\n\r\n // Get a element at the given index\r\n get (i) {\r\n return adopt(this.node.childNodes[i])\r\n }\r\n\r\n getEventHolder () {\r\n return this.node\r\n }\r\n\r\n getEventTarget () {\r\n return this.node\r\n }\r\n\r\n // Checks if the given element is a child\r\n has (element) {\r\n return this.index(element) >= 0\r\n }\r\n\r\n // Get / set id\r\n id (id) {\r\n // generate new id if no id set\r\n if (typeof id === 'undefined' && !this.node.id) {\r\n this.node.id = eid(this.type)\r\n }\r\n\r\n // dont't set directly width this.node.id to make `null` work correctly\r\n return this.attr('id', id)\r\n }\r\n\r\n // Gets index of given element\r\n index (element) {\r\n return [].slice.call(this.node.childNodes).indexOf(element.node)\r\n }\r\n\r\n // Get the last child\r\n last () {\r\n return adopt(this.node.lastChild)\r\n }\r\n\r\n // matches the element vs a css selector\r\n matches (selector) {\r\n const el = this.node\r\n return (el.matches || el.matchesSelector || el.msMatchesSelector || el.mozMatchesSelector || el.webkitMatchesSelector || el.oMatchesSelector).call(el, selector)\r\n }\r\n\r\n // Returns the parent element instance\r\n parent (type) {\r\n var parent = this\r\n\r\n // check for parent\r\n if (!parent.node.parentNode) return null\r\n\r\n // get parent element\r\n parent = adopt(parent.node.parentNode)\r\n\r\n if (!type) return parent\r\n\r\n // loop trough ancestors if type is given\r\n while (parent) {\r\n if (typeof type === 'string' ? parent.matches(type) : parent instanceof type) return parent\r\n if (!parent.node.parentNode || parent.node.parentNode.nodeName === '#document' || parent.node.parentNode.nodeName === '#document-fragment') return null // #759, #720\r\n parent = adopt(parent.node.parentNode)\r\n }\r\n }\r\n\r\n // Basically does the same as `add()` but returns the added element instead\r\n put (element, i) {\r\n this.add(element, i)\r\n return element\r\n }\r\n\r\n // Add element to given container and return container\r\n putIn (parent) {\r\n return makeInstance(parent).add(this)\r\n }\r\n\r\n // Remove element\r\n remove () {\r\n if (this.parent()) {\r\n this.parent().removeElement(this)\r\n }\r\n\r\n return this\r\n }\r\n\r\n // Remove a given child\r\n removeElement (element) {\r\n this.node.removeChild(element.node)\r\n\r\n return this\r\n }\r\n\r\n // Replace this with element\r\n replace (element) {\r\n element = makeInstance(element)\r\n this.node.parentNode.replaceChild(element.node, this.node)\r\n return element\r\n }\r\n\r\n round (precision = 2, map) {\r\n const factor = 10 ** precision\r\n const attrs = this.attr()\r\n\r\n // If we have no map, build one from attrs\r\n if (!map) {\r\n map = Object.keys(attrs)\r\n }\r\n\r\n // Holds rounded attributes\r\n const newAttrs = {}\r\n map.forEach((key) => {\r\n newAttrs[key] = Math.round(attrs[key] * factor) / factor\r\n })\r\n\r\n this.attr(newAttrs)\r\n return this\r\n }\r\n\r\n // Return id on string conversion\r\n toString () {\r\n return this.id()\r\n }\r\n\r\n // Import raw svg\r\n svg (svgOrFn, outerHTML) {\r\n var well, len, fragment\r\n\r\n if (svgOrFn === false) {\r\n outerHTML = false\r\n svgOrFn = null\r\n }\r\n\r\n // act as getter if no svg string is given\r\n if (svgOrFn == null || typeof svgOrFn === 'function') {\r\n // The default for exports is, that the outerNode is included\r\n outerHTML = outerHTML == null ? true : outerHTML\r\n\r\n // write svgjs data to the dom\r\n this.writeDataToDom()\r\n let current = this\r\n\r\n // An export modifier was passed\r\n if (svgOrFn != null) {\r\n current = adopt(current.node.cloneNode(true))\r\n\r\n // If the user wants outerHTML we need to process this node, too\r\n if (outerHTML) {\r\n const result = svgOrFn(current)\r\n current = result || current\r\n\r\n // The user does not want this node? Well, then he gets nothing\r\n if (result === false) return ''\r\n }\r\n\r\n // Deep loop through all children and apply modifier\r\n current.each(function () {\r\n const result = svgOrFn(this)\r\n const _this = result || this\r\n\r\n // If modifier returns false, discard node\r\n if (result === false) {\r\n this.remove()\r\n\r\n // If modifier returns new node, use it\r\n } else if (result && this !== _this) {\r\n this.replace(_this)\r\n }\r\n }, true)\r\n }\r\n\r\n // Return outer or inner content\r\n return outerHTML\r\n ? current.node.outerHTML\r\n : current.node.innerHTML\r\n }\r\n\r\n // Act as setter if we got a string\r\n\r\n // The default for import is, that the current node is not replaced\r\n outerHTML = outerHTML == null ? false : outerHTML\r\n\r\n // Create temporary holder\r\n well = globals.document.createElementNS(ns, 'svg')\r\n fragment = globals.document.createDocumentFragment()\r\n\r\n // Dump raw svg\r\n well.innerHTML = svgOrFn\r\n\r\n // Transplant nodes into the fragment\r\n for (len = well.children.length; len--;) {\r\n fragment.appendChild(well.firstElementChild)\r\n }\r\n\r\n const parent = this.parent()\r\n\r\n // Add the whole fragment at once\r\n return outerHTML\r\n ? this.replace(fragment) && parent\r\n : this.add(fragment)\r\n }\r\n\r\n words (text) {\r\n // This is faster than removing all children and adding a new one\r\n this.node.textContent = text\r\n return this\r\n }\r\n\r\n // write svgjs data to the dom\r\n writeDataToDom () {\r\n // dump variables recursively\r\n this.each(function () {\r\n this.writeDataToDom()\r\n })\r\n\r\n return this\r\n }\r\n}\r\n\r\nextend(Dom, { attr, find, findOne })\r\nregister(Dom, 'Dom')\r\n","import { bbox, rbox } from '../types/Box.js'\r\nimport { ctm, screenCTM } from '../types/Matrix.js'\r\nimport {\r\n extend,\r\n getClass,\r\n makeInstance,\r\n register,\r\n root\r\n} from '../utils/adopter.js'\r\nimport { globals } from '../utils/window.js'\r\nimport { point } from '../types/Point.js'\r\nimport { proportionalSize } from '../utils/utils.js'\r\nimport { reference } from '../modules/core/regex.js'\r\nimport Dom from './Dom.js'\r\nimport List from '../types/List.js'\r\nimport SVGNumber from '../types/SVGNumber.js'\r\n\r\nexport default class Element extends Dom {\r\n constructor (node, attrs) {\r\n super(node, attrs)\r\n\r\n // initialize data object\r\n this.dom = {}\r\n\r\n // create circular reference\r\n this.node.instance = this\r\n\r\n if (node.hasAttribute('svgjs:data')) {\r\n // pull svgjs data from the dom (getAttributeNS doesn't work in html5)\r\n this.setData(JSON.parse(node.getAttribute('svgjs:data')) || {})\r\n }\r\n }\r\n\r\n // Move element by its center\r\n center (x, y) {\r\n return this.cx(x).cy(y)\r\n }\r\n\r\n // Move by center over x-axis\r\n cx (x) {\r\n return x == null ? this.x() + this.width() / 2 : this.x(x - this.width() / 2)\r\n }\r\n\r\n // Move by center over y-axis\r\n cy (y) {\r\n return y == null\r\n ? this.y() + this.height() / 2\r\n : this.y(y - this.height() / 2)\r\n }\r\n\r\n // Get defs\r\n defs () {\r\n return this.root().defs()\r\n }\r\n\r\n // Relative move over x and y axes\r\n dmove (x, y) {\r\n return this.dx(x).dy(y)\r\n }\r\n\r\n // Relative move over x axis\r\n dx (x = 0) {\r\n return this.x(new SVGNumber(x).plus(this.x()))\r\n }\r\n\r\n // Relative move over y axis\r\n dy (y = 0) {\r\n return this.y(new SVGNumber(y).plus(this.y()))\r\n }\r\n\r\n // Get parent document\r\n root () {\r\n const p = this.parent(getClass(root))\r\n return p && p.root()\r\n }\r\n\r\n getEventHolder () {\r\n return this\r\n }\r\n\r\n // Set height of element\r\n height (height) {\r\n return this.attr('height', height)\r\n }\r\n\r\n // Checks whether the given point inside the bounding box of the element\r\n inside (x, y) {\r\n const box = this.bbox()\r\n\r\n return x > box.x\r\n && y > box.y\r\n && x < box.x + box.width\r\n && y < box.y + box.height\r\n }\r\n\r\n // Move element to given x and y values\r\n move (x, y) {\r\n return this.x(x).y(y)\r\n }\r\n\r\n // return array of all ancestors of given type up to the root svg\r\n parents (until = globals.document) {\r\n until = makeInstance(until)\r\n const parents = new List()\r\n let parent = this\r\n\r\n while (\r\n (parent = parent.parent())\r\n && parent.node !== until.node\r\n && parent.node !== globals.document\r\n ) {\r\n parents.push(parent)\r\n }\r\n\r\n return parents\r\n }\r\n\r\n // Get referenced element form attribute value\r\n reference (attr) {\r\n attr = this.attr(attr)\r\n if (!attr) return null\r\n\r\n const m = attr.match(reference)\r\n return m ? makeInstance(m[1]) : null\r\n }\r\n\r\n // set given data to the elements data property\r\n setData (o) {\r\n this.dom = o\r\n return this\r\n }\r\n\r\n // Set element size to given width and height\r\n size (width, height) {\r\n const p = proportionalSize(this, width, height)\r\n\r\n return this\r\n .width(new SVGNumber(p.width))\r\n .height(new SVGNumber(p.height))\r\n }\r\n\r\n // Set width of element\r\n width (width) {\r\n return this.attr('width', width)\r\n }\r\n\r\n // write svgjs data to the dom\r\n writeDataToDom () {\r\n // remove previously set data\r\n this.node.removeAttribute('svgjs:data')\r\n\r\n if (Object.keys(this.dom).length) {\r\n this.node.setAttribute('svgjs:data', JSON.stringify(this.dom)) // see #428\r\n }\r\n\r\n return super.writeDataToDom()\r\n }\r\n\r\n // Move over x-axis\r\n x (x) {\r\n return this.attr('x', x)\r\n }\r\n\r\n // Move over y-axis\r\n y (y) {\r\n return this.attr('y', y)\r\n }\r\n}\r\n\r\nextend(Element, {\r\n bbox, rbox, point, ctm, screenCTM\r\n})\r\n\r\nregister(Element, 'Element')\r\n","import { on, off } from '../core/event.js'\r\nimport { registerMethods } from '../../utils/methods.js'\r\nimport Color from '../../types/Color.js'\r\nimport Element from '../../elements/Element.js'\r\nimport Matrix from '../../types/Matrix.js'\r\nimport Point from '../../types/Point.js'\r\nimport SVGNumber from '../../types/SVGNumber.js'\r\n\r\n// Define list of available attributes for stroke and fill\r\nvar sugar = {\r\n stroke: [ 'color', 'width', 'opacity', 'linecap', 'linejoin', 'miterlimit', 'dasharray', 'dashoffset' ],\r\n fill: [ 'color', 'opacity', 'rule' ],\r\n prefix: function (t, a) {\r\n return a === 'color' ? t : t + '-' + a\r\n }\r\n}\r\n\r\n// Add sugar for fill and stroke\r\n;[ 'fill', 'stroke' ].forEach(function (m) {\r\n var extension = {}\r\n var i\r\n\r\n extension[m] = function (o) {\r\n if (typeof o === 'undefined') {\r\n return this.attr(m)\r\n }\r\n if (typeof o === 'string' || o instanceof Color || Color.isRgb(o) || (o instanceof Element)) {\r\n this.attr(m, o)\r\n } else {\r\n // set all attributes from sugar.fill and sugar.stroke list\r\n for (i = sugar[m].length - 1; i >= 0; i--) {\r\n if (o[sugar[m][i]] != null) {\r\n this.attr(sugar.prefix(m, sugar[m][i]), o[sugar[m][i]])\r\n }\r\n }\r\n }\r\n\r\n return this\r\n }\r\n\r\n registerMethods([ 'Element', 'Runner' ], extension)\r\n})\r\n\r\nregisterMethods([ 'Element', 'Runner' ], {\r\n // Let the user set the matrix directly\r\n matrix: function (mat, b, c, d, e, f) {\r\n // Act as a getter\r\n if (mat == null) {\r\n return new Matrix(this)\r\n }\r\n\r\n // Act as a setter, the user can pass a matrix or a set of numbers\r\n return this.attr('transform', new Matrix(mat, b, c, d, e, f))\r\n },\r\n\r\n // Map rotation to transform\r\n rotate: function (angle, cx, cy) {\r\n return this.transform({ rotate: angle, ox: cx, oy: cy }, true)\r\n },\r\n\r\n // Map skew to transform\r\n skew: function (x, y, cx, cy) {\r\n return arguments.length === 1 || arguments.length === 3\r\n ? this.transform({ skew: x, ox: y, oy: cx }, true)\r\n : this.transform({ skew: [ x, y ], ox: cx, oy: cy }, true)\r\n },\r\n\r\n shear: function (lam, cx, cy) {\r\n return this.transform({ shear: lam, ox: cx, oy: cy }, true)\r\n },\r\n\r\n // Map scale to transform\r\n scale: function (x, y, cx, cy) {\r\n return arguments.length === 1 || arguments.length === 3\r\n ? this.transform({ scale: x, ox: y, oy: cx }, true)\r\n : this.transform({ scale: [ x, y ], ox: cx, oy: cy }, true)\r\n },\r\n\r\n // Map translate to transform\r\n translate: function (x, y) {\r\n return this.transform({ translate: [ x, y ] }, true)\r\n },\r\n\r\n // Map relative translations to transform\r\n relative: function (x, y) {\r\n return this.transform({ relative: [ x, y ] }, true)\r\n },\r\n\r\n // Map flip to transform\r\n flip: function (direction, around) {\r\n var directionString = typeof direction === 'string' ? direction\r\n : isFinite(direction) ? 'both'\r\n : 'both'\r\n var origin = (direction === 'both' && isFinite(around)) ? [ around, around ]\r\n : (direction === 'x') ? [ around, 0 ]\r\n : (direction === 'y') ? [ 0, around ]\r\n : isFinite(direction) ? [ direction, direction ]\r\n : [ 0, 0 ]\r\n return this.transform({ flip: directionString, origin: origin }, true)\r\n },\r\n\r\n // Opacity\r\n opacity: function (value) {\r\n return this.attr('opacity', value)\r\n }\r\n})\r\n\r\nregisterMethods('radius', {\r\n // Add x and y radius\r\n radius: function (x, y) {\r\n var type = (this._element || this).type\r\n return type === 'radialGradient' || type === 'radialGradient'\r\n ? this.attr('r', new SVGNumber(x))\r\n : this.rx(x).ry(y == null ? x : y)\r\n }\r\n})\r\n\r\nregisterMethods('Path', {\r\n // Get path length\r\n length: function () {\r\n return this.node.getTotalLength()\r\n },\r\n // Get point at length\r\n pointAt: function (length) {\r\n return new Point(this.node.getPointAtLength(length))\r\n }\r\n})\r\n\r\nregisterMethods([ 'Element', 'Runner' ], {\r\n // Set font\r\n font: function (a, v) {\r\n if (typeof a === 'object') {\r\n for (v in a) this.font(v, a[v])\r\n return this\r\n }\r\n\r\n return a === 'leading'\r\n ? this.leading(v)\r\n : a === 'anchor'\r\n ? this.attr('text-anchor', v)\r\n : a === 'size' || a === 'family' || a === 'weight' || a === 'stretch' || a === 'variant' || a === 'style'\r\n ? this.attr('font-' + a, v)\r\n : this.attr(a, v)\r\n }\r\n})\r\n\r\nregisterMethods('Text', {\r\n ax (x) {\r\n return this.attr('x', x)\r\n },\r\n ay (y) {\r\n return this.attr('y', y)\r\n },\r\n amove (x, y) {\r\n return this.ax(x).ay(y)\r\n }\r\n})\r\n\r\n// Add events to elements\r\nconst methods = [ 'click',\r\n 'dblclick',\r\n 'mousedown',\r\n 'mouseup',\r\n 'mouseover',\r\n 'mouseout',\r\n 'mousemove',\r\n 'mouseenter',\r\n 'mouseleave',\r\n 'touchstart',\r\n 'touchmove',\r\n 'touchleave',\r\n 'touchend',\r\n 'touchcancel' ].reduce(function (last, event) {\r\n // add event to Element\r\n const fn = function (f) {\r\n if (f === null) {\r\n off(this, event)\r\n } else {\r\n on(this, event, f)\r\n }\r\n return this\r\n }\r\n\r\n last[event] = fn\r\n return last\r\n}, {})\r\n\r\nregisterMethods('Element', methods)\r\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\nvar nativeReverse = [].reverse;\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n reverse: function reverse() {\n // eslint-disable-next-line no-self-assign\n if (isArray(this)) this.length = this.length;\n return nativeReverse.call(this);\n }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperties = require('../internals/object-define-properties');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\n$({ target: 'Object', stat: true, forced: !DESCRIPTORS, sham: !DESCRIPTORS }, {\n defineProperties: defineProperties\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar objectDefinePropertyModile = require('../internals/object-define-property');\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\n$({ target: 'Object', stat: true, forced: !DESCRIPTORS, sham: !DESCRIPTORS }, {\n defineProperty: objectDefinePropertyModile.f\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import { getOrigin } from '../../utils/utils.js'\r\nimport { delimiter, transforms } from '../core/regex.js'\r\nimport { registerMethods } from '../../utils/methods.js'\r\nimport Matrix from '../../types/Matrix.js'\r\n\r\n// Reset all transformations\r\nexport function untransform () {\r\n return this.attr('transform', null)\r\n}\r\n\r\n// merge the whole transformation chain into one matrix and returns it\r\nexport function matrixify () {\r\n var matrix = (this.attr('transform') || '')\r\n // split transformations\r\n .split(transforms).slice(0, -1).map(function (str) {\r\n // generate key => value pairs\r\n var kv = str.trim().split('(')\r\n return [ kv[0],\r\n kv[1].split(delimiter)\r\n .map(function (str) {\r\n return parseFloat(str)\r\n })\r\n ]\r\n })\r\n .reverse()\r\n // merge every transformation into one matrix\r\n .reduce(function (matrix, transform) {\r\n if (transform[0] === 'matrix') {\r\n return matrix.lmultiply(Matrix.fromArray(transform[1]))\r\n }\r\n return matrix[transform[0]].apply(matrix, transform[1])\r\n }, new Matrix())\r\n\r\n return matrix\r\n}\r\n\r\n// add an element to another parent without changing the visual representation on the screen\r\nexport function toParent (parent) {\r\n if (this === parent) return this\r\n var ctm = this.screenCTM()\r\n var pCtm = parent.screenCTM().inverse()\r\n\r\n this.addTo(parent).untransform().transform(pCtm.multiply(ctm))\r\n\r\n return this\r\n}\r\n\r\n// same as above with parent equals root-svg\r\nexport function toRoot () {\r\n return this.toParent(this.root())\r\n}\r\n\r\n// Add transformations\r\nexport function transform (o, relative) {\r\n // Act as a getter if no object was passed\r\n if (o == null || typeof o === 'string') {\r\n var decomposed = new Matrix(this).decompose()\r\n return o == null ? decomposed : decomposed[o]\r\n }\r\n\r\n if (!Matrix.isMatrixLike(o)) {\r\n // Set the origin according to the defined transform\r\n o = { ...o, origin: getOrigin(o, this) }\r\n }\r\n\r\n // The user can pass a boolean, an Element or an Matrix or nothing\r\n var cleanRelative = relative === true ? this : (relative || false)\r\n var result = new Matrix(cleanRelative).transform(o)\r\n return this.attr('transform', result)\r\n}\r\n\r\nregisterMethods('Element', {\r\n untransform, matrixify, toParent, toRoot, transform\r\n})\r\n","import SVGNumber from '../../types/SVGNumber.js'\r\n\r\n// Radius x value\r\nexport function rx (rx) {\r\n return this.attr('rx', rx)\r\n}\r\n\r\n// Radius y value\r\nexport function ry (ry) {\r\n return this.attr('ry', ry)\r\n}\r\n\r\n// Move over x-axis\r\nexport function x (x) {\r\n return x == null\r\n ? this.cx() - this.rx()\r\n : this.cx(x + this.rx())\r\n}\r\n\r\n// Move over y-axis\r\nexport function y (y) {\r\n return y == null\r\n ? this.cy() - this.ry()\r\n : this.cy(y + this.ry())\r\n}\r\n\r\n// Move by center over x-axis\r\nexport function cx (x) {\r\n return x == null\r\n ? this.attr('cx')\r\n : this.attr('cx', x)\r\n}\r\n\r\n// Move by center over y-axis\r\nexport function cy (y) {\r\n return y == null\r\n ? this.attr('cy')\r\n : this.attr('cy', y)\r\n}\r\n\r\n// Set width of element\r\nexport function width (width) {\r\n return width == null\r\n ? this.rx() * 2\r\n : this.rx(new SVGNumber(width).divide(2))\r\n}\r\n\r\n// Set height of element\r\nexport function height (height) {\r\n return height == null\r\n ? this.ry() * 2\r\n : this.ry(new SVGNumber(height).divide(2))\r\n}\r\n","import { register } from '../utils/adopter.js'\r\nimport Element from './Element.js'\r\n\r\nexport default class Shape extends Element {}\r\n\r\nregister(Shape, 'Shape')\r\n","import { cx, cy, height, width, x, y } from '../modules/core/circled.js'\r\nimport {\r\n extend,\r\n nodeOrNew,\r\n register,\r\n wrapWithAttrCheck\r\n} from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport SVGNumber from '../types/SVGNumber.js'\r\nimport Shape from './Shape.js'\r\n\r\nexport default class Circle extends Shape {\r\n constructor (node) {\r\n super(nodeOrNew('circle', node), node)\r\n }\r\n\r\n radius (r) {\r\n return this.attr('r', r)\r\n }\r\n\r\n // Radius x value\r\n rx (rx) {\r\n return this.attr('r', rx)\r\n }\r\n\r\n // Alias radius x value\r\n ry (ry) {\r\n return this.rx(ry)\r\n }\r\n\r\n size (size) {\r\n return this.radius(new SVGNumber(size).divide(2))\r\n }\r\n}\r\n\r\nextend(Circle, { x, y, cx, cy, width, height })\r\n\r\nregisterMethods({\r\n Container: {\r\n // Create circle element\r\n circle: wrapWithAttrCheck(function (size) {\r\n return this.put(new Circle())\r\n .size(size)\r\n .move(0, 0)\r\n })\r\n }\r\n})\r\n\r\nregister(Circle, 'Circle')\r\n","import { register } from '../utils/adopter.js'\r\nimport Element from './Element.js'\r\n\r\nexport default class Container extends Element {\r\n flatten (parent) {\r\n this.each(function () {\r\n if (this instanceof Container) return this.flatten(parent).ungroup(parent)\r\n return this.toParent(parent)\r\n })\r\n\r\n // we need this so that the root does not get removed\r\n this.node.firstElementChild || this.remove()\r\n\r\n return this\r\n }\r\n\r\n ungroup (parent) {\r\n parent = parent || this.parent()\r\n\r\n this.each(function () {\r\n return this.toParent(parent)\r\n })\r\n\r\n this.remove()\r\n\r\n return this\r\n }\r\n}\r\n\r\nregister(Container, 'Container')\r\n","import { nodeOrNew, register } from '../utils/adopter.js'\r\nimport Container from './Container.js'\r\n\r\nexport default class Defs extends Container {\r\n constructor (node) {\r\n super(nodeOrNew('defs', node), node)\r\n }\r\n\r\n flatten () {\r\n return this\r\n }\n\r\n ungroup () {\r\n return this\r\n }\r\n}\r\n\r\nregister(Defs, 'Defs')\r\n","import {\r\n extend,\r\n nodeOrNew,\r\n register,\r\n wrapWithAttrCheck\r\n} from '../utils/adopter.js'\r\nimport { proportionalSize } from '../utils/utils.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport SVGNumber from '../types/SVGNumber.js'\r\nimport Shape from './Shape.js'\r\nimport * as circled from '../modules/core/circled.js'\r\n\r\nexport default class Ellipse extends Shape {\r\n constructor (node) {\r\n super(nodeOrNew('ellipse', node), node)\r\n }\r\n\r\n size (width, height) {\r\n var p = proportionalSize(this, width, height)\r\n\r\n return this\r\n .rx(new SVGNumber(p.width).divide(2))\r\n .ry(new SVGNumber(p.height).divide(2))\r\n }\r\n}\r\n\r\nextend(Ellipse, circled)\r\n\r\nregisterMethods('Container', {\r\n // Create an ellipse\r\n ellipse: wrapWithAttrCheck(function (width = 0, height = width) {\r\n return this.put(new Ellipse()).size(width, height).move(0, 0)\r\n })\r\n})\r\n\r\nregister(Ellipse, 'Ellipse')\r\n","import { nodeOrNew, register } from '../utils/adopter.js'\r\nimport Element from './Element.js'\r\nimport SVGNumber from '../types/SVGNumber.js'\r\n\r\nexport default class Stop extends Element {\r\n constructor (node) {\r\n super(nodeOrNew('stop', node), node)\r\n }\r\n\r\n // add color stops\r\n update (o) {\r\n if (typeof o === 'number' || o instanceof SVGNumber) {\r\n o = {\r\n offset: arguments[0],\r\n color: arguments[1],\r\n opacity: arguments[2]\r\n }\r\n }\r\n\r\n // set attributes\r\n if (o.opacity != null) this.attr('stop-opacity', o.opacity)\r\n if (o.color != null) this.attr('stop-color', o.color)\r\n if (o.offset != null) this.attr('offset', new SVGNumber(o.offset))\r\n\r\n return this\r\n }\r\n}\r\n\r\nregister(Stop, 'Stop')\r\n","import SVGNumber from '../../types/SVGNumber.js'\r\n\r\nexport function from (x, y) {\r\n return (this._element || this).type === 'radialGradient'\r\n ? this.attr({ fx: new SVGNumber(x), fy: new SVGNumber(y) })\r\n : this.attr({ x1: new SVGNumber(x), y1: new SVGNumber(y) })\r\n}\r\n\r\nexport function to (x, y) {\r\n return (this._element || this).type === 'radialGradient'\r\n ? this.attr({ cx: new SVGNumber(x), cy: new SVGNumber(y) })\r\n : this.attr({ x2: new SVGNumber(x), y2: new SVGNumber(y) })\r\n}\r\n","import {\r\n extend,\r\n nodeOrNew,\r\n register,\r\n wrapWithAttrCheck\r\n} from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport Box from '../types/Box.js'\r\nimport Container from './Container.js'\r\nimport Stop from './Stop.js'\r\nimport baseFind from '../modules/core/selector.js'\r\nimport * as gradiented from '../modules/core/gradiented.js'\r\n\r\nexport default class Gradient extends Container {\r\n constructor (type, attrs) {\r\n super(\r\n nodeOrNew(type + 'Gradient', typeof type === 'string' ? null : type),\r\n attrs\r\n )\r\n }\r\n\r\n // Add a color stop\r\n stop (offset, color, opacity) {\r\n return this.put(new Stop()).update(offset, color, opacity)\r\n }\r\n\r\n // Update gradient\r\n update (block) {\r\n // remove all stops\r\n this.clear()\r\n\r\n // invoke passed block\r\n if (typeof block === 'function') {\r\n block.call(this, this)\r\n }\r\n\r\n return this\r\n }\r\n\r\n // Return the fill id\r\n url () {\r\n return 'url(#' + this.id() + ')'\r\n }\r\n\r\n // Alias string convertion to fill\r\n toString () {\r\n return this.url()\r\n }\r\n\r\n // custom attr to handle transform\r\n attr (a, b, c) {\r\n if (a === 'transform') a = 'gradientTransform'\r\n return super.attr(a, b, c)\r\n }\r\n\r\n targets () {\r\n return baseFind('svg [fill*=\"' + this.id() + '\"]')\r\n }\r\n\r\n bbox () {\r\n return new Box()\r\n }\r\n}\r\n\r\nextend(Gradient, gradiented)\r\n\r\nregisterMethods({\r\n Container: {\r\n // Create gradient element in defs\r\n gradient: wrapWithAttrCheck(function (type, block) {\r\n return this.defs().gradient(type, block)\r\n })\r\n },\r\n // define gradient\r\n Defs: {\r\n gradient: wrapWithAttrCheck(function (type, block) {\r\n return this.put(new Gradient(type)).update(block)\r\n })\r\n }\r\n})\r\n\r\nregister(Gradient, 'Gradient')\r\n","import { nodeOrNew, register, wrapWithAttrCheck } from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport Box from '../types/Box.js'\r\nimport Container from './Container.js'\r\nimport baseFind from '../modules/core/selector.js'\r\n\r\nexport default class Pattern extends Container {\r\n // Initialize node\r\n constructor (node) {\r\n super(nodeOrNew('pattern', node), node)\r\n }\r\n\r\n // Return the fill id\r\n url () {\r\n return 'url(#' + this.id() + ')'\r\n }\r\n\r\n // Update pattern by rebuilding\r\n update (block) {\r\n // remove content\r\n this.clear()\r\n\r\n // invoke passed block\r\n if (typeof block === 'function') {\r\n block.call(this, this)\r\n }\r\n\r\n return this\r\n }\r\n\r\n // Alias string convertion to fill\r\n toString () {\r\n return this.url()\r\n }\r\n\r\n // custom attr to handle transform\r\n attr (a, b, c) {\r\n if (a === 'transform') a = 'patternTransform'\r\n return super.attr(a, b, c)\r\n }\r\n\r\n targets () {\r\n return baseFind('svg [fill*=\"' + this.id() + '\"]')\r\n }\r\n\r\n bbox () {\r\n return new Box()\r\n }\r\n}\r\n\r\nregisterMethods({\r\n Container: {\r\n // Create pattern element in defs\r\n pattern (...args) {\r\n return this.defs().pattern(...args)\r\n }\r\n },\r\n Defs: {\r\n pattern: wrapWithAttrCheck(function (width, height, block) {\r\n return this.put(new Pattern()).update(block).attr({\r\n x: 0,\r\n y: 0,\r\n width: width,\r\n height: height,\r\n patternUnits: 'userSpaceOnUse'\r\n })\r\n })\r\n }\r\n})\r\n\r\nregister(Pattern, 'Pattern')\r\n","import { isImage } from '../modules/core/regex.js'\r\nimport { nodeOrNew, register, wrapWithAttrCheck } from '../utils/adopter.js'\r\nimport { off, on } from '../modules/core/event.js'\r\nimport { registerAttrHook } from '../modules/core/attr.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport { xlink } from '../modules/core/namespaces.js'\r\nimport Pattern from './Pattern.js'\r\nimport Shape from './Shape.js'\r\nimport { globals } from '../utils/window.js'\r\n\r\nexport default class Image extends Shape {\r\n constructor (node) {\r\n super(nodeOrNew('image', node), node)\r\n }\r\n\r\n // (re)load image\r\n load (url, callback) {\r\n if (!url) return this\r\n\r\n var img = new globals.window.Image()\r\n\r\n on(img, 'load', function (e) {\r\n var p = this.parent(Pattern)\r\n\r\n // ensure image size\r\n if (this.width() === 0 && this.height() === 0) {\r\n this.size(img.width, img.height)\r\n }\r\n\r\n if (p instanceof Pattern) {\r\n // ensure pattern size if not set\r\n if (p.width() === 0 && p.height() === 0) {\r\n p.size(this.width(), this.height())\r\n }\r\n }\r\n\r\n if (typeof callback === 'function') {\r\n callback.call(this, e)\r\n }\r\n }, this)\r\n\r\n on(img, 'load error', function () {\r\n // dont forget to unbind memory leaking events\r\n off(img)\r\n })\r\n\r\n return this.attr('href', (img.src = url), xlink)\r\n }\r\n}\r\n\r\nregisterAttrHook(function (attr, val, _this) {\r\n // convert image fill and stroke to patterns\r\n if (attr === 'fill' || attr === 'stroke') {\r\n if (isImage.test(val)) {\r\n val = _this.root().defs().image(val)\r\n }\r\n }\r\n\r\n if (val instanceof Image) {\r\n val = _this.root().defs().pattern(0, 0, (pattern) => {\r\n pattern.add(val)\r\n })\r\n }\r\n\r\n return val\r\n})\r\n\r\nregisterMethods({\r\n Container: {\r\n // create image element, load image and set its size\r\n image: wrapWithAttrCheck(function (source, callback) {\r\n return this.put(new Image()).size(0, 0).load(source, callback)\r\n })\r\n }\r\n})\r\n\r\nregister(Image, 'Image')\r\n","import { delimiter } from '../modules/core/regex.js'\r\nimport { extend } from '../utils/adopter.js'\r\nimport { subClassArray } from './ArrayPolyfill.js'\r\nimport SVGArray from './SVGArray.js'\r\n\r\nconst PointArray = subClassArray('PointArray', SVGArray)\r\n\r\nexport default PointArray\r\n\r\nextend(PointArray, {\r\n // Convert array to string\r\n toString () {\r\n // convert to a poly point string\r\n for (var i = 0, il = this.length, array = []; i < il; i++) {\r\n array.push(this[i].join(','))\r\n }\r\n\r\n return array.join(' ')\r\n },\r\n\r\n // Convert array to line object\r\n toLine () {\r\n return {\r\n x1: this[0][0],\r\n y1: this[0][1],\r\n x2: this[1][0],\r\n y2: this[1][1]\r\n }\r\n },\r\n\r\n // Get morphed array at given position\r\n at (pos) {\r\n // make sure a destination is defined\r\n if (!this.destination) return this\r\n\r\n // generate morphed point string\r\n for (var i = 0, il = this.length, array = []; i < il; i++) {\r\n array.push([\r\n this[i][0] + (this.destination[i][0] - this[i][0]) * pos,\r\n this[i][1] + (this.destination[i][1] - this[i][1]) * pos\r\n ])\r\n }\r\n\r\n return new PointArray(array)\r\n },\r\n\r\n // Parse point string and flat array\r\n parse (array = [ [ 0, 0 ] ]) {\r\n var points = []\r\n\r\n // if it is an array\r\n if (array instanceof Array) {\r\n // and it is not flat, there is no need to parse it\r\n if (array[0] instanceof Array) {\r\n return array\r\n }\r\n } else { // Else, it is considered as a string\r\n // parse points\r\n array = array.trim().split(delimiter).map(parseFloat)\r\n }\r\n\r\n // validate points - https://svgwg.org/svg2-draft/shapes.html#DataTypePoints\r\n // Odd number of coordinates is an error. In such cases, drop the last odd coordinate.\r\n if (array.length % 2 !== 0) array.pop()\r\n\r\n // wrap points in two-tuples\r\n for (var i = 0, len = array.length; i < len; i = i + 2) {\r\n points.push([ array[i], array[i + 1] ])\r\n }\r\n\r\n return points\r\n },\r\n\r\n // transform points with matrix (similar to Point.transform)\r\n transform (m) {\r\n const points = []\r\n\r\n for (let i = 0; i < this.length; i++) {\r\n const point = this[i]\r\n // Perform the matrix multiplication\r\n points.push([\r\n m.a * point[0] + m.c * point[1] + m.e,\r\n m.b * point[0] + m.d * point[1] + m.f\r\n ])\r\n }\r\n\r\n // Return the required point\r\n return new PointArray(points)\r\n },\r\n\r\n // Move point string\r\n move (x, y) {\r\n var box = this.bbox()\r\n\r\n // get relative offset\r\n x -= box.x\r\n y -= box.y\r\n\r\n // move every point\r\n if (!isNaN(x) && !isNaN(y)) {\r\n for (var i = this.length - 1; i >= 0; i--) {\r\n this[i] = [ this[i][0] + x, this[i][1] + y ]\r\n }\r\n }\r\n\r\n return this\r\n },\r\n\r\n // Resize poly string\r\n size (width, height) {\r\n var i\r\n var box = this.bbox()\r\n\r\n // recalculate position of all points according to new size\r\n for (i = this.length - 1; i >= 0; i--) {\r\n if (box.width) this[i][0] = ((this[i][0] - box.x) * width) / box.width + box.x\r\n if (box.height) this[i][1] = ((this[i][1] - box.y) * height) / box.height + box.y\r\n }\r\n\r\n return this\r\n },\r\n\r\n // Get bounding box of points\r\n bbox () {\r\n var maxX = -Infinity\r\n var maxY = -Infinity\r\n var minX = Infinity\r\n var minY = Infinity\r\n this.forEach(function (el) {\r\n maxX = Math.max(el[0], maxX)\r\n maxY = Math.max(el[1], maxY)\r\n minX = Math.min(el[0], minX)\r\n minY = Math.min(el[1], minY)\r\n })\r\n return { x: minX, y: minY, width: maxX - minX, height: maxY - minY }\r\n }\r\n})\r\n","import PointArray from '../../types/PointArray.js'\r\n\r\nexport const MorphArray = PointArray\r\n\r\n// Move by left top corner over x-axis\r\nexport function x (x) {\r\n return x == null ? this.bbox().x : this.move(x, this.bbox().y)\r\n}\r\n\r\n// Move by left top corner over y-axis\r\nexport function y (y) {\r\n return y == null ? this.bbox().y : this.move(this.bbox().x, y)\r\n}\r\n\r\n// Set width of element\r\nexport function width (width) {\r\n const b = this.bbox()\r\n return width == null ? b.width : this.size(width, b.height)\r\n}\r\n\r\n// Set height of element\r\nexport function height (height) {\r\n const b = this.bbox()\r\n return height == null ? b.height : this.size(b.width, height)\r\n}\r\n","import {\r\n extend,\r\n nodeOrNew,\r\n register,\r\n wrapWithAttrCheck\r\n} from '../utils/adopter.js'\r\nimport { proportionalSize } from '../utils/utils.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport PointArray from '../types/PointArray.js'\r\nimport Shape from './Shape.js'\r\nimport * as pointed from '../modules/core/pointed.js'\r\n\r\nexport default class Line extends Shape {\r\n // Initialize node\r\n constructor (node) {\r\n super(nodeOrNew('line', node), node)\r\n }\r\n\r\n // Get array\r\n array () {\r\n return new PointArray([\r\n [ this.attr('x1'), this.attr('y1') ],\r\n [ this.attr('x2'), this.attr('y2') ]\r\n ])\r\n }\r\n\r\n // Overwrite native plot() method\r\n plot (x1, y1, x2, y2) {\r\n if (x1 == null) {\r\n return this.array()\r\n } else if (typeof y1 !== 'undefined') {\r\n x1 = { x1: x1, y1: y1, x2: x2, y2: y2 }\r\n } else {\r\n x1 = new PointArray(x1).toLine()\r\n }\r\n\r\n return this.attr(x1)\r\n }\r\n\r\n // Move by left top corner\r\n move (x, y) {\r\n return this.attr(this.array().move(x, y).toLine())\r\n }\r\n\r\n // Set element size to given width and height\r\n size (width, height) {\r\n var p = proportionalSize(this, width, height)\r\n return this.attr(this.array().size(p.width, p.height).toLine())\r\n }\r\n}\r\n\r\nextend(Line, pointed)\r\n\r\nregisterMethods({\r\n Container: {\r\n // Create a line element\r\n line: wrapWithAttrCheck(function (...args) {\r\n // make sure plot is called as a setter\r\n // x1 is not necessarily a number, it can also be an array, a string and a PointArray\r\n return Line.prototype.plot.apply(\r\n this.put(new Line())\r\n , args[0] != null ? args : [ 0, 0, 0, 0 ]\r\n )\r\n })\r\n }\r\n})\r\n\r\nregister(Line, 'Line')\r\n","import { nodeOrNew, register, wrapWithAttrCheck } from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport Container from './Container.js'\r\n\r\nexport default class Marker extends Container {\r\n // Initialize node\r\n constructor (node) {\r\n super(nodeOrNew('marker', node), node)\r\n }\r\n\r\n // Set width of element\r\n width (width) {\r\n return this.attr('markerWidth', width)\r\n }\r\n\r\n // Set height of element\r\n height (height) {\r\n return this.attr('markerHeight', height)\r\n }\r\n\r\n // Set marker refX and refY\r\n ref (x, y) {\r\n return this.attr('refX', x).attr('refY', y)\r\n }\r\n\r\n // Update marker\r\n update (block) {\r\n // remove all content\r\n this.clear()\r\n\r\n // invoke passed block\r\n if (typeof block === 'function') {\r\n block.call(this, this)\r\n }\r\n\r\n return this\r\n }\r\n\r\n // Return the fill id\r\n toString () {\r\n return 'url(#' + this.id() + ')'\r\n }\r\n}\r\n\r\nregisterMethods({\r\n Container: {\r\n marker (...args) {\r\n // Create marker element in defs\r\n return this.defs().marker(...args)\r\n }\r\n },\r\n Defs: {\r\n // Create marker\r\n marker: wrapWithAttrCheck(function (width, height, block) {\r\n // Set default viewbox to match the width and height, set ref to cx and cy and set orient to auto\r\n return this.put(new Marker())\r\n .size(width, height)\r\n .ref(width / 2, height / 2)\r\n .viewbox(0, 0, width, height)\r\n .attr('orient', 'auto')\r\n .update(block)\r\n })\r\n },\r\n marker: {\r\n // Create and attach markers\r\n marker (marker, width, height, block) {\r\n var attr = [ 'marker' ]\r\n\r\n // Build attribute name\r\n if (marker !== 'all') attr.push(marker)\r\n attr = attr.join('-')\r\n\r\n // Set marker attribute\r\n marker = arguments[1] instanceof Marker\r\n ? arguments[1]\r\n : this.defs().marker(width, height, block)\r\n\r\n return this.attr(attr, marker)\r\n }\r\n }\r\n})\r\n\r\nregister(Marker, 'Marker')\r\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\nvar sloppyArrayMethod = require('../internals/sloppy-array-method');\n\nvar nativeSort = [].sort;\nvar test = [1, 2, 3];\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 SLOPPY_METHOD = sloppyArrayMethod('sort');\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || SLOPPY_METHOD;\n\n// `Array.prototype.sort` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? nativeSort.call(toObject(this))\n : nativeSort.call(toObject(this), aFunction(comparefn));\n }\n});\n","import { timeline } from '../modules/core/defaults.js'\r\nimport { extend } from '../utils/adopter.js'\r\n\r\n/***\r\nBase Class\r\n==========\r\nThe base stepper class that will be\r\n***/\r\n\r\nfunction makeSetterGetter (k, f) {\r\n return function (v) {\r\n if (v == null) return this[v]\r\n this[k] = v\r\n if (f) f.call(this)\r\n return this\r\n }\r\n}\r\n\r\nexport const easing = {\r\n '-': function (pos) {\r\n return pos\r\n },\r\n '<>': function (pos) {\r\n return -Math.cos(pos * Math.PI) / 2 + 0.5\r\n },\r\n '>': function (pos) {\r\n return Math.sin(pos * Math.PI / 2)\r\n },\r\n '<': function (pos) {\r\n return -Math.cos(pos * Math.PI / 2) + 1\r\n },\r\n bezier: function (x1, y1, x2, y2) {\r\n // see https://www.w3.org/TR/css-easing-1/#cubic-bezier-algo\r\n return function (t) {\r\n if (t < 0) {\r\n if (x1 > 0) {\r\n return y1 / x1 * t\r\n } else if (x2 > 0) {\r\n return y2 / x2 * t\r\n } else {\r\n return 0\r\n }\r\n } else if (t > 1) {\r\n if (x2 < 1) {\r\n return (1 - y2) / (1 - x2) * t + (y2 - x2) / (1 - x2)\r\n } else if (x1 < 1) {\r\n return (1 - y1) / (1 - x1) * t + (y1 - x1) / (1 - x1)\r\n } else {\r\n return 1\r\n }\r\n } else {\r\n return 3 * t * (1 - t) ** 2 * y1 + 3 * t ** 2 * (1 - t) * y2 + t ** 3\r\n }\r\n }\r\n },\r\n // see https://www.w3.org/TR/css-easing-1/#step-timing-function-algo\r\n steps: function (steps, stepPosition = 'end') {\r\n // deal with \"jump-\" prefix\r\n stepPosition = stepPosition.split('-').reverse()[0]\r\n\r\n let jumps = steps\r\n if (stepPosition === 'none') {\r\n --jumps\r\n } else if (stepPosition === 'both') {\r\n ++jumps\r\n }\r\n\r\n // The beforeFlag is essentially useless\r\n return (t, beforeFlag = false) => {\r\n // Step is called currentStep in referenced url\r\n let step = Math.floor(t * steps)\r\n const jumping = (t * step) % 1 === 0\r\n\r\n if (stepPosition === 'start' || stepPosition === 'both') {\r\n ++step\r\n }\r\n\r\n if (beforeFlag && jumping) {\r\n --step\r\n }\r\n\r\n if (t >= 0 && step < 0) {\r\n step = 0\r\n }\r\n\r\n if (t <= 1 && step > jumps) {\r\n step = jumps\r\n }\r\n\r\n return step / jumps\r\n }\r\n }\r\n}\r\n\r\nexport class Stepper {\r\n done () {\r\n return false\r\n }\r\n}\r\n\r\n/***\r\nEasing Functions\r\n================\r\n***/\r\n\r\nexport class Ease extends Stepper {\r\n constructor (fn) {\r\n super()\r\n this.ease = easing[fn || timeline.ease] || fn\r\n }\r\n\r\n step (from, to, pos) {\r\n if (typeof from !== 'number') {\r\n return pos < 1 ? from : to\r\n }\r\n return from + (to - from) * this.ease(pos)\r\n }\r\n}\r\n\r\n/***\r\nController Types\r\n================\r\n***/\r\n\r\nexport class Controller extends Stepper {\r\n constructor (fn) {\r\n super()\r\n this.stepper = fn\r\n }\r\n\r\n step (current, target, dt, c) {\r\n return this.stepper(current, target, dt, c)\r\n }\r\n\r\n done (c) {\r\n return c.done\r\n }\r\n}\r\n\r\nfunction recalculate () {\r\n // Apply the default parameters\r\n var duration = (this._duration || 500) / 1000\r\n var overshoot = this._overshoot || 0\r\n\r\n // Calculate the PID natural response\r\n var eps = 1e-10\r\n var pi = Math.PI\r\n var os = Math.log(overshoot / 100 + eps)\r\n var zeta = -os / Math.sqrt(pi * pi + os * os)\r\n var wn = 3.9 / (zeta * duration)\r\n\r\n // Calculate the Spring values\r\n this.d = 2 * zeta * wn\r\n this.k = wn * wn\r\n}\r\n\r\nexport class Spring extends Controller {\r\n constructor (duration, overshoot) {\r\n super()\r\n this.duration(duration || 500)\r\n .overshoot(overshoot || 0)\r\n }\r\n\r\n step (current, target, dt, c) {\r\n if (typeof current === 'string') return current\r\n c.done = dt === Infinity\r\n if (dt === Infinity) return target\r\n if (dt === 0) return current\r\n\r\n if (dt > 100) dt = 16\r\n\r\n dt /= 1000\r\n\r\n // Get the previous velocity\r\n var velocity = c.velocity || 0\r\n\r\n // Apply the control to get the new position and store it\r\n var acceleration = -this.d * velocity - this.k * (current - target)\r\n var newPosition = current\r\n + velocity * dt\r\n + acceleration * dt * dt / 2\r\n\r\n // Store the velocity\r\n c.velocity = velocity + acceleration * dt\r\n\r\n // Figure out if we have converged, and if so, pass the value\r\n c.done = Math.abs(target - newPosition) + Math.abs(velocity) < 0.002\r\n return c.done ? target : newPosition\r\n }\r\n}\r\n\r\nextend(Spring, {\r\n duration: makeSetterGetter('_duration', recalculate),\r\n overshoot: makeSetterGetter('_overshoot', recalculate)\r\n})\r\n\r\nexport class PID extends Controller {\r\n constructor (p, i, d, windup) {\r\n super()\r\n\r\n p = p == null ? 0.1 : p\r\n i = i == null ? 0.01 : i\r\n d = d == null ? 0 : d\r\n windup = windup == null ? 1000 : windup\r\n this.p(p).i(i).d(d).windup(windup)\r\n }\r\n\r\n step (current, target, dt, c) {\r\n if (typeof current === 'string') return current\r\n c.done = dt === Infinity\r\n\r\n if (dt === Infinity) return target\r\n if (dt === 0) return current\r\n\r\n var p = target - current\r\n var i = (c.integral || 0) + p * dt\r\n var d = (p - (c.error || 0)) / dt\r\n var windup = this.windup\r\n\r\n // antiwindup\r\n if (windup !== false) {\r\n i = Math.max(-windup, Math.min(i, windup))\r\n }\r\n\r\n c.error = p\r\n c.integral = i\r\n\r\n c.done = Math.abs(p) < 0.001\r\n\r\n return c.done ? target : current + (this.P * p + this.I * i + this.D * d)\r\n }\r\n}\r\n\r\nextend(PID, {\r\n windup: makeSetterGetter('windup'),\r\n p: makeSetterGetter('P'),\r\n i: makeSetterGetter('I'),\r\n d: makeSetterGetter('D')\r\n})\r\n","import {\r\n delimiter,\r\n dots,\r\n hyphen,\r\n isPathLetter,\r\n numbersWithDots,\r\n pathLetters\r\n} from '../modules/core/regex.js'\r\nimport { extend } from '../utils/adopter.js'\r\nimport { subClassArray } from './ArrayPolyfill.js'\r\nimport Point from './Point.js'\r\nimport SVGArray from './SVGArray.js'\r\nimport parser from '../modules/core/parser.js'\r\n\r\nconst PathArray = subClassArray('PathArray', SVGArray)\r\n\r\nexport default PathArray\r\n\r\nexport function pathRegReplace (a, b, c, d) {\r\n return c + d.replace(dots, ' .')\r\n}\r\n\r\nfunction arrayToString (a) {\r\n for (var i = 0, il = a.length, s = ''; i < il; i++) {\r\n s += a[i][0]\r\n\r\n if (a[i][1] != null) {\r\n s += a[i][1]\r\n\r\n if (a[i][2] != null) {\r\n s += ' '\r\n s += a[i][2]\r\n\r\n if (a[i][3] != null) {\r\n s += ' '\r\n s += a[i][3]\r\n s += ' '\r\n s += a[i][4]\r\n\r\n if (a[i][5] != null) {\r\n s += ' '\r\n s += a[i][5]\r\n s += ' '\r\n s += a[i][6]\r\n\r\n if (a[i][7] != null) {\r\n s += ' '\r\n s += a[i][7]\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return s + ' '\r\n}\r\n\r\nconst pathHandlers = {\r\n M: function (c, p, p0) {\r\n p.x = p0.x = c[0]\r\n p.y = p0.y = c[1]\r\n\r\n return [ 'M', p.x, p.y ]\r\n },\r\n L: function (c, p) {\r\n p.x = c[0]\r\n p.y = c[1]\r\n return [ 'L', c[0], c[1] ]\r\n },\r\n H: function (c, p) {\r\n p.x = c[0]\r\n return [ 'H', c[0] ]\r\n },\r\n V: function (c, p) {\r\n p.y = c[0]\r\n return [ 'V', c[0] ]\r\n },\r\n C: function (c, p) {\r\n p.x = c[4]\r\n p.y = c[5]\r\n return [ 'C', c[0], c[1], c[2], c[3], c[4], c[5] ]\r\n },\r\n S: function (c, p) {\r\n p.x = c[2]\r\n p.y = c[3]\r\n return [ 'S', c[0], c[1], c[2], c[3] ]\r\n },\r\n Q: function (c, p) {\r\n p.x = c[2]\r\n p.y = c[3]\r\n return [ 'Q', c[0], c[1], c[2], c[3] ]\r\n },\r\n T: function (c, p) {\r\n p.x = c[0]\r\n p.y = c[1]\r\n return [ 'T', c[0], c[1] ]\r\n },\r\n Z: function (c, p, p0) {\r\n p.x = p0.x\r\n p.y = p0.y\r\n return [ 'Z' ]\r\n },\r\n A: function (c, p) {\r\n p.x = c[5]\r\n p.y = c[6]\r\n return [ 'A', c[0], c[1], c[2], c[3], c[4], c[5], c[6] ]\r\n }\r\n}\r\n\r\nconst mlhvqtcsaz = 'mlhvqtcsaz'.split('')\r\n\r\nfor (var i = 0, il = mlhvqtcsaz.length; i < il; ++i) {\r\n pathHandlers[mlhvqtcsaz[i]] = (function (i) {\r\n return function (c, p, p0) {\r\n if (i === 'H') c[0] = c[0] + p.x\r\n else if (i === 'V') c[0] = c[0] + p.y\r\n else if (i === 'A') {\r\n c[5] = c[5] + p.x\r\n c[6] = c[6] + p.y\r\n } else {\r\n for (var j = 0, jl = c.length; j < jl; ++j) {\r\n c[j] = c[j] + (j % 2 ? p.y : p.x)\r\n }\r\n }\r\n\r\n return pathHandlers[i](c, p, p0)\r\n }\r\n })(mlhvqtcsaz[i].toUpperCase())\r\n}\r\n\r\nextend(PathArray, {\r\n // Convert array to string\r\n toString () {\r\n return arrayToString(this)\r\n },\r\n\r\n // Move path string\r\n move (x, y) {\r\n // get bounding box of current situation\r\n var box = this.bbox()\r\n\r\n // get relative offset\r\n x -= box.x\r\n y -= box.y\r\n\r\n if (!isNaN(x) && !isNaN(y)) {\r\n // move every point\r\n for (var l, i = this.length - 1; i >= 0; i--) {\r\n l = this[i][0]\r\n\r\n if (l === 'M' || l === 'L' || l === 'T') {\r\n this[i][1] += x\r\n this[i][2] += y\r\n } else if (l === 'H') {\r\n this[i][1] += x\r\n } else if (l === 'V') {\r\n this[i][1] += y\r\n } else if (l === 'C' || l === 'S' || l === 'Q') {\r\n this[i][1] += x\r\n this[i][2] += y\r\n this[i][3] += x\r\n this[i][4] += y\r\n\r\n if (l === 'C') {\r\n this[i][5] += x\r\n this[i][6] += y\r\n }\r\n } else if (l === 'A') {\r\n this[i][6] += x\r\n this[i][7] += y\r\n }\r\n }\r\n }\r\n\r\n return this\r\n },\r\n\r\n // Resize path string\r\n size (width, height) {\r\n // get bounding box of current situation\r\n var box = this.bbox()\r\n var i, l\r\n\r\n // If the box width or height is 0 then we ignore\r\n // transformations on the respective axis\r\n box.width = box.width === 0 ? 1 : box.width\r\n box.height = box.height === 0 ? 1 : box.height\r\n\r\n // recalculate position of all points according to new size\r\n for (i = this.length - 1; i >= 0; i--) {\r\n l = this[i][0]\r\n\r\n if (l === 'M' || l === 'L' || l === 'T') {\r\n this[i][1] = ((this[i][1] - box.x) * width) / box.width + box.x\r\n this[i][2] = ((this[i][2] - box.y) * height) / box.height + box.y\r\n } else if (l === 'H') {\r\n this[i][1] = ((this[i][1] - box.x) * width) / box.width + box.x\r\n } else if (l === 'V') {\r\n this[i][1] = ((this[i][1] - box.y) * height) / box.height + box.y\r\n } else if (l === 'C' || l === 'S' || l === 'Q') {\r\n this[i][1] = ((this[i][1] - box.x) * width) / box.width + box.x\r\n this[i][2] = ((this[i][2] - box.y) * height) / box.height + box.y\r\n this[i][3] = ((this[i][3] - box.x) * width) / box.width + box.x\r\n this[i][4] = ((this[i][4] - box.y) * height) / box.height + box.y\r\n\r\n if (l === 'C') {\r\n this[i][5] = ((this[i][5] - box.x) * width) / box.width + box.x\r\n this[i][6] = ((this[i][6] - box.y) * height) / box.height + box.y\r\n }\r\n } else if (l === 'A') {\r\n // resize radii\r\n this[i][1] = (this[i][1] * width) / box.width\r\n this[i][2] = (this[i][2] * height) / box.height\r\n\r\n // move position values\r\n this[i][6] = ((this[i][6] - box.x) * width) / box.width + box.x\r\n this[i][7] = ((this[i][7] - box.y) * height) / box.height + box.y\r\n }\r\n }\r\n\r\n return this\r\n },\r\n\r\n // Test if the passed path array use the same path data commands as this path array\r\n equalCommands (pathArray) {\r\n var i, il, equalCommands\r\n\r\n pathArray = new PathArray(pathArray)\r\n\r\n equalCommands = this.length === pathArray.length\r\n for (i = 0, il = this.length; equalCommands && i < il; i++) {\r\n equalCommands = this[i][0] === pathArray[i][0]\r\n }\r\n\r\n return equalCommands\r\n },\r\n\r\n // Make path array morphable\r\n morph (pathArray) {\r\n pathArray = new PathArray(pathArray)\r\n\r\n if (this.equalCommands(pathArray)) {\r\n this.destination = pathArray\r\n } else {\r\n this.destination = null\r\n }\r\n\r\n return this\r\n },\r\n\r\n // Get morphed path array at given position\r\n at (pos) {\r\n // make sure a destination is defined\r\n if (!this.destination) return this\r\n\r\n var sourceArray = this\r\n var destinationArray = this.destination.value\r\n var array = []\r\n var pathArray = new PathArray()\r\n var i, il, j, jl\r\n\r\n // Animate has specified in the SVG spec\r\n // See: https://www.w3.org/TR/SVG11/paths.html#PathElement\r\n for (i = 0, il = sourceArray.length; i < il; i++) {\r\n array[i] = [ sourceArray[i][0] ]\r\n for (j = 1, jl = sourceArray[i].length; j < jl; j++) {\r\n array[i][j] = sourceArray[i][j] + (destinationArray[i][j] - sourceArray[i][j]) * pos\r\n }\r\n // For the two flags of the elliptical arc command, the SVG spec say:\r\n // Flags and booleans are interpolated as fractions between zero and one, with any non-zero value considered to be a value of one/true\r\n // Elliptical arc command as an array followed by corresponding indexes:\r\n // ['A', rx, ry, x-axis-rotation, large-arc-flag, sweep-flag, x, y]\r\n // 0 1 2 3 4 5 6 7\r\n if (array[i][0] === 'A') {\r\n array[i][4] = +(array[i][4] !== 0)\r\n array[i][5] = +(array[i][5] !== 0)\r\n }\r\n }\r\n\r\n // Directly modify the value of a path array, this is done this way for performance\r\n pathArray.value = array\r\n return pathArray\r\n },\r\n\r\n // Absolutize and parse path to array\r\n parse (array = [ [ 'M', 0, 0 ] ]) {\r\n // if it's already a patharray, no need to parse it\r\n if (array instanceof PathArray) return array\r\n\r\n // prepare for parsing\r\n var s\r\n var paramCnt = { M: 2, L: 2, H: 1, V: 1, C: 6, S: 4, Q: 4, T: 2, A: 7, Z: 0 }\r\n\r\n if (typeof array === 'string') {\r\n array = array\r\n .replace(numbersWithDots, pathRegReplace) // convert 45.123.123 to 45.123 .123\r\n .replace(pathLetters, ' $& ') // put some room between letters and numbers\r\n .replace(hyphen, '$1 -') // add space before hyphen\r\n .trim() // trim\r\n .split(delimiter) // split into array\r\n } else {\r\n array = array.reduce(function (prev, curr) {\r\n return [].concat.call(prev, curr)\r\n }, [])\r\n }\r\n\r\n // array now is an array containing all parts of a path e.g. ['M', '0', '0', 'L', '30', '30' ...]\r\n var result = []\r\n var p = new Point()\r\n var p0 = new Point()\r\n var index = 0\r\n var len = array.length\r\n\r\n do {\r\n // Test if we have a path letter\r\n if (isPathLetter.test(array[index])) {\r\n s = array[index]\r\n ++index\r\n // If last letter was a move command and we got no new, it defaults to [L]ine\r\n } else if (s === 'M') {\r\n s = 'L'\r\n } else if (s === 'm') {\r\n s = 'l'\r\n }\r\n\r\n result.push(pathHandlers[s].call(null,\r\n array.slice(index, (index = index + paramCnt[s.toUpperCase()])).map(parseFloat),\r\n p, p0\r\n )\r\n )\r\n } while (len > index)\r\n\r\n return result\r\n },\r\n\r\n // Get bounding box of path\r\n bbox () {\r\n parser().path.setAttribute('d', this.toString())\r\n return parser.nodes.path.getBBox()\r\n }\r\n})\r\n","import { Ease } from './Controller.js'\r\nimport {\r\n delimiter,\r\n numberAndUnit,\r\n pathLetters\r\n} from '../modules/core/regex.js'\r\nimport { extend } from '../utils/adopter.js'\r\nimport Color from '../types/Color.js'\r\nimport PathArray from '../types/PathArray.js'\r\nimport SVGArray from '../types/SVGArray.js'\r\nimport SVGNumber from '../types/SVGNumber.js'\r\n\r\nexport default class Morphable {\r\n constructor (stepper) {\r\n this._stepper = stepper || new Ease('-')\r\n\r\n this._from = null\r\n this._to = null\r\n this._type = null\r\n this._context = null\r\n this._morphObj = null\r\n }\r\n\r\n from (val) {\r\n if (val == null) {\r\n return this._from\r\n }\r\n\r\n this._from = this._set(val)\r\n return this\r\n }\r\n\r\n to (val) {\r\n if (val == null) {\r\n return this._to\r\n }\r\n\r\n this._to = this._set(val)\r\n return this\r\n }\r\n\r\n type (type) {\r\n // getter\r\n if (type == null) {\r\n return this._type\r\n }\r\n\r\n // setter\r\n this._type = type\r\n return this\r\n }\r\n\r\n _set (value) {\r\n if (!this._type) {\r\n var type = typeof value\r\n\r\n if (type === 'number') {\r\n this.type(SVGNumber)\r\n } else if (type === 'string') {\r\n if (Color.isColor(value)) {\r\n this.type(Color)\r\n } else if (delimiter.test(value)) {\r\n this.type(pathLetters.test(value)\r\n ? PathArray\r\n : SVGArray\r\n )\r\n } else if (numberAndUnit.test(value)) {\r\n this.type(SVGNumber)\r\n } else {\r\n this.type(NonMorphable)\r\n }\r\n } else if (morphableTypes.indexOf(value.constructor) > -1) {\r\n this.type(value.constructor)\r\n } else if (Array.isArray(value)) {\r\n this.type(SVGArray)\r\n } else if (type === 'object') {\r\n this.type(ObjectBag)\r\n } else {\r\n this.type(NonMorphable)\r\n }\r\n }\r\n\r\n var result = (new this._type(value))\r\n if (this._type === Color) {\r\n result = this._to ? result[this._to[4]]()\r\n : this._from ? result[this._from[4]]()\r\n : result\r\n }\r\n result = result.toArray()\r\n\r\n this._morphObj = this._morphObj || new this._type()\r\n this._context = this._context\r\n || Array.apply(null, Array(result.length))\r\n .map(Object)\r\n .map(function (o) {\r\n o.done = true\r\n return o\r\n })\r\n return result\r\n }\r\n\r\n stepper (stepper) {\r\n if (stepper == null) return this._stepper\r\n this._stepper = stepper\r\n return this\r\n }\r\n\r\n done () {\r\n var complete = this._context\r\n .map(this._stepper.done)\r\n .reduce(function (last, curr) {\r\n return last && curr\r\n }, true)\r\n return complete\r\n }\r\n\r\n at (pos) {\r\n var _this = this\r\n\r\n return this._morphObj.fromArray(\r\n this._from.map(function (i, index) {\r\n return _this._stepper.step(i, _this._to[index], pos, _this._context[index], _this._context)\r\n })\r\n )\r\n }\r\n}\r\n\r\nexport class NonMorphable {\r\n constructor (...args) {\r\n this.init(...args)\r\n }\r\n\r\n init (val) {\r\n val = Array.isArray(val) ? val[0] : val\r\n this.value = val\r\n return this\r\n }\r\n\r\n valueOf () {\r\n return this.value\r\n }\r\n\r\n toArray () {\r\n return [ this.value ]\r\n }\r\n}\r\n\r\nexport class TransformBag {\r\n constructor (...args) {\r\n this.init(...args)\r\n }\r\n\r\n init (obj) {\r\n if (Array.isArray(obj)) {\r\n obj = {\r\n scaleX: obj[0],\r\n scaleY: obj[1],\r\n shear: obj[2],\r\n rotate: obj[3],\r\n translateX: obj[4],\r\n translateY: obj[5],\r\n originX: obj[6],\r\n originY: obj[7]\r\n }\r\n }\r\n\r\n Object.assign(this, TransformBag.defaults, obj)\r\n return this\r\n }\r\n\r\n toArray () {\r\n var v = this\r\n\r\n return [\r\n v.scaleX,\r\n v.scaleY,\r\n v.shear,\r\n v.rotate,\r\n v.translateX,\r\n v.translateY,\r\n v.originX,\r\n v.originY\r\n ]\r\n }\r\n}\r\n\r\nTransformBag.defaults = {\r\n scaleX: 1,\r\n scaleY: 1,\r\n shear: 0,\r\n rotate: 0,\r\n translateX: 0,\r\n translateY: 0,\r\n originX: 0,\r\n originY: 0\r\n}\r\n\r\nexport class ObjectBag {\r\n constructor (...args) {\r\n this.init(...args)\r\n }\r\n\r\n init (objOrArr) {\r\n this.values = []\r\n\r\n if (Array.isArray(objOrArr)) {\r\n this.values = objOrArr\r\n return\r\n }\r\n\r\n objOrArr = objOrArr || {}\r\n var entries = []\r\n\r\n for (const i in objOrArr) {\r\n entries.push([ i, objOrArr[i] ])\r\n }\r\n\r\n entries.sort((a, b) => {\r\n return a[0] - b[0]\r\n })\r\n\r\n this.values = entries.reduce((last, curr) => last.concat(curr), [])\r\n return this\r\n }\r\n\r\n valueOf () {\r\n var obj = {}\r\n var arr = this.values\r\n\r\n for (var i = 0, len = arr.length; i < len; i += 2) {\r\n obj[arr[i]] = arr[i + 1]\r\n }\r\n\r\n return obj\r\n }\r\n\r\n toArray () {\r\n return this.values\r\n }\r\n}\r\n\r\nconst morphableTypes = [\r\n NonMorphable,\r\n TransformBag,\r\n ObjectBag\r\n]\r\n\r\nexport function registerMorphableType (type = []) {\r\n morphableTypes.push(...[].concat(type))\r\n}\r\n\r\nexport function makeMorphable () {\r\n extend(morphableTypes, {\r\n to (val) {\r\n return new Morphable()\r\n .type(this.constructor)\r\n .from(this.valueOf())\r\n .to(val)\r\n },\r\n fromArray (arr) {\r\n this.init(arr)\r\n return this\r\n }\r\n })\r\n}\r\n","import { nodeOrNew, register, wrapWithAttrCheck } from '../utils/adopter.js'\r\nimport { proportionalSize } from '../utils/utils.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport PathArray from '../types/PathArray.js'\r\nimport Shape from './Shape.js'\r\nimport baseFind from '../modules/core/selector.js'\r\n\r\nexport default class Path extends Shape {\r\n // Initialize node\r\n constructor (node) {\r\n super(nodeOrNew('path', node), node)\r\n }\r\n\r\n // Get array\r\n array () {\r\n return this._array || (this._array = new PathArray(this.attr('d')))\r\n }\r\n\r\n // Plot new path\r\n plot (d) {\r\n return (d == null) ? this.array()\r\n : this.clear().attr('d', typeof d === 'string' ? d : (this._array = new PathArray(d)))\r\n }\r\n\r\n // Clear array cache\r\n clear () {\r\n delete this._array\r\n return this\r\n }\r\n\r\n // Move by left top corner\r\n move (x, y) {\r\n return this.attr('d', this.array().move(x, y))\r\n }\r\n\r\n // Move by left top corner over x-axis\r\n x (x) {\r\n return x == null ? this.bbox().x : this.move(x, this.bbox().y)\r\n }\r\n\r\n // Move by left top corner over y-axis\r\n y (y) {\r\n return y == null ? this.bbox().y : this.move(this.bbox().x, y)\r\n }\r\n\r\n // Set element size to given width and height\r\n size (width, height) {\r\n var p = proportionalSize(this, width, height)\r\n return this.attr('d', this.array().size(p.width, p.height))\r\n }\r\n\r\n // Set width of element\r\n width (width) {\r\n return width == null ? this.bbox().width : this.size(width, this.bbox().height)\r\n }\r\n\r\n // Set height of element\r\n height (height) {\r\n return height == null ? this.bbox().height : this.size(this.bbox().width, height)\r\n }\r\n\r\n targets () {\r\n return baseFind('svg textpath [href*=\"' + this.id() + '\"]')\r\n }\r\n}\r\n\r\n// Define morphable array\r\nPath.prototype.MorphArray = PathArray\r\n\r\n// Add parent method\r\nregisterMethods({\r\n Container: {\r\n // Create a wrapped path element\r\n path: wrapWithAttrCheck(function (d) {\r\n // make sure plot is called as a setter\r\n return this.put(new Path()).plot(d || new PathArray())\r\n })\r\n }\r\n})\r\n\r\nregister(Path, 'Path')\r\n","import { proportionalSize } from '../../utils/utils.js'\r\nimport PointArray from '../../types/PointArray.js'\r\n\r\n// Get array\r\nexport function array () {\r\n return this._array || (this._array = new PointArray(this.attr('points')))\r\n}\r\n\r\n// Plot new path\r\nexport function plot (p) {\r\n return (p == null) ? this.array()\r\n : this.clear().attr('points', typeof p === 'string' ? p\r\n : (this._array = new PointArray(p)))\r\n}\r\n\r\n// Clear array cache\r\nexport function clear () {\r\n delete this._array\r\n return this\r\n}\r\n\r\n// Move by left top corner\r\nexport function move (x, y) {\r\n return this.attr('points', this.array().move(x, y))\r\n}\r\n\r\n// Set element size to given width and height\r\nexport function size (width, height) {\r\n const p = proportionalSize(this, width, height)\r\n return this.attr('points', this.array().size(p.width, p.height))\r\n}\r\n","import {\r\n extend,\r\n nodeOrNew,\r\n register,\r\n wrapWithAttrCheck\r\n} from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport PointArray from '../types/PointArray.js'\r\nimport Shape from './Shape.js'\r\nimport * as pointed from '../modules/core/pointed.js'\r\nimport * as poly from '../modules/core/poly.js'\r\n\r\nexport default class Polygon extends Shape {\r\n // Initialize node\r\n constructor (node) {\r\n super(nodeOrNew('polygon', node), node)\r\n }\r\n}\r\n\r\nregisterMethods({\r\n Container: {\r\n // Create a wrapped polygon element\r\n polygon: wrapWithAttrCheck(function (p) {\r\n // make sure plot is called as a setter\r\n return this.put(new Polygon()).plot(p || new PointArray())\r\n })\r\n }\r\n})\r\n\r\nextend(Polygon, pointed)\r\nextend(Polygon, poly)\r\nregister(Polygon, 'Polygon')\r\n","import {\r\n extend,\r\n nodeOrNew,\r\n register,\r\n wrapWithAttrCheck\r\n} from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport PointArray from '../types/PointArray.js'\r\nimport Shape from './Shape.js'\r\nimport * as pointed from '../modules/core/pointed.js'\r\nimport * as poly from '../modules/core/poly.js'\r\n\r\nexport default class Polyline extends Shape {\r\n // Initialize node\r\n constructor (node) {\r\n super(nodeOrNew('polyline', node), node)\r\n }\r\n}\r\n\r\nregisterMethods({\r\n Container: {\r\n // Create a wrapped polygon element\r\n polyline: wrapWithAttrCheck(function (p) {\r\n // make sure plot is called as a setter\r\n return this.put(new Polyline()).plot(p || new PointArray())\r\n })\r\n }\r\n})\r\n\r\nextend(Polyline, pointed)\r\nextend(Polyline, poly)\r\nregister(Polyline, 'Polyline')\r\n","import {\r\n extend,\r\n nodeOrNew,\r\n register,\r\n wrapWithAttrCheck\r\n} from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport { rx, ry } from '../modules/core/circled.js'\r\nimport Shape from './Shape.js'\r\n\r\nexport default class Rect extends Shape {\r\n // Initialize node\r\n constructor (node) {\r\n super(nodeOrNew('rect', node), node)\r\n }\r\n}\r\n\r\nextend(Rect, { rx, ry })\r\n\r\nregisterMethods({\r\n Container: {\r\n // Create a rect element\r\n rect: wrapWithAttrCheck(function (width, height) {\r\n return this.put(new Rect()).size(width, height)\r\n })\r\n }\r\n})\r\n\r\nregister(Rect, 'Rect')\r\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 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.github.io/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !arrayMethodHasSpeciesSupport('splice') }, {\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","export default class Queue {\r\n constructor () {\r\n this._first = null\r\n this._last = null\r\n }\r\n\r\n push (value) {\r\n // An item stores an id and the provided value\r\n var item = value.next ? value : { value: value, next: null, prev: null }\r\n\r\n // Deal with the queue being empty or populated\r\n if (this._last) {\r\n item.prev = this._last\r\n this._last.next = item\r\n this._last = item\r\n } else {\r\n this._last = item\r\n this._first = item\r\n }\r\n\r\n // Return the current item\r\n return item\r\n }\r\n\r\n shift () {\r\n // Check if we have a value\r\n var remove = this._first\r\n if (!remove) return null\r\n\r\n // If we do, remove it and relink things\r\n this._first = remove.next\r\n if (this._first) this._first.prev = null\r\n this._last = this._first ? this._last : null\r\n return remove.value\r\n }\r\n\r\n // Shows us the first item in the list\r\n first () {\r\n return this._first && this._first.value\r\n }\r\n\r\n // Shows us the last item in the list\r\n last () {\r\n return this._last && this._last.value\r\n }\r\n\r\n // Removes the item that was returned from the push\r\n remove (item) {\r\n // Relink the previous item\r\n if (item.prev) item.prev.next = item.next\r\n if (item.next) item.next.prev = item.prev\r\n if (item === this._last) this._last = item.prev\r\n if (item === this._first) this._first = item.next\r\n\r\n // Invalidate item\r\n item.prev = null\r\n item.next = null\r\n }\r\n}\r\n","import { globals } from '../utils/window.js'\r\nimport Queue from './Queue.js'\r\n\r\nconst Animator = {\r\n nextDraw: null,\r\n frames: new Queue(),\r\n timeouts: new Queue(),\r\n immediates: new Queue(),\r\n timer: () => globals.window.performance || globals.window.Date,\r\n transforms: [],\r\n\r\n frame (fn) {\r\n // Store the node\r\n var node = Animator.frames.push({ run: fn })\r\n\r\n // Request an animation frame if we don't have one\r\n if (Animator.nextDraw === null) {\r\n Animator.nextDraw = globals.window.requestAnimationFrame(Animator._draw)\r\n }\r\n\r\n // Return the node so we can remove it easily\r\n return node\r\n },\r\n\r\n timeout (fn, delay) {\r\n delay = delay || 0\r\n\r\n // Work out when the event should fire\r\n var time = Animator.timer().now() + delay\r\n\r\n // Add the timeout to the end of the queue\r\n var node = Animator.timeouts.push({ run: fn, time: time })\r\n\r\n // Request another animation frame if we need one\r\n if (Animator.nextDraw === null) {\r\n Animator.nextDraw = globals.window.requestAnimationFrame(Animator._draw)\r\n }\r\n\r\n return node\r\n },\r\n\r\n immediate (fn) {\r\n // Add the immediate fn to the end of the queue\r\n var node = Animator.immediates.push(fn)\r\n // Request another animation frame if we need one\r\n if (Animator.nextDraw === null) {\r\n Animator.nextDraw = globals.window.requestAnimationFrame(Animator._draw)\r\n }\r\n\r\n return node\r\n },\r\n\r\n cancelFrame (node) {\r\n node != null && Animator.frames.remove(node)\r\n },\r\n\r\n clearTimeout (node) {\r\n node != null && Animator.timeouts.remove(node)\r\n },\r\n\r\n cancelImmediate (node) {\r\n node != null && Animator.immediates.remove(node)\r\n },\r\n\r\n _draw (now) {\r\n // Run all the timeouts we can run, if they are not ready yet, add them\r\n // to the end of the queue immediately! (bad timeouts!!! [sarcasm])\r\n var nextTimeout = null\r\n var lastTimeout = Animator.timeouts.last()\r\n while ((nextTimeout = Animator.timeouts.shift())) {\r\n // Run the timeout if its time, or push it to the end\r\n if (now >= nextTimeout.time) {\r\n nextTimeout.run()\r\n } else {\r\n Animator.timeouts.push(nextTimeout)\r\n }\r\n\r\n // If we hit the last item, we should stop shifting out more items\r\n if (nextTimeout === lastTimeout) break\r\n }\r\n\r\n // Run all of the animation frames\r\n var nextFrame = null\r\n var lastFrame = Animator.frames.last()\r\n while ((nextFrame !== lastFrame) && (nextFrame = Animator.frames.shift())) {\r\n nextFrame.run(now)\r\n }\r\n\r\n var nextImmediate = null\r\n while ((nextImmediate = Animator.immediates.shift())) {\r\n nextImmediate()\r\n }\r\n\r\n // If we have remaining timeouts or frames, draw until we don't anymore\r\n Animator.nextDraw = Animator.timeouts.first() || Animator.frames.first()\r\n ? globals.window.requestAnimationFrame(Animator._draw)\r\n : null\r\n }\r\n}\r\n\r\nexport default Animator\r\n","import { globals } from '../utils/window.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport Animator from './Animator.js'\r\nimport EventTarget from '../types/EventTarget.js'\r\n\r\nvar makeSchedule = function (runnerInfo) {\r\n var start = runnerInfo.start\r\n var duration = runnerInfo.runner.duration()\r\n var end = start + duration\r\n return { start: start, duration: duration, end: end, runner: runnerInfo.runner }\r\n}\r\n\r\nconst defaultSource = function () {\r\n const w = globals.window\r\n return (w.performance || w.Date).now()\r\n}\r\n\r\nexport default class Timeline extends EventTarget {\r\n // Construct a new timeline on the given element\r\n constructor (timeSource = defaultSource) {\r\n super()\r\n\r\n this._timeSource = timeSource\r\n\r\n // Store the timing variables\r\n this._startTime = 0\r\n this._speed = 1.0\r\n\r\n // Determines how long a runner is hold in memory. Can be a dt or true/false\r\n this._persist = 0\r\n\r\n // Keep track of the running animations and their starting parameters\r\n this._nextFrame = null\r\n this._paused = true\r\n this._runners = []\r\n this._runnerIds = []\r\n this._lastRunnerId = -1\r\n this._time = 0\r\n this._lastSourceTime = 0\r\n this._lastStepTime = 0\r\n\r\n // Make sure that step is always called in class context\r\n this._step = this._stepFn.bind(this, false)\r\n this._stepImmediate = this._stepFn.bind(this, true)\r\n }\r\n\r\n // schedules a runner on the timeline\r\n schedule (runner, delay, when) {\r\n if (runner == null) {\r\n return this._runners.map(makeSchedule)\r\n }\r\n\r\n // The start time for the next animation can either be given explicitly,\r\n // derived from the current timeline time or it can be relative to the\r\n // last start time to chain animations direclty\r\n\r\n var absoluteStartTime = 0\r\n var endTime = this.getEndTime()\r\n delay = delay || 0\r\n\r\n // Work out when to start the animation\r\n if (when == null || when === 'last' || when === 'after') {\r\n // Take the last time and increment\r\n absoluteStartTime = endTime\r\n } else if (when === 'absolute' || when === 'start') {\r\n absoluteStartTime = delay\r\n delay = 0\r\n } else if (when === 'now') {\r\n absoluteStartTime = this._time\r\n } else if (when === 'relative') {\r\n const runnerInfo = this._runners[runner.id]\r\n if (runnerInfo) {\r\n absoluteStartTime = runnerInfo.start + delay\r\n delay = 0\r\n }\r\n } else {\r\n throw new Error('Invalid value for the \"when\" parameter')\r\n }\r\n\r\n // Manage runner\r\n runner.unschedule()\r\n runner.timeline(this)\r\n\r\n const persist = runner.persist()\r\n const runnerInfo = {\r\n persist: persist === null ? this._persist : persist,\r\n start: absoluteStartTime + delay,\r\n runner\r\n }\r\n\r\n this._lastRunnerId = runner.id\r\n\r\n this._runners.push(runnerInfo)\r\n this._runners.sort((a, b) => a.start - b.start)\r\n this._runnerIds = this._runners.map(info => info.runner.id)\r\n\r\n this.updateTime()._continue()\r\n return this\r\n }\r\n\r\n // Remove the runner from this timeline\r\n unschedule (runner) {\r\n var index = this._runnerIds.indexOf(runner.id)\r\n if (index < 0) return this\r\n\r\n this._runners.splice(index, 1)\r\n this._runnerIds.splice(index, 1)\r\n\r\n runner.timeline(null)\r\n return this\r\n }\r\n\r\n // Calculates the end of the timeline\r\n getEndTime () {\r\n var lastRunnerInfo = this._runners[this._runnerIds.indexOf(this._lastRunnerId)]\r\n var lastDuration = lastRunnerInfo ? lastRunnerInfo.runner.duration() : 0\r\n var lastStartTime = lastRunnerInfo ? lastRunnerInfo.start : 0\r\n return lastStartTime + lastDuration\r\n }\r\n\r\n getEndTimeOfTimeline () {\r\n let lastEndTime = 0\r\n for (var i = 0; i < this._runners.length; i++) {\r\n const runnerInfo = this._runners[i]\r\n var duration = runnerInfo ? runnerInfo.runner.duration() : 0\r\n var startTime = runnerInfo ? runnerInfo.start : 0\r\n const endTime = startTime + duration\r\n if (endTime > lastEndTime) {\r\n lastEndTime = endTime\r\n }\r\n }\r\n return lastEndTime\r\n }\r\n\r\n // Makes sure, that after pausing the time doesn't jump\r\n updateTime () {\r\n if (!this.active()) {\r\n this._lastSourceTime = this._timeSource()\r\n }\r\n return this\r\n }\r\n\r\n play () {\r\n // Now make sure we are not paused and continue the animation\r\n this._paused = false\r\n return this.updateTime()._continue()\r\n }\r\n\r\n pause () {\r\n this._paused = true\r\n return this._continue()\r\n }\r\n\r\n stop () {\r\n // Go to start and pause\r\n this.time(0)\r\n return this.pause()\r\n }\r\n\r\n finish () {\r\n // Go to end and pause\r\n this.time(this.getEndTimeOfTimeline() + 1)\r\n return this.pause()\r\n }\r\n\r\n speed (speed) {\r\n if (speed == null) return this._speed\r\n this._speed = speed\r\n return this\r\n }\r\n\r\n reverse (yes) {\r\n var currentSpeed = this.speed()\r\n if (yes == null) return this.speed(-currentSpeed)\r\n\r\n var positive = Math.abs(currentSpeed)\r\n return this.speed(yes ? positive : -positive)\r\n }\r\n\r\n seek (dt) {\r\n return this.time(this._time + dt)\r\n }\r\n\r\n time (time) {\r\n if (time == null) return this._time\r\n this._time = time\r\n return this._continue(true)\r\n }\r\n\r\n persist (dtOrForever) {\r\n if (dtOrForever == null) return this._persist\r\n this._persist = dtOrForever\r\n return this\r\n }\r\n\r\n source (fn) {\r\n if (fn == null) return this._timeSource\r\n this._timeSource = fn\r\n return this\r\n }\r\n\r\n _stepFn (immediateStep = false) {\r\n // Get the time delta from the last time and update the time\r\n var time = this._timeSource()\r\n var dtSource = time - this._lastSourceTime\r\n\r\n if (immediateStep) dtSource = 0\r\n\r\n var dtTime = this._speed * dtSource + (this._time - this._lastStepTime)\r\n this._lastSourceTime = time\r\n\r\n // Only update the time if we use the timeSource.\r\n // Otherwise use the current time\r\n if (!immediateStep) {\r\n // Update the time\r\n this._time += dtTime\r\n this._time = this._time < 0 ? 0 : this._time\r\n }\r\n this._lastStepTime = this._time\r\n this.fire('time', this._time)\r\n\r\n // This is for the case that the timeline was seeked so that the time\r\n // is now before the startTime of the runner. Thats why we need to set\r\n // the runner to position 0\r\n\r\n // FIXME:\r\n // However, reseting in insertion order leads to bugs. Considering the case,\r\n // where 2 runners change the same attriute but in different times,\r\n // reseting both of them will lead to the case where the later defined\r\n // runner always wins the reset even if the other runner started earlier\r\n // and therefore should win the attribute battle\r\n // this can be solved by reseting them backwards\r\n for (var k = this._runners.length; k--;) {\r\n // Get and run the current runner and ignore it if its inactive\r\n const runnerInfo = this._runners[k]\r\n const runner = runnerInfo.runner\r\n\r\n // Make sure that we give the actual difference\r\n // between runner start time and now\r\n const dtToStart = this._time - runnerInfo.start\r\n\r\n // Dont run runner if not started yet\r\n // and try to reset it\r\n if (dtToStart <= 0) {\r\n runner.reset()\r\n }\r\n }\r\n\r\n // Run all of the runners directly\r\n var runnersLeft = false\r\n for (var i = 0, len = this._runners.length; i < len; i++) {\r\n // Get and run the current runner and ignore it if its inactive\r\n const runnerInfo = this._runners[i]\r\n const runner = runnerInfo.runner\r\n let dt = dtTime\r\n\r\n // Make sure that we give the actual difference\r\n // between runner start time and now\r\n const dtToStart = this._time - runnerInfo.start\r\n\r\n // Dont run runner if not started yet\r\n if (dtToStart <= 0) {\r\n runnersLeft = true\r\n continue\r\n } else if (dtToStart < dt) {\r\n // Adjust dt to make sure that animation is on point\r\n dt = dtToStart\r\n }\r\n\r\n if (!runner.active()) continue\r\n\r\n // If this runner is still going, signal that we need another animation\r\n // frame, otherwise, remove the completed runner\r\n var finished = runner.step(dt).done\r\n if (!finished) {\r\n runnersLeft = true\r\n // continue\r\n } else if (runnerInfo.persist !== true) {\r\n // runner is finished. And runner might get removed\r\n var endTime = runner.duration() - runner.time() + this._time\r\n\r\n if (endTime + runnerInfo.persist < this._time) {\r\n // Delete runner and correct index\r\n runner.unschedule()\r\n --i\r\n --len\r\n }\r\n }\r\n }\r\n\r\n // Basically: we continue when there are runners right from us in time\r\n // when -->, and when runners are left from us when <--\r\n if ((runnersLeft && !(this._speed < 0 && this._time === 0)) || (this._runnerIds.length && this._speed < 0 && this._time > 0)) {\r\n this._continue()\r\n } else {\r\n this.pause()\r\n this.fire('finished')\r\n }\r\n\r\n return this\r\n }\r\n\r\n // Checks if we are running and continues the animation\r\n _continue (immediateStep = false) {\r\n Animator.cancelFrame(this._nextFrame)\r\n this._nextFrame = null\r\n\r\n if (immediateStep) return this._stepImmediate()\r\n if (this._paused) return this\r\n\r\n this._nextFrame = Animator.frame(this._step)\r\n return this\r\n }\r\n\r\n active () {\r\n return !!this._nextFrame\r\n }\r\n}\r\n\r\nregisterMethods({\r\n Element: {\r\n timeline: function (timeline) {\r\n if (timeline == null) {\r\n this._timeline = (this._timeline || new Timeline())\r\n return this._timeline\r\n } else {\r\n this._timeline = timeline\r\n return this\r\n }\r\n }\r\n }\r\n})\r\n","import { Controller, Ease, Stepper } from './Controller.js'\r\nimport { extend, register } from '../utils/adopter.js'\r\nimport { from, to } from '../modules/core/gradiented.js'\r\nimport { getOrigin } from '../utils/utils.js'\r\nimport { noop, timeline } from '../modules/core/defaults.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport { rx, ry } from '../modules/core/circled.js'\r\nimport Animator from './Animator.js'\r\nimport Box from '../types/Box.js'\r\nimport EventTarget from '../types/EventTarget.js'\r\nimport Matrix from '../types/Matrix.js'\r\nimport Morphable, { TransformBag } from './Morphable.js'\r\nimport Point from '../types/Point.js'\r\nimport SVGNumber from '../types/SVGNumber.js'\r\nimport Timeline from './Timeline.js'\r\n\r\nexport default class Runner extends EventTarget {\r\n constructor (options) {\r\n super()\r\n\r\n // Store a unique id on the runner, so that we can identify it later\r\n this.id = Runner.id++\r\n\r\n // Ensure a default value\r\n options = options == null\r\n ? timeline.duration\r\n : options\r\n\r\n // Ensure that we get a controller\r\n options = typeof options === 'function'\r\n ? new Controller(options)\r\n : options\r\n\r\n // Declare all of the variables\r\n this._element = null\r\n this._timeline = null\r\n this.done = false\r\n this._queue = []\r\n\r\n // Work out the stepper and the duration\r\n this._duration = typeof options === 'number' && options\r\n this._isDeclarative = options instanceof Controller\r\n this._stepper = this._isDeclarative ? options : new Ease()\r\n\r\n // We copy the current values from the timeline because they can change\r\n this._history = {}\r\n\r\n // Store the state of the runner\r\n this.enabled = true\r\n this._time = 0\r\n this._lastTime = 0\r\n\r\n // At creation, the runner is in reseted state\r\n this._reseted = true\r\n\r\n // Save transforms applied to this runner\r\n this.transforms = new Matrix()\r\n this.transformId = 1\r\n\r\n // Looping variables\r\n this._haveReversed = false\r\n this._reverse = false\r\n this._loopsDone = 0\r\n this._swing = false\r\n this._wait = 0\r\n this._times = 1\r\n\r\n this._frameId = null\r\n\r\n // Stores how long a runner is stored after beeing done\r\n this._persist = this._isDeclarative ? true : null\r\n }\r\n\r\n /*\r\n Runner Definitions\r\n ==================\r\n These methods help us define the runtime behaviour of the Runner or they\r\n help us make new runners from the current runner\r\n */\r\n\r\n element (element) {\r\n if (element == null) return this._element\r\n this._element = element\r\n element._prepareRunner()\r\n return this\r\n }\r\n\r\n timeline (timeline) {\r\n // check explicitly for undefined so we can set the timeline to null\r\n if (typeof timeline === 'undefined') return this._timeline\r\n this._timeline = timeline\r\n return this\r\n }\r\n\r\n animate (duration, delay, when) {\r\n var o = Runner.sanitise(duration, delay, when)\r\n var runner = new Runner(o.duration)\r\n if (this._timeline) runner.timeline(this._timeline)\r\n if (this._element) runner.element(this._element)\r\n return runner.loop(o).schedule(o.delay, o.when)\r\n }\r\n\r\n schedule (timeline, delay, when) {\r\n // The user doesn't need to pass a timeline if we already have one\r\n if (!(timeline instanceof Timeline)) {\r\n when = delay\r\n delay = timeline\r\n timeline = this.timeline()\r\n }\r\n\r\n // If there is no timeline, yell at the user...\r\n if (!timeline) {\r\n throw Error('Runner cannot be scheduled without timeline')\r\n }\r\n\r\n // Schedule the runner on the timeline provided\r\n timeline.schedule(this, delay, when)\r\n return this\r\n }\r\n\r\n unschedule () {\r\n var timeline = this.timeline()\r\n timeline && timeline.unschedule(this)\r\n return this\r\n }\r\n\r\n loop (times, swing, wait) {\r\n // Deal with the user passing in an object\r\n if (typeof times === 'object') {\r\n swing = times.swing\r\n wait = times.wait\r\n times = times.times\r\n }\r\n\r\n // Sanitise the values and store them\r\n this._times = times || Infinity\r\n this._swing = swing || false\r\n this._wait = wait || 0\r\n\r\n // Allow true to be passed\r\n if (this._times === true) { this._times = Infinity }\r\n\r\n return this\r\n }\r\n\r\n delay (delay) {\r\n return this.animate(0, delay)\r\n }\r\n\r\n /*\r\n Basic Functionality\r\n ===================\r\n These methods allow us to attach basic functions to the runner directly\r\n */\r\n\r\n queue (initFn, runFn, retargetFn, isTransform) {\r\n this._queue.push({\r\n initialiser: initFn || noop,\r\n runner: runFn || noop,\r\n retarget: retargetFn,\r\n isTransform: isTransform,\r\n initialised: false,\r\n finished: false\r\n })\r\n var timeline = this.timeline()\r\n timeline && this.timeline()._continue()\r\n return this\r\n }\r\n\r\n during (fn) {\r\n return this.queue(null, fn)\r\n }\r\n\r\n after (fn) {\r\n return this.on('finished', fn)\r\n }\r\n\r\n /*\r\n Runner animation methods\r\n ========================\r\n Control how the animation plays\r\n */\r\n\r\n time (time) {\r\n if (time == null) {\r\n return this._time\r\n }\r\n const dt = time - this._time\r\n this.step(dt)\r\n return this\r\n }\r\n\r\n duration () {\r\n return this._times * (this._wait + this._duration) - this._wait\r\n }\r\n\r\n loops (p) {\r\n var loopDuration = this._duration + this._wait\r\n if (p == null) {\r\n var loopsDone = Math.floor(this._time / loopDuration)\r\n var relativeTime = (this._time - loopsDone * loopDuration)\r\n var position = relativeTime / this._duration\r\n return Math.min(loopsDone + position, this._times)\r\n }\r\n var whole = Math.floor(p)\r\n var partial = p % 1\r\n var time = loopDuration * whole + this._duration * partial\r\n return this.time(time)\r\n }\r\n\r\n persist (dtOrForever) {\r\n if (dtOrForever == null) return this._persist\r\n this._persist = dtOrForever\r\n return this\r\n }\r\n\r\n position (p) {\r\n // Get all of the variables we need\r\n var x = this._time\r\n var d = this._duration\r\n var w = this._wait\r\n var t = this._times\r\n var s = this._swing\r\n var r = this._reverse\r\n var position\r\n\r\n if (p == null) {\r\n /*\r\n This function converts a time to a position in the range [0, 1]\r\n The full explanation can be found in this desmos demonstration\r\n https://www.desmos.com/calculator/u4fbavgche\r\n The logic is slightly simplified here because we can use booleans\r\n */\r\n\r\n // Figure out the value without thinking about the start or end time\r\n const f = function (x) {\r\n var swinging = s * Math.floor(x % (2 * (w + d)) / (w + d))\r\n var backwards = (swinging && !r) || (!swinging && r)\r\n var uncliped = Math.pow(-1, backwards) * (x % (w + d)) / d + backwards\r\n var clipped = Math.max(Math.min(uncliped, 1), 0)\r\n return clipped\r\n }\r\n\r\n // Figure out the value by incorporating the start time\r\n var endTime = t * (w + d) - w\r\n position = x <= 0 ? Math.round(f(1e-5))\r\n : x < endTime ? f(x)\r\n : Math.round(f(endTime - 1e-5))\r\n return position\r\n }\r\n\r\n // Work out the loops done and add the position to the loops done\r\n var loopsDone = Math.floor(this.loops())\r\n var swingForward = s && (loopsDone % 2 === 0)\r\n var forwards = (swingForward && !r) || (r && swingForward)\r\n position = loopsDone + (forwards ? p : 1 - p)\r\n return this.loops(position)\r\n }\r\n\r\n progress (p) {\r\n if (p == null) {\r\n return Math.min(1, this._time / this.duration())\r\n }\r\n return this.time(p * this.duration())\r\n }\r\n\r\n step (dt) {\r\n // If we are inactive, this stepper just gets skipped\r\n if (!this.enabled) return this\r\n\r\n // Update the time and get the new position\r\n dt = dt == null ? 16 : dt\r\n this._time += dt\r\n var position = this.position()\r\n\r\n // Figure out if we need to run the stepper in this frame\r\n var running = this._lastPosition !== position && this._time >= 0\r\n this._lastPosition = position\r\n\r\n // Figure out if we just started\r\n var duration = this.duration()\r\n var justStarted = this._lastTime <= 0 && this._time > 0\r\n var justFinished = this._lastTime < duration && this._time >= duration\r\n\r\n this._lastTime = this._time\r\n if (justStarted) {\r\n this.fire('start', this)\r\n }\r\n\r\n // Work out if the runner is finished set the done flag here so animations\r\n // know, that they are running in the last step (this is good for\r\n // transformations which can be merged)\r\n var declarative = this._isDeclarative\r\n this.done = !declarative && !justFinished && this._time >= duration\r\n\r\n // Runner is running. So its not in reseted state anymore\r\n this._reseted = false\r\n\r\n // Call initialise and the run function\r\n if (running || declarative) {\r\n this._initialise(running)\r\n\r\n // clear the transforms on this runner so they dont get added again and again\r\n this.transforms = new Matrix()\r\n var converged = this._run(declarative ? dt : position)\r\n\r\n this.fire('step', this)\r\n }\r\n // correct the done flag here\r\n // declaritive animations itself know when they converged\r\n this.done = this.done || (converged && declarative)\r\n if (justFinished) {\r\n this.fire('finished', this)\r\n }\r\n return this\r\n }\r\n\r\n reset () {\r\n if (this._reseted) return this\r\n this.time(0)\r\n this._reseted = true\r\n return this\r\n }\r\n\r\n finish () {\r\n return this.step(Infinity)\r\n }\r\n\r\n reverse (reverse) {\r\n this._reverse = reverse == null ? !this._reverse : reverse\r\n return this\r\n }\r\n\r\n ease (fn) {\r\n this._stepper = new Ease(fn)\r\n return this\r\n }\r\n\r\n active (enabled) {\r\n if (enabled == null) return this.enabled\r\n this.enabled = enabled\r\n return this\r\n }\r\n\r\n /*\r\n Private Methods\r\n ===============\r\n Methods that shouldn't be used externally\r\n */\r\n\r\n // Save a morpher to the morpher list so that we can retarget it later\r\n _rememberMorpher (method, morpher) {\r\n this._history[method] = {\r\n morpher: morpher,\r\n caller: this._queue[this._queue.length - 1]\r\n }\r\n\r\n // We have to resume the timeline in case a controller\r\n // is already done without beeing ever run\r\n // This can happen when e.g. this is done:\r\n // anim = el.animate(new SVG.Spring)\r\n // and later\r\n // anim.move(...)\r\n if (this._isDeclarative) {\r\n var timeline = this.timeline()\r\n timeline && timeline.play()\r\n }\r\n }\r\n\r\n // Try to set the target for a morpher if the morpher exists, otherwise\r\n // do nothing and return false\r\n _tryRetarget (method, target, extra) {\r\n if (this._history[method]) {\r\n // if the last method wasnt even initialised, throw it away\r\n if (!this._history[method].caller.initialised) {\r\n const index = this._queue.indexOf(this._history[method].caller)\r\n this._queue.splice(index, 1)\r\n return false\r\n }\r\n\r\n // for the case of transformations, we use the special retarget function\r\n // which has access to the outer scope\r\n if (this._history[method].caller.retarget) {\r\n this._history[method].caller.retarget(target, extra)\r\n // for everything else a simple morpher change is sufficient\r\n } else {\r\n this._history[method].morpher.to(target)\r\n }\r\n\r\n this._history[method].caller.finished = false\r\n var timeline = this.timeline()\r\n timeline && timeline.play()\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n // Run each initialise function in the runner if required\r\n _initialise (running) {\r\n // If we aren't running, we shouldn't initialise when not declarative\r\n if (!running && !this._isDeclarative) return\r\n\r\n // Loop through all of the initialisers\r\n for (var i = 0, len = this._queue.length; i < len; ++i) {\r\n // Get the current initialiser\r\n var current = this._queue[i]\r\n\r\n // Determine whether we need to initialise\r\n var needsIt = this._isDeclarative || (!current.initialised && running)\r\n running = !current.finished\r\n\r\n // Call the initialiser if we need to\r\n if (needsIt && running) {\r\n current.initialiser.call(this)\r\n current.initialised = true\r\n }\r\n }\r\n }\r\n\r\n // Run each run function for the position or dt given\r\n _run (positionOrDt) {\r\n // Run all of the _queue directly\r\n var allfinished = true\r\n for (var i = 0, len = this._queue.length; i < len; ++i) {\r\n // Get the current function to run\r\n var current = this._queue[i]\r\n\r\n // Run the function if its not finished, we keep track of the finished\r\n // flag for the sake of declarative _queue\r\n var converged = current.runner.call(this, positionOrDt)\r\n current.finished = current.finished || (converged === true)\r\n allfinished = allfinished && current.finished\r\n }\r\n\r\n // We report when all of the constructors are finished\r\n return allfinished\r\n }\r\n\r\n addTransform (transform, index) {\r\n this.transforms.lmultiplyO(transform)\r\n return this\r\n }\r\n\r\n clearTransform () {\r\n this.transforms = new Matrix()\r\n return this\r\n }\r\n\r\n // TODO: Keep track of all transformations so that deletion is faster\r\n clearTransformsFromQueue () {\r\n if (!this.done || !this._timeline || !this._timeline._runnerIds.includes(this.id)) {\r\n this._queue = this._queue.filter((item) => {\r\n return !item.isTransform\r\n })\r\n }\r\n }\r\n\r\n static sanitise (duration, delay, when) {\r\n // Initialise the default parameters\r\n var times = 1\r\n var swing = false\r\n var wait = 0\r\n duration = duration || timeline.duration\r\n delay = delay || timeline.delay\r\n when = when || 'last'\r\n\r\n // If we have an object, unpack the values\r\n if (typeof duration === 'object' && !(duration instanceof Stepper)) {\r\n delay = duration.delay || delay\r\n when = duration.when || when\r\n swing = duration.swing || swing\r\n times = duration.times || times\r\n wait = duration.wait || wait\r\n duration = duration.duration || timeline.duration\r\n }\r\n\r\n return {\r\n duration: duration,\r\n delay: delay,\r\n swing: swing,\r\n times: times,\r\n wait: wait,\r\n when: when\r\n }\r\n }\r\n}\r\n\r\nRunner.id = 0\r\n\r\nclass FakeRunner {\r\n constructor (transforms = new Matrix(), id = -1, done = true) {\r\n this.transforms = transforms\r\n this.id = id\r\n this.done = done\r\n }\r\n\r\n clearTransformsFromQueue () { }\r\n}\r\n\r\nextend([ Runner, FakeRunner ], {\r\n mergeWith (runner) {\r\n return new FakeRunner(\r\n runner.transforms.lmultiply(this.transforms),\r\n runner.id\r\n )\r\n }\r\n})\r\n\r\n// FakeRunner.emptyRunner = new FakeRunner()\r\n\r\nconst lmultiply = (last, curr) => last.lmultiplyO(curr)\r\nconst getRunnerTransform = (runner) => runner.transforms\r\n\r\nfunction mergeTransforms () {\r\n // Find the matrix to apply to the element and apply it\r\n const runners = this._transformationRunners.runners\r\n const netTransform = runners\r\n .map(getRunnerTransform)\r\n .reduce(lmultiply, new Matrix())\r\n\r\n this.transform(netTransform)\r\n\r\n this._transformationRunners.merge()\r\n\r\n if (this._transformationRunners.length() === 1) {\r\n this._frameId = null\r\n }\r\n}\r\n\r\nclass RunnerArray {\r\n constructor () {\r\n this.runners = []\r\n this.ids = []\r\n }\r\n\r\n add (runner) {\r\n if (this.runners.includes(runner)) return\r\n const id = runner.id + 1\r\n\r\n this.runners.push(runner)\r\n this.ids.push(id)\r\n\r\n return this\r\n }\r\n\r\n getByID (id) {\r\n return this.runners[this.ids.indexOf(id + 1)]\r\n }\r\n\r\n remove (id) {\r\n const index = this.ids.indexOf(id + 1)\r\n this.ids.splice(index, 1)\r\n this.runners.splice(index, 1)\r\n return this\r\n }\r\n\r\n merge () {\r\n let lastRunner = null\r\n this.runners.forEach((runner, i) => {\r\n\r\n const condition = lastRunner\r\n && runner.done && lastRunner.done\r\n // don't merge runner when persisted on timeline\r\n && (!runner._timeline || !runner._timeline._runnerIds.includes(runner.id))\r\n && (!lastRunner._timeline || !lastRunner._timeline._runnerIds.includes(lastRunner.id))\r\n\r\n if (condition) {\r\n // the +1 happens in the function\r\n this.remove(runner.id)\r\n this.edit(lastRunner.id, runner.mergeWith(lastRunner))\r\n }\r\n\r\n lastRunner = runner\r\n })\r\n\r\n return this\r\n }\r\n\r\n edit (id, newRunner) {\r\n const index = this.ids.indexOf(id + 1)\r\n this.ids.splice(index, 1, id + 1)\r\n this.runners.splice(index, 1, newRunner)\r\n return this\r\n }\r\n\r\n length () {\r\n return this.ids.length\r\n }\r\n\r\n clearBefore (id) {\r\n const deleteCnt = this.ids.indexOf(id + 1) || 1\r\n this.ids.splice(0, deleteCnt, 0)\r\n this.runners.splice(0, deleteCnt, new FakeRunner())\r\n .forEach((r) => r.clearTransformsFromQueue())\r\n return this\r\n }\r\n}\r\n\r\nregisterMethods({\r\n Element: {\r\n animate (duration, delay, when) {\r\n var o = Runner.sanitise(duration, delay, when)\r\n var timeline = this.timeline()\r\n return new Runner(o.duration)\r\n .loop(o)\r\n .element(this)\r\n .timeline(timeline.play())\r\n .schedule(o.delay, o.when)\r\n },\r\n\r\n delay (by, when) {\r\n return this.animate(0, by, when)\r\n },\r\n\r\n // this function searches for all runners on the element and deletes the ones\r\n // which run before the current one. This is because absolute transformations\r\n // overwfrite anything anyway so there is no need to waste time computing\r\n // other runners\r\n _clearTransformRunnersBefore (currentRunner) {\r\n this._transformationRunners.clearBefore(currentRunner.id)\r\n },\r\n\r\n _currentTransform (current) {\r\n return this._transformationRunners.runners\r\n // we need the equal sign here to make sure, that also transformations\r\n // on the same runner which execute before the current transformation are\r\n // taken into account\r\n .filter((runner) => runner.id <= current.id)\r\n .map(getRunnerTransform)\r\n .reduce(lmultiply, new Matrix())\r\n },\r\n\r\n _addRunner (runner) {\r\n this._transformationRunners.add(runner)\r\n\r\n // Make sure that the runner merge is executed at the very end of\r\n // all Animator functions. Thats why we use immediate here to execute\r\n // the merge right after all frames are run\r\n Animator.cancelImmediate(this._frameId)\r\n this._frameId = Animator.immediate(mergeTransforms.bind(this))\r\n },\r\n\r\n _prepareRunner () {\r\n if (this._frameId == null) {\r\n this._transformationRunners = new RunnerArray()\r\n .add(new FakeRunner(new Matrix(this)))\r\n }\r\n }\r\n }\r\n})\r\n\r\nextend(Runner, {\r\n attr (a, v) {\r\n return this.styleAttr('attr', a, v)\r\n },\r\n\r\n // Add animatable styles\r\n css (s, v) {\r\n return this.styleAttr('css', s, v)\r\n },\r\n\r\n styleAttr (type, name, val) {\r\n // apply attributes individually\r\n if (typeof name === 'object') {\r\n for (var key in name) {\r\n this.styleAttr(type, key, name[key])\r\n }\r\n return this\r\n }\r\n\r\n var morpher = new Morphable(this._stepper).to(val)\r\n\r\n this.queue(function () {\r\n morpher = morpher.from(this.element()[type](name))\r\n }, function (pos) {\r\n this.element()[type](name, morpher.at(pos))\r\n return morpher.done()\r\n })\r\n\r\n return this\r\n },\r\n\r\n zoom (level, point) {\r\n if (this._tryRetarget('zoom', to, point)) return this\r\n\r\n var morpher = new Morphable(this._stepper).to(new SVGNumber(level))\r\n\r\n this.queue(function () {\r\n morpher = morpher.from(this.element().zoom())\r\n }, function (pos) {\r\n this.element().zoom(morpher.at(pos), point)\r\n return morpher.done()\r\n }, function (newLevel, newPoint) {\r\n point = newPoint\r\n morpher.to(newLevel)\r\n })\r\n\r\n this._rememberMorpher('zoom', morpher)\r\n return this\r\n },\r\n\r\n /**\r\n ** absolute transformations\r\n **/\r\n\r\n //\r\n // M v -----|-----(D M v = F v)------|-----> T v\r\n //\r\n // 1. define the final state (T) and decompose it (once)\r\n // t = [tx, ty, the, lam, sy, sx]\r\n // 2. on every frame: pull the current state of all previous transforms\r\n // (M - m can change)\r\n // and then write this as m = [tx0, ty0, the0, lam0, sy0, sx0]\r\n // 3. Find the interpolated matrix F(pos) = m + pos * (t - m)\r\n // - Note F(0) = M\r\n // - Note F(1) = T\r\n // 4. Now you get the delta matrix as a result: D = F * inv(M)\r\n\r\n transform (transforms, relative, affine) {\r\n // If we have a declarative function, we should retarget it if possible\r\n relative = transforms.relative || relative\r\n if (this._isDeclarative && !relative && this._tryRetarget('transform', transforms)) {\r\n return this\r\n }\r\n\r\n // Parse the parameters\r\n var isMatrix = Matrix.isMatrixLike(transforms)\r\n affine = transforms.affine != null\r\n ? transforms.affine\r\n : (affine != null ? affine : !isMatrix)\r\n\r\n // Create a morepher and set its type\r\n const morpher = new Morphable(this._stepper)\r\n .type(affine ? TransformBag : Matrix)\r\n\r\n let origin\r\n let element\r\n let current\r\n let currentAngle\r\n let startTransform\r\n\r\n function setup () {\r\n // make sure element and origin is defined\r\n element = element || this.element()\r\n origin = origin || getOrigin(transforms, element)\r\n\r\n startTransform = new Matrix(relative ? undefined : element)\r\n\r\n // add the runner to the element so it can merge transformations\r\n element._addRunner(this)\r\n\r\n // Deactivate all transforms that have run so far if we are absolute\r\n if (!relative) {\r\n element._clearTransformRunnersBefore(this)\r\n }\r\n }\r\n\r\n function run (pos) {\r\n // clear all other transforms before this in case something is saved\r\n // on this runner. We are absolute. We dont need these!\r\n if (!relative) this.clearTransform()\r\n\r\n const { x, y } = new Point(origin).transform(element._currentTransform(this))\r\n\r\n let target = new Matrix({ ...transforms, origin: [ x, y ] })\r\n let start = this._isDeclarative && current\r\n ? current\r\n : startTransform\r\n\r\n if (affine) {\r\n target = target.decompose(x, y)\r\n start = start.decompose(x, y)\r\n\r\n // Get the current and target angle as it was set\r\n const rTarget = target.rotate\r\n const rCurrent = start.rotate\r\n\r\n // Figure out the shortest path to rotate directly\r\n const possibilities = [ rTarget - 360, rTarget, rTarget + 360 ]\r\n const distances = possibilities.map(a => Math.abs(a - rCurrent))\r\n const shortest = Math.min(...distances)\r\n const index = distances.indexOf(shortest)\r\n target.rotate = possibilities[index]\r\n }\r\n\r\n if (relative) {\r\n // we have to be careful here not to overwrite the rotation\r\n // with the rotate method of Matrix\r\n if (!isMatrix) {\r\n target.rotate = transforms.rotate || 0\r\n }\r\n if (this._isDeclarative && currentAngle) {\r\n start.rotate = currentAngle\r\n }\r\n }\r\n\r\n morpher.from(start)\r\n morpher.to(target)\r\n\r\n const affineParameters = morpher.at(pos)\r\n currentAngle = affineParameters.rotate\r\n current = new Matrix(affineParameters)\r\n\r\n this.addTransform(current)\r\n element._addRunner(this)\r\n return morpher.done()\r\n }\r\n\r\n function retarget (newTransforms) {\r\n // only get a new origin if it changed since the last call\r\n if (\r\n (newTransforms.origin || 'center').toString()\r\n !== (transforms.origin || 'center').toString()\r\n ) {\r\n origin = getOrigin(transforms, element)\r\n }\r\n\r\n // overwrite the old transformations with the new ones\r\n transforms = { ...newTransforms, origin }\r\n }\r\n\r\n this.queue(setup, run, retarget, true)\r\n this._isDeclarative && this._rememberMorpher('transform', morpher)\r\n return this\r\n },\r\n\r\n // Animatable x-axis\r\n x (x, relative) {\r\n return this._queueNumber('x', x)\r\n },\r\n\r\n // Animatable y-axis\r\n y (y) {\r\n return this._queueNumber('y', y)\r\n },\r\n\r\n dx (x = 0) {\r\n return this._queueNumberDelta('x', x)\r\n },\r\n\r\n dy (y = 0) {\r\n return this._queueNumberDelta('y', y)\r\n },\r\n\r\n dmove (x, y) {\r\n return this.dx(x).dy(y)\r\n },\r\n\r\n _queueNumberDelta (method, to) {\r\n to = new SVGNumber(to)\r\n\r\n // Try to change the target if we have this method already registerd\r\n if (this._tryRetarget(method, to)) return this\r\n\r\n // Make a morpher and queue the animation\r\n var morpher = new Morphable(this._stepper).to(to)\r\n var from = null\r\n this.queue(function () {\r\n from = this.element()[method]()\r\n morpher.from(from)\r\n morpher.to(from + to)\r\n }, function (pos) {\r\n this.element()[method](morpher.at(pos))\r\n return morpher.done()\r\n }, function (newTo) {\r\n morpher.to(from + new SVGNumber(newTo))\r\n })\r\n\r\n // Register the morpher so that if it is changed again, we can retarget it\r\n this._rememberMorpher(method, morpher)\r\n return this\r\n },\r\n\r\n _queueObject (method, to) {\r\n // Try to change the target if we have this method already registerd\r\n if (this._tryRetarget(method, to)) return this\r\n\r\n // Make a morpher and queue the animation\r\n var morpher = new Morphable(this._stepper).to(to)\r\n this.queue(function () {\r\n morpher.from(this.element()[method]())\r\n }, function (pos) {\r\n this.element()[method](morpher.at(pos))\r\n return morpher.done()\r\n })\r\n\r\n // Register the morpher so that if it is changed again, we can retarget it\r\n this._rememberMorpher(method, morpher)\r\n return this\r\n },\r\n\r\n _queueNumber (method, value) {\r\n return this._queueObject(method, new SVGNumber(value))\r\n },\r\n\r\n // Animatable center x-axis\r\n cx (x) {\r\n return this._queueNumber('cx', x)\r\n },\r\n\r\n // Animatable center y-axis\r\n cy (y) {\r\n return this._queueNumber('cy', y)\r\n },\r\n\r\n // Add animatable move\r\n move (x, y) {\r\n return this.x(x).y(y)\r\n },\r\n\r\n // Add animatable center\r\n center (x, y) {\r\n return this.cx(x).cy(y)\r\n },\r\n\r\n // Add animatable size\r\n size (width, height) {\r\n // animate bbox based size for all other elements\r\n var box\r\n\r\n if (!width || !height) {\r\n box = this._element.bbox()\r\n }\r\n\r\n if (!width) {\r\n width = box.width / box.height * height\r\n }\r\n\r\n if (!height) {\r\n height = box.height / box.width * width\r\n }\r\n\r\n return this\r\n .width(width)\r\n .height(height)\r\n },\r\n\r\n // Add animatable width\r\n width (width) {\r\n return this._queueNumber('width', width)\r\n },\r\n\r\n // Add animatable height\r\n height (height) {\r\n return this._queueNumber('height', height)\r\n },\r\n\r\n // Add animatable plot\r\n plot (a, b, c, d) {\r\n // Lines can be plotted with 4 arguments\r\n if (arguments.length === 4) {\r\n return this.plot([ a, b, c, d ])\r\n }\r\n\r\n if (this._tryRetarget('plot', a)) return this\r\n\r\n var morpher = new Morphable(this._stepper)\r\n .type(this._element.MorphArray).to(a)\r\n\r\n this.queue(function () {\r\n morpher.from(this._element.array())\r\n }, function (pos) {\r\n this._element.plot(morpher.at(pos))\r\n return morpher.done()\r\n })\r\n\r\n this._rememberMorpher('plot', morpher)\r\n return this\r\n },\r\n\r\n // Add leading method\r\n leading (value) {\r\n return this._queueNumber('leading', value)\r\n },\r\n\r\n // Add animatable viewbox\r\n viewbox (x, y, width, height) {\r\n return this._queueObject('viewbox', new Box(x, y, width, height))\r\n },\r\n\r\n update (o) {\r\n if (typeof o !== 'object') {\r\n return this.update({\r\n offset: arguments[0],\r\n color: arguments[1],\r\n opacity: arguments[2]\r\n })\r\n }\r\n\r\n if (o.opacity != null) this.attr('stop-opacity', o.opacity)\r\n if (o.color != null) this.attr('stop-color', o.color)\r\n if (o.offset != null) this.attr('offset', o.offset)\r\n\r\n return this\r\n }\r\n})\r\n\r\nextend(Runner, { rx, ry, from, to })\r\nregister(Runner, 'Runner')\r\n","import {\r\n adopt,\r\n nodeOrNew,\r\n register,\r\n wrapWithAttrCheck\r\n} from '../utils/adopter.js'\r\nimport { ns, svgjs, xlink, xmlns } from '../modules/core/namespaces.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport Container from './Container.js'\r\nimport Defs from './Defs.js'\r\nimport { globals } from '../utils/window.js'\r\n\r\nexport default class Svg extends Container {\r\n constructor (node) {\r\n super(nodeOrNew('svg', node), node)\r\n this.namespace()\r\n }\r\n\r\n isRoot () {\r\n return !this.node.parentNode\r\n || !(this.node.parentNode instanceof globals.window.SVGElement)\r\n || this.node.parentNode.nodeName === '#document'\r\n }\r\n\r\n // Check if this is a root svg\r\n // If not, call docs from this element\r\n root () {\r\n if (this.isRoot()) return this\r\n return super.root()\r\n }\r\n\r\n // Add namespaces\r\n namespace () {\r\n if (!this.isRoot()) return this.root().namespace()\r\n return this\r\n .attr({ xmlns: ns, version: '1.1' })\r\n .attr('xmlns:xlink', xlink, xmlns)\r\n .attr('xmlns:svgjs', svgjs, xmlns)\r\n }\r\n\r\n // Creates and returns defs element\r\n defs () {\r\n if (!this.isRoot()) return this.root().defs()\r\n\r\n return adopt(this.node.querySelector('defs'))\r\n || this.put(new Defs())\r\n }\r\n\r\n // custom parent method\r\n parent (type) {\r\n if (this.isRoot()) {\r\n return this.node.parentNode.nodeName === '#document'\r\n ? null\r\n : adopt(this.node.parentNode)\r\n }\r\n\r\n return super.parent(type)\r\n }\r\n\r\n clear () {\r\n // remove children\r\n while (this.node.hasChildNodes()) {\r\n this.node.removeChild(this.node.lastChild)\r\n }\r\n\r\n // remove defs reference\r\n delete this._defs\r\n\r\n return this\r\n }\r\n}\r\n\r\nregisterMethods({\r\n Container: {\r\n // Create nested svg document\r\n nested: wrapWithAttrCheck(function () {\r\n return this.put(new Svg())\r\n })\r\n }\r\n})\r\n\r\nregister(Svg, 'Svg', true)\r\n","import { nodeOrNew, register, wrapWithAttrCheck } from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport Container from './Container.js'\r\n\r\nexport default class Symbol extends Container {\r\n // Initialize node\r\n constructor (node) {\r\n super(nodeOrNew('symbol', node), node)\r\n }\r\n}\r\n\r\nregisterMethods({\r\n Container: {\r\n symbol: wrapWithAttrCheck(function () {\r\n return this.put(new Symbol())\r\n })\r\n }\r\n})\r\n\r\nregister(Symbol, 'Symbol')\r\n","import { globals } from '../../utils/window.js'\r\n\r\n// Create plain text node\r\nexport function plain (text) {\r\n // clear if build mode is disabled\r\n if (this._build === false) {\r\n this.clear()\r\n }\r\n\r\n // create text node\r\n this.node.appendChild(globals.document.createTextNode(text))\r\n\r\n return this\r\n}\r\n\r\n// Get length of text element\r\nexport function length () {\r\n return this.node.getComputedTextLength()\r\n}\r\n","import {\r\n adopt,\r\n extend,\r\n nodeOrNew,\r\n register,\r\n wrapWithAttrCheck\r\n} from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport SVGNumber from '../types/SVGNumber.js'\r\nimport Shape from './Shape.js'\r\nimport { globals } from '../utils/window.js'\r\nimport * as textable from '../modules/core/textable.js'\r\n\r\nexport default class Text extends Shape {\r\n // Initialize node\r\n constructor (node) {\r\n super(nodeOrNew('text', node), node)\r\n\r\n this.dom.leading = new SVGNumber(1.3) // store leading value for rebuilding\r\n this._rebuild = true // enable automatic updating of dy values\r\n this._build = false // disable build mode for adding multiple lines\r\n }\r\n\r\n // Move over x-axis\r\n // Text is moved its bounding box\r\n // text-anchor does NOT matter\r\n x (x, box = this.bbox()) {\r\n if (x == null) {\r\n return box.x\r\n }\r\n\r\n return this.attr('x', this.attr('x') + x - box.x)\r\n }\r\n\r\n // Move over y-axis\r\n y (y, box = this.bbox()) {\r\n if (y == null) {\r\n return box.y\r\n }\r\n\r\n return this.attr('y', this.attr('y') + y - box.y)\r\n }\r\n\r\n move (x, y, box = this.bbox()) {\r\n return this.x(x, box).y(y, box)\r\n }\r\n\r\n // Move center over x-axis\r\n cx (x, box = this.bbox()) {\r\n if (x == null) {\r\n return box.cx\r\n }\r\n\r\n return this.attr('x', this.attr('x') + x - box.cx)\r\n }\r\n\r\n // Move center over y-axis\r\n cy (y, box = this.bbox()) {\r\n if (y == null) {\r\n return box.cy\r\n }\r\n\r\n return this.attr('y', this.attr('y') + y - box.cy)\r\n }\r\n\r\n center (x, y, box = this.bbox()) {\r\n return this.cx(x, box).cy(y, box)\r\n }\r\n\r\n // Set the text content\r\n text (text) {\r\n // act as getter\r\n if (text === undefined) {\r\n var children = this.node.childNodes\r\n var firstLine = 0\r\n text = ''\r\n\r\n for (var i = 0, len = children.length; i < len; ++i) {\r\n // skip textPaths - they are no lines\r\n if (children[i].nodeName === 'textPath') {\r\n if (i === 0) firstLine = 1\r\n continue\r\n }\r\n\r\n // add newline if its not the first child and newLined is set to true\r\n if (i !== firstLine && children[i].nodeType !== 3 && adopt(children[i]).dom.newLined === true) {\r\n text += '\\n'\r\n }\r\n\r\n // add content of this node\r\n text += children[i].textContent\r\n }\r\n\r\n return text\r\n }\r\n\r\n // remove existing content\r\n this.clear().build(true)\r\n\r\n if (typeof text === 'function') {\r\n // call block\r\n text.call(this, this)\r\n } else {\r\n // store text and make sure text is not blank\r\n text = text.split('\\n')\r\n\r\n // build new lines\r\n for (var j = 0, jl = text.length; j < jl; j++) {\r\n this.tspan(text[j]).newLine()\r\n }\r\n }\r\n\r\n // disable build mode and rebuild lines\r\n return this.build(false).rebuild()\r\n }\r\n\r\n // Set / get leading\r\n leading (value) {\r\n // act as getter\r\n if (value == null) {\r\n return this.dom.leading\r\n }\r\n\r\n // act as setter\r\n this.dom.leading = new SVGNumber(value)\r\n\r\n return this.rebuild()\r\n }\r\n\r\n // Rebuild appearance type\r\n rebuild (rebuild) {\r\n // store new rebuild flag if given\r\n if (typeof rebuild === 'boolean') {\r\n this._rebuild = rebuild\r\n }\r\n\r\n // define position of all lines\r\n if (this._rebuild) {\r\n var self = this\r\n var blankLineOffset = 0\r\n var leading = this.dom.leading\r\n\r\n this.each(function () {\r\n var fontSize = globals.window.getComputedStyle(this.node)\r\n .getPropertyValue('font-size')\r\n var dy = leading * new SVGNumber(fontSize)\r\n\r\n if (this.dom.newLined) {\r\n this.attr('x', self.attr('x'))\r\n\r\n if (this.text() === '\\n') {\r\n blankLineOffset += dy\r\n } else {\r\n this.attr('dy', dy + blankLineOffset)\r\n blankLineOffset = 0\r\n }\r\n }\r\n })\r\n\r\n this.fire('rebuild')\r\n }\r\n\r\n return this\r\n }\r\n\r\n // Enable / disable build mode\r\n build (build) {\r\n this._build = !!build\r\n return this\r\n }\r\n\r\n // overwrite method from parent to set data properly\r\n setData (o) {\r\n this.dom = o\r\n this.dom.leading = new SVGNumber(o.leading || 1.3)\r\n return this\r\n }\r\n}\r\n\r\nextend(Text, textable)\r\n\r\nregisterMethods({\r\n Container: {\r\n // Create text element\r\n text: wrapWithAttrCheck(function (text) {\r\n return this.put(new Text()).text(text)\r\n }),\r\n\r\n // Create plain text element\r\n plain: wrapWithAttrCheck(function (text) {\r\n return this.put(new Text()).plain(text)\r\n })\r\n }\r\n})\r\n\r\nregister(Text, 'Text')\r\n","import {\r\n extend,\r\n nodeOrNew,\r\n register,\r\n wrapWithAttrCheck\r\n} from '../utils/adopter.js'\r\nimport { globals } from '../utils/window.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport SVGNumber from '../types/SVGNumber.js'\r\nimport Text from './Text.js'\r\nimport * as textable from '../modules/core/textable.js'\r\n\r\nexport default class Tspan extends Text {\r\n // Initialize node\r\n constructor (node) {\r\n super(nodeOrNew('tspan', node), node)\r\n }\r\n\r\n // Set text content\r\n text (text) {\r\n if (text == null) return this.node.textContent + (this.dom.newLined ? '\\n' : '')\r\n\r\n typeof text === 'function' ? text.call(this, this) : this.plain(text)\r\n\r\n return this\r\n }\r\n\r\n // Shortcut dx\r\n dx (dx) {\r\n return this.attr('dx', dx)\r\n }\r\n\r\n // Shortcut dy\r\n dy (dy) {\r\n return this.attr('dy', dy)\r\n }\r\n\r\n x (x) {\r\n return this.attr('x', x)\r\n }\r\n\r\n y (y) {\r\n return this.attr('x', y)\r\n }\r\n\r\n move (x, y) {\r\n return this.x(x).y(y)\r\n }\r\n\r\n // Create new line\r\n newLine () {\r\n // fetch text parent\r\n var t = this.parent(Text)\r\n\r\n // mark new line\r\n this.dom.newLined = true\r\n\r\n var fontSize = globals.window.getComputedStyle(this.node)\r\n .getPropertyValue('font-size')\r\n var dy = t.dom.leading * new SVGNumber(fontSize)\r\n\r\n // apply new position\r\n return this.dy(dy).attr('x', t.x())\r\n }\r\n}\r\n\r\nextend(Tspan, textable)\r\n\r\nregisterMethods({\r\n Tspan: {\r\n tspan: wrapWithAttrCheck(function (text) {\r\n var tspan = new Tspan()\r\n\r\n // clear if build mode is disabled\r\n if (!this._build) {\r\n this.clear()\r\n }\r\n\r\n // add new tspan\r\n this.node.appendChild(tspan.node)\r\n\r\n return tspan.text(text)\r\n })\r\n }\r\n})\r\n\r\nregister(Tspan, 'Tspan')\r\n","import { nodeOrNew, register, wrapWithAttrCheck } from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport Container from './Container.js'\r\nimport baseFind from '../modules/core/selector.js'\r\n\r\nexport default class ClipPath extends Container {\r\n constructor (node) {\r\n super(nodeOrNew('clipPath', node), node)\r\n }\r\n\r\n // Unclip all clipped elements and remove itself\r\n remove () {\r\n // unclip all targets\r\n this.targets().forEach(function (el) {\r\n el.unclip()\r\n })\r\n\r\n // remove clipPath from parent\r\n return super.remove()\r\n }\r\n\r\n targets () {\r\n return baseFind('svg [clip-path*=\"' + this.id() + '\"]')\r\n }\r\n}\r\n\r\nregisterMethods({\r\n Container: {\r\n // Create clipping element\r\n clip: wrapWithAttrCheck(function () {\r\n return this.defs().put(new ClipPath())\r\n })\r\n },\r\n Element: {\r\n // Distribute clipPath to svg element\r\n clipWith (element) {\r\n // use given clip or create a new one\r\n const clipper = element instanceof ClipPath\r\n ? element\r\n : this.parent().clip().add(element)\r\n\r\n // apply mask\r\n return this.attr('clip-path', 'url(\"#' + clipper.id() + '\")')\r\n },\r\n\r\n // Unclip element\r\n unclip () {\r\n return this.attr('clip-path', null)\r\n },\r\n\r\n clipper () {\r\n return this.reference('clip-path')\r\n }\r\n }\r\n})\r\n\r\nregister(ClipPath, 'ClipPath')\r\n","import { nodeOrNew, register, wrapWithAttrCheck } from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport Element from './Element.js'\r\n\r\nexport default class ForeignObject extends Element {\r\n constructor (node) {\r\n super(nodeOrNew('foreignObject', node), node)\r\n }\r\n}\r\n\r\nregisterMethods({\r\n Container: {\r\n foreignObject: wrapWithAttrCheck(function (width, height) {\r\n return this.put(new ForeignObject()).size(width, height)\r\n })\r\n }\r\n})\r\n\r\nregister(ForeignObject, 'ForeignObject')\r\n","import { nodeOrNew, register, wrapWithAttrCheck } from '../utils/adopter.js'\r\nimport { proportionalSize } from '../utils/utils.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport Container from './Container.js'\r\nimport Matrix from '../types/Matrix.js'\r\nimport Point from '../types/Point.js'\r\n\r\nexport default class G extends Container {\r\n constructor (node) {\r\n super(nodeOrNew('g', node), node)\r\n }\r\n\r\n x (x, box = this.bbox()) {\r\n if (x == null) return box.x\r\n return this.move(x, box.y, box)\r\n }\r\n\r\n y (y, box = this.bbox()) {\r\n if (y == null) return box.y\r\n return this.move(box.x, y, box)\r\n }\r\n\r\n move (x = 0, y = 0, box = this.bbox()) {\r\n const dx = x - box.x\r\n const dy = y - box.y\r\n\r\n return this.dmove(dx, dy)\r\n }\r\n\r\n dx (dx) {\r\n return this.dmove(dx, 0)\r\n }\r\n\r\n dy (dy) {\r\n return this.dmove(0, dy)\r\n }\r\n\r\n dmove (dx, dy) {\r\n this.children().forEach((child, i) => {\r\n // Get the childs bbox\r\n const bbox = child.bbox()\r\n // Get childs matrix\r\n const m = new Matrix(child)\r\n // Translate childs matrix by amount and\r\n // transform it back into parents space\r\n const matrix = m.translate(dx, dy).transform(m.inverse())\r\n // Calculate new x and y from old box\r\n const p = new Point(bbox.x, bbox.y).transform(matrix)\r\n // Move element\r\n child.move(p.x, p.y)\r\n })\r\n\r\n return this\r\n }\r\n\r\n width (width, box = this.bbox()) {\r\n if (width == null) return box.width\r\n return this.size(width, box.height, box)\r\n }\r\n\r\n height (height, box = this.bbox()) {\r\n if (height == null) return box.height\r\n return this.size(box.width, height, box)\r\n }\r\n\r\n size (width, height, box = this.bbox()) {\r\n const p = proportionalSize(this, width, height, box)\r\n const scaleX = p.width / box.width\r\n const scaleY = p.height / box.height\r\n\r\n this.children().forEach((child, i) => {\r\n const o = new Point(box).transform(new Matrix(child).inverse())\r\n child.scale(scaleX, scaleY, o.x, o.y)\r\n })\r\n\r\n return this\r\n }\r\n}\r\n\r\nregisterMethods({\r\n Container: {\r\n // Create a group element\r\n group: wrapWithAttrCheck(function () {\r\n return this.put(new G())\r\n })\r\n }\r\n})\r\n\r\nregister(G, 'G')\r\n","import { nodeOrNew, register, wrapWithAttrCheck } from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport { xlink } from '../modules/core/namespaces.js'\r\nimport Container from './Container.js'\r\n\r\nexport default class A extends Container {\r\n constructor (node) {\r\n super(nodeOrNew('a', node), node)\r\n }\r\n\r\n // Link url\r\n to (url) {\r\n return this.attr('href', url, xlink)\r\n }\r\n\r\n // Link target attribute\r\n target (target) {\r\n return this.attr('target', target)\r\n }\r\n}\r\n\r\nregisterMethods({\r\n Container: {\r\n // Create a hyperlink element\r\n link: wrapWithAttrCheck(function (url) {\r\n return this.put(new A()).to(url)\r\n })\r\n },\r\n Element: {\r\n // Create a hyperlink element\r\n linkTo: function (url) {\r\n var link = new A()\r\n\r\n if (typeof url === 'function') {\r\n url.call(link, link)\r\n } else {\r\n link.to(url)\r\n }\r\n\r\n return this.parent().put(link).put(this)\r\n }\r\n }\r\n})\r\n\r\nregister(A, 'A')\r\n","import { nodeOrNew, register, wrapWithAttrCheck } from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport Container from './Container.js'\r\nimport baseFind from '../modules/core/selector.js'\r\n\r\nexport default class Mask extends Container {\r\n // Initialize node\r\n constructor (node) {\r\n super(nodeOrNew('mask', node), node)\r\n }\r\n\r\n // Unmask all masked elements and remove itself\r\n remove () {\r\n // unmask all targets\r\n this.targets().forEach(function (el) {\r\n el.unmask()\r\n })\r\n\r\n // remove mask from parent\r\n return super.remove()\r\n }\r\n\r\n targets () {\r\n return baseFind('svg [mask*=\"' + this.id() + '\"]')\r\n }\r\n}\r\n\r\nregisterMethods({\r\n Container: {\r\n mask: wrapWithAttrCheck(function () {\r\n return this.defs().put(new Mask())\r\n })\r\n },\r\n Element: {\r\n // Distribute mask to svg element\r\n maskWith (element) {\r\n // use given mask or create a new one\r\n var masker = element instanceof Mask\r\n ? element\r\n : this.parent().mask().add(element)\r\n\r\n // apply mask\r\n return this.attr('mask', 'url(\"#' + masker.id() + '\")')\r\n },\r\n\r\n // Unmask element\r\n unmask () {\r\n return this.attr('mask', null)\r\n },\r\n\r\n masker () {\r\n return this.reference('mask')\r\n }\r\n }\r\n})\r\n\r\nregister(Mask, 'Mask')\r\n","import { nodeOrNew, register, wrapWithAttrCheck } from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport { unCamelCase } from '../utils/utils.js'\r\nimport Element from './Element.js'\r\n\r\nfunction cssRule (selector, rule) {\r\n if (!selector) return ''\r\n if (!rule) return selector\r\n\r\n var ret = selector + '{'\r\n\r\n for (var i in rule) {\r\n ret += unCamelCase(i) + ':' + rule[i] + ';'\r\n }\r\n\r\n ret += '}'\r\n\r\n return ret\r\n}\r\n\r\nexport default class Style extends Element {\r\n constructor (node) {\r\n super(nodeOrNew('style', node), node)\r\n }\r\n\r\n addText (w = '') {\r\n this.node.textContent += w\r\n return this\r\n }\r\n\r\n font (name, src, params = {}) {\r\n return this.rule('@font-face', {\r\n fontFamily: name,\r\n src: src,\r\n ...params\r\n })\r\n }\r\n\r\n rule (selector, obj) {\r\n return this.addText(cssRule(selector, obj))\r\n }\r\n}\r\n\r\nregisterMethods('Dom', {\r\n style: wrapWithAttrCheck(function (selector, obj) {\r\n return this.put(new Style()).rule(selector, obj)\r\n }),\r\n fontface: wrapWithAttrCheck(function (name, src, params) {\r\n return this.put(new Style()).font(name, src, params)\r\n })\r\n})\r\n\r\nregister(Style, 'Style')\r\n","import { nodeOrNew, register, wrapWithAttrCheck } from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport { xlink } from '../modules/core/namespaces.js'\r\nimport Path from './Path.js'\r\nimport PathArray from '../types/PathArray.js'\r\nimport Text from './Text.js'\r\nimport baseFind from '../modules/core/selector.js'\r\n\r\nexport default class TextPath extends Text {\r\n // Initialize node\r\n constructor (node) {\r\n super(nodeOrNew('textPath', node), node)\r\n }\r\n\r\n // return the array of the path track element\r\n array () {\r\n var track = this.track()\r\n\r\n return track ? track.array() : null\r\n }\r\n\r\n // Plot path if any\r\n plot (d) {\r\n var track = this.track()\r\n var pathArray = null\r\n\r\n if (track) {\r\n pathArray = track.plot(d)\r\n }\r\n\r\n return (d == null) ? pathArray : this\r\n }\r\n\r\n // Get the path element\r\n track () {\r\n return this.reference('href')\r\n }\r\n}\r\n\r\nregisterMethods({\r\n Container: {\r\n textPath: wrapWithAttrCheck(function (text, path) {\r\n // Convert text to instance if needed\r\n if (!(text instanceof Text)) {\r\n text = this.text(text)\r\n }\r\n\r\n return text.path(path)\r\n })\r\n },\r\n Text: {\r\n // Create path for text to run on\r\n path: wrapWithAttrCheck(function (track, importNodes = true) {\r\n var textPath = new TextPath()\r\n\r\n // if track is a path, reuse it\r\n if (!(track instanceof Path)) {\r\n // create path element\r\n track = this.defs().path(track)\r\n }\r\n\r\n // link textPath to path and add content\r\n textPath.attr('href', '#' + track, xlink)\r\n\r\n // Transplant all nodes from text to textPath\r\n let node\r\n if (importNodes) {\r\n while ((node = this.node.firstChild)) {\r\n textPath.node.appendChild(node)\r\n }\r\n }\r\n\r\n // add textPath element as child node and return textPath\r\n return this.put(textPath)\r\n }),\r\n\r\n // Get the textPath children\r\n textPath () {\r\n return this.findOne('textPath')\r\n }\r\n },\r\n Path: {\r\n // creates a textPath from this path\r\n text: wrapWithAttrCheck(function (text) {\r\n // Convert text to instance if needed\r\n if (!(text instanceof Text)) {\r\n text = new Text().addTo(this.parent()).text(text)\r\n }\r\n\r\n // Create textPath from text and path and return\r\n return text.path(this)\r\n }),\r\n\r\n targets () {\r\n return baseFind('svg [href*=\"' + this.id() + '\"]')\r\n }\r\n }\r\n})\r\n\r\nTextPath.prototype.MorphArray = PathArray\r\nregister(TextPath, 'TextPath')\r\n","import { nodeOrNew, register, wrapWithAttrCheck } from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport { xlink } from '../modules/core/namespaces.js'\r\nimport Shape from './Shape.js'\r\n\r\nexport default class Use extends Shape {\r\n constructor (node) {\r\n super(nodeOrNew('use', node), node)\r\n }\r\n\r\n // Use element as a reference\r\n element (element, file) {\r\n // Set lined element\r\n return this.attr('href', (file || '') + '#' + element, xlink)\r\n }\r\n}\r\n\r\nregisterMethods({\r\n Container: {\r\n // Create a use element\r\n use: wrapWithAttrCheck(function (element, file) {\r\n return this.put(new Use()).element(element, file)\r\n })\r\n }\r\n})\r\n\r\nregister(Use, 'Use')\r\n","/* Optional Modules */\r\nimport './modules/optional/arrange.js'\r\nimport './modules/optional/class.js'\r\nimport './modules/optional/css.js'\r\nimport './modules/optional/data.js'\r\nimport './modules/optional/memory.js'\r\nimport './modules/optional/sugar.js'\r\nimport './modules/optional/transform.js'\r\n\r\nimport { extend, makeInstance } from './utils/adopter.js'\r\nimport { getMethodNames, getMethodsFor } from './utils/methods.js'\r\nimport Box from './types/Box.js'\r\nimport Circle from './elements/Circle.js'\r\nimport Color from './types/Color.js'\r\nimport Container from './elements/Container.js'\r\nimport Defs from './elements/Defs.js'\r\nimport Dom from './elements/Dom.js'\r\nimport Element from './elements/Element.js'\r\nimport Ellipse from './elements/Ellipse.js'\r\nimport EventTarget from './types/EventTarget.js'\r\nimport Gradient from './elements/Gradient.js'\r\nimport Image from './elements/Image.js'\r\nimport Line from './elements/Line.js'\r\nimport List from './types/List.js'\r\nimport Marker from './elements/Marker.js'\r\nimport Matrix from './types/Matrix.js'\r\nimport Morphable, {\r\n NonMorphable,\r\n ObjectBag,\r\n TransformBag,\r\n makeMorphable,\r\n registerMorphableType\r\n} from './animation/Morphable.js'\r\nimport Path from './elements/Path.js'\r\nimport PathArray from './types/PathArray.js'\r\nimport Pattern from './elements/Pattern.js'\r\nimport PointArray from './types/PointArray.js'\r\nimport Polygon from './elements/Polygon.js'\r\nimport Polyline from './elements/Polyline.js'\r\nimport Rect from './elements/Rect.js'\r\nimport Runner from './animation/Runner.js'\r\nimport SVGArray from './types/SVGArray.js'\r\nimport SVGNumber from './types/SVGNumber.js'\r\nimport Shape from './elements/Shape.js'\r\nimport Svg from './elements/Svg.js'\r\nimport Symbol from './elements/Symbol.js'\r\nimport Text from './elements/Text.js'\r\nimport Tspan from './elements/Tspan.js'\r\nimport * as defaults from './modules/core/defaults.js'\r\nimport * as utils from './utils/utils.js'\r\nimport * as namespaces from './modules/core/namespaces.js'\r\nimport * as regex from './modules/core/regex.js'\r\n\r\nexport {\r\n Morphable,\r\n registerMorphableType,\r\n makeMorphable,\r\n TransformBag,\r\n ObjectBag,\r\n NonMorphable\r\n}\r\n\r\nexport { defaults, utils, namespaces, regex }\r\nexport const SVG = makeInstance\r\nexport { default as parser } from './modules/core/parser.js'\r\nexport { default as find } from './modules/core/selector.js'\r\nexport * from './modules/core/event.js'\r\nexport * from './utils/adopter.js'\r\nexport { registerWindow } from './utils/window.js'\r\n\r\n/* Animation Modules */\r\nexport { default as Animator } from './animation/Animator.js'\r\nexport { Controller, Ease, PID, Spring, easing } from './animation/Controller.js'\r\nexport { default as Queue } from './animation/Queue.js'\r\nexport { default as Runner } from './animation/Runner.js'\r\nexport { default as Timeline } from './animation/Timeline.js'\r\n\r\n/* Types */\r\nexport { default as Array } from './types/SVGArray.js'\r\nexport { default as Box } from './types/Box.js'\r\nexport { default as Color } from './types/Color.js'\r\nexport { default as EventTarget } from './types/EventTarget.js'\r\nexport { default as Matrix } from './types/Matrix.js'\r\nexport { default as Number } from './types/SVGNumber.js'\r\nexport { default as PathArray } from './types/PathArray.js'\r\nexport { default as Point } from './types/Point.js'\r\nexport { default as PointArray } from './types/PointArray.js'\r\nexport { default as List } from './types/List.js'\r\n\r\n/* Elements */\r\nexport { default as Circle } from './elements/Circle.js'\r\nexport { default as ClipPath } from './elements/ClipPath.js'\r\nexport { default as Container } from './elements/Container.js'\r\nexport { default as Defs } from './elements/Defs.js'\r\nexport { default as Dom } from './elements/Dom.js'\r\nexport { default as Element } from './elements/Element.js'\r\nexport { default as Ellipse } from './elements/Ellipse.js'\r\nexport { default as ForeignObject } from './elements/ForeignObject.js'\r\nexport { default as Gradient } from './elements/Gradient.js'\r\nexport { default as G } from './elements/G.js'\r\nexport { default as A } from './elements/A.js'\r\nexport { default as Image } from './elements/Image.js'\r\nexport { default as Line } from './elements/Line.js'\r\nexport { default as Marker } from './elements/Marker.js'\r\nexport { default as Mask } from './elements/Mask.js'\r\nexport { default as Path } from './elements/Path.js'\r\nexport { default as Pattern } from './elements/Pattern.js'\r\nexport { default as Polygon } from './elements/Polygon.js'\r\nexport { default as Polyline } from './elements/Polyline.js'\r\nexport { default as Rect } from './elements/Rect.js'\r\nexport { default as Shape } from './elements/Shape.js'\r\nexport { default as Stop } from './elements/Stop.js'\r\nexport { default as Style } from './elements/Style.js'\r\nexport { default as Svg } from './elements/Svg.js'\r\nexport { default as Symbol } from './elements/Symbol.js'\r\nexport { default as Text } from './elements/Text.js'\r\nexport { default as TextPath } from './elements/TextPath.js'\r\nexport { default as Tspan } from './elements/Tspan.js'\r\nexport { default as Use } from './elements/Use.js'\r\n\r\nextend([\r\n Svg,\r\n Symbol,\r\n Image,\r\n Pattern,\r\n Marker\r\n], getMethodsFor('viewbox'))\r\n\r\nextend([\r\n Line,\r\n Polyline,\r\n Polygon,\r\n Path\r\n], getMethodsFor('marker'))\r\n\r\nextend(Text, getMethodsFor('Text'))\r\nextend(Path, getMethodsFor('Path'))\r\n\r\nextend(Defs, getMethodsFor('Defs'))\r\n\r\nextend([\r\n Text,\r\n Tspan\r\n], getMethodsFor('Tspan'))\r\n\r\nextend([\r\n Rect,\r\n Ellipse,\r\n Circle,\r\n Gradient\r\n], getMethodsFor('radius'))\r\n\r\nextend(EventTarget, getMethodsFor('EventTarget'))\r\nextend(Dom, getMethodsFor('Dom'))\r\nextend(Element, getMethodsFor('Element'))\r\nextend(Shape, getMethodsFor('Shape'))\r\n// extend(Element, getConstructor('Memory'))\r\nextend(Container, getMethodsFor('Container'))\r\n\r\nextend(Runner, getMethodsFor('Runner'))\r\n\r\nList.extend(getMethodNames())\r\n\r\nregisterMorphableType([\r\n SVGNumber,\r\n Color,\r\n Box,\r\n Matrix,\r\n SVGArray,\r\n PointArray,\r\n PathArray\r\n])\r\n\r\nmakeMorphable()\r\n","import * as svgMembers from './main.js'\r\nimport { makeInstance } from './utils/adopter.js'\r\n\r\n// The main wrapping element\r\nexport default function SVG (element) {\r\n return makeInstance(element)\r\n}\r\n\r\nObject.assign(SVG, svgMembers)\r\n"],"names":["global","classof","IndexedObject","document","DESCRIPTORS","createElement","IE8_DOM_DEFINE","propertyIsEnumerableModule","definePropertyModule","store","nativeFunctionToString","WeakMap","has","NATIVE_WEAK_MAP","objectHas","InternalStateModule","require$$0","min","hiddenKeys","internalObjectKeys","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","getOwnPropertyDescriptorModule","getOwnPropertyDescriptor","isForced","$","assign","Symbol","NATIVE_SYMBOL","V8_VERSION","SPECIES","max","toString","nativeGetOwnPropertyNames","defineProperties","defineProperty","wrappedWellKnownSymbolModule","aFunction","createMethod","bind","PROTOTYPE","JSON","nativeGetOwnPropertyDescriptor","nativeDefineProperty","getOwnPropertyNamesExternal","nativePropertyIsEnumerable","nativeObjectCreate","create","IE_PROTO","ObjectPrototype","CORRECT_PROTOTYPE_GETTER","getPrototypeOf","IteratorPrototype","returnThis","Iterators","IteratorsCore","BUGGY_SAFARI_ITERATORS","ITERATOR","setPrototypeOf","setInternalState","getInternalState","TO_STRING_TAG","FREEZING","ArrayPrototype","InternalMetadataModule","iterate","require$$1","ArrayIteratorMethods","DOMIterables","arrayWithoutHoles","iterableToArray","nonIterableSpread","methods","names","registerMethods","name","m","Array","isArray","_name","addMethodNames","Object","getOwnPropertyNames","getMethodsFor","getMethodNames","Set","_names","push","exec","isRegExp","MATCH","correctIsRegExpLogic","notARegExp","charAt","floor","fixRegExpWellKnownSymbolLogic","regExpExec","map","array","block","i","il","length","result","filter","radians","d","Math","PI","degrees","r","camelCase","s","toLowerCase","replace","g","toUpperCase","unCamelCase","capitalize","slice","proportionalSize","element","width","height","box","bbox","getOrigin","o","origin","ox","oy","string","trim","x","y","bx","includes","by","ns","xmlns","xlink","svgjs","globals","window","registerWindow","win","doc","Base","elements","root","createElementNS","makeInstance","adopter","querySelector","node","innerHTML","firstChild","nodeOrNew","Node","adopt","instance","className","nodeName","mockAdopt","mock","register","asRoot","prototype","getClass","did","eid","assignNewId","children","id","extend","modules","attrCheck","key","method","wrapWithAttrCheck","fn","args","constructor","apply","attr","invent","config","initializer","inherit","construct","parent","Container","siblings","position","index","next","prev","forward","p","removeElement","add","isRoot","appendChild","defs","backward","front","back","before","remove","after","insertBefore","insertAfter","SLOPPY_METHOD","callRegExpExec","numberAndUnit","hex","rgb","reference","transforms","whitespace","isHex","isRgb","isCss","isBlank","isNumber","isPercent","isImage","delimiter","hyphen","pathLetters","isPathLetter","numbersWithDots","dots","classes","split","hasClass","indexOf","addClass","join","removeClass","c","toggleClass","$forEach","forEach","COLLECTION_NAME","Collection","CollectionPrototype","css","style","val","ret","arguments","cssText","el","t","cased","test","show","hide","visible","data","a","v","parse","e","stringify","remember","k","memory","forget","_memory","listenerId","windowEvents","getEvents","n","getEventHolder","events","getEventTarget","clearEvents","on","listener","binding","options","l","bag","_svgjsListenerId","event","ev","addEventListener","off","namespace","removeEventListener","dispatch","Event","dispatchEvent","CustomEvent","detail","cancelable","FORCED","parseIntImplementation","TO_STRING","flags","arrayWithHoles","iterableToArrayLimit","nonIterableRest","sixDigitHex","substring","componentHex","component","integer","round","bounded","is","object","space","getParameters","b","params","_a","_b","_c","z","_d","h","cieSpace","hueToRgb","q","Color","init","values","noWhitespace","parseInt","hexParse","Error","components","dToR","cos","sin","yL","xL","zL","ct","mx","nm","rU","gU","bU","pow","bd","color","xyz","r255","g255","b255","rL","gL","bL","xU","yU","zU","lab","sqrt","atan2","isGrey","delta","format","_clamped","toHex","rV","gV","bV","mode","random","pi","grey","FAILS_ON_PRIMITIVES","nativeKeys","assertThisInitialized","superPropBase","require$$2","require$$3","keys","parseFloatImplementation","Point","base","source","clone","transformO","Matrix","isMatrixLike","f","point","transform","screenCTM","inverse","closeEnough","threshold","abs","fromArray","Element","matrixify","parseFloat","call","matrix","multiplyO","formatTransforms","current","transformer","translateO","rx","ry","lmultiplyO","scaleO","scaleX","scaleY","skewO","skewX","skewY","shearO","shear","rotateO","theta","isFinite","px","py","dx","dy","tx","ty","originX","originY","sx","sy","lam","rotate","translateX","translateY","cx","cy","determinant","ccw","thetaRad","st","matrixMultiply","det","na","nb","nc","nd","ne","nf","inverseO","axis","around","flipO","lx","tan","ly","skew","aroundO","other","comp","flipBoth","flip","flipX","flipY","scale","positionX","positionY","translate","relative","relativeX","relativeY","ctm","getCTM","rect","getScreenCTM","parser","nodes","svg","size","path","parentNode","body","documentElement","addTo","isNulledBox","domContains","contains","Box","left","top","w","x2","y2","xMin","Infinity","xMax","yMin","yMax","pts","pageXOffset","pageYOffset","getBox","cb","retry","getBBox","rbox","getBoundingClientRect","addOffset","viewbox","zoom","level","clientWidth","clientHeight","getComputedStyle","getPropertyValue","zoomX","zoomY","zoomAmount","Number","MIN_VALUE","subClassArray","Function","baseClass","_constructor","Arr","arr","List","each","fnOrMethodName","toArray","concat","reserved","reduce","obj","attrs","baseFind","query","querySelectorAll","find","findOne","EventTarget","type","j","defaultPrevented","noop","timeline","duration","ease","delay","fill","stroke","opacity","offset","SVGArray","valueOf","toSet","SVGNumber","value","unit","isNaN","match","number","hooks","registerAttrHook","attributes","nodeValue","last","curr","removeAttribute","getAttribute","defaults","_val","hook","isColor","leading","setAttributeNS","setAttribute","rebuild","Dom","childNodes","put","hasChildNodes","removeChild","lastChild","writeDataToDom","cloneNode","deep","selector","matches","matchesSelector","msMatchesSelector","mozMatchesSelector","webkitMatchesSelector","oMatchesSelector","replaceChild","precision","factor","newAttrs","svgOrFn","outerHTML","well","len","fragment","_this","createDocumentFragment","firstElementChild","text","textContent","dom","hasAttribute","setData","plus","until","parents","sugar","prefix","extension","mat","angle","direction","directionString","radius","_element","getTotalLength","pointAt","getPointAtLength","font","ax","ay","amove","objectDefinePropertyModile","untransform","str","kv","reverse","lmultiply","toParent","pCtm","multiply","toRoot","decomposed","decompose","cleanRelative","divide","Shape","Circle","circle","move","flatten","ungroup","Defs","Ellipse","circled","ellipse","Stop","from","fx","fy","x1","y1","to","Gradient","update","clear","url","gradiented","gradient","Pattern","pattern","patternUnits","Image","callback","img","src","image","load","PointArray","toLine","at","pos","destination","points","pop","maxX","maxY","minX","minY","MorphArray","Line","pointed","line","plot","Marker","marker","ref","makeSetterGetter","easing","bezier","steps","stepPosition","jumps","beforeFlag","step","jumping","Stepper","Ease","Controller","stepper","target","dt","done","recalculate","_duration","overshoot","_overshoot","eps","os","log","zeta","wn","Spring","velocity","acceleration","newPosition","PID","windup","integral","error","P","I","D","PathArray","pathRegReplace","arrayToString","pathHandlers","M","p0","L","H","V","C","S","Q","T","Z","A","mlhvqtcsaz","jl","equalCommands","pathArray","morph","sourceArray","destinationArray","paramCnt","Morphable","_stepper","_from","_to","_type","_context","_morphObj","_set","NonMorphable","morphableTypes","ObjectBag","complete","TransformBag","objOrArr","entries","sort","registerMorphableType","makeMorphable","Path","_array","Polygon","polygon","poly","Polyline","polyline","Rect","MAX_SAFE_INTEGER","Queue","_first","_last","item","Animator","nextDraw","frames","timeouts","immediates","timer","performance","Date","frame","run","requestAnimationFrame","_draw","timeout","time","now","immediate","cancelFrame","clearTimeout","cancelImmediate","nextTimeout","lastTimeout","shift","nextFrame","lastFrame","nextImmediate","first","makeSchedule","runnerInfo","start","runner","end","defaultSource","Timeline","timeSource","_timeSource","_startTime","_speed","_persist","_nextFrame","_paused","_runners","_runnerIds","_lastRunnerId","_time","_lastSourceTime","_lastStepTime","_step","_stepFn","_stepImmediate","when","absoluteStartTime","endTime","getEndTime","unschedule","persist","info","updateTime","_continue","splice","lastRunnerInfo","lastDuration","lastStartTime","lastEndTime","startTime","active","pause","getEndTimeOfTimeline","speed","yes","currentSpeed","positive","dtOrForever","immediateStep","dtSource","dtTime","fire","dtToStart","reset","runnersLeft","finished","_timeline","Runner","_queue","_isDeclarative","_history","enabled","_lastTime","_reseted","transformId","_haveReversed","_reverse","_loopsDone","_swing","_wait","_times","_frameId","_prepareRunner","sanitise","loop","schedule","times","swing","wait","animate","initFn","runFn","retargetFn","isTransform","initialiser","retarget","initialised","queue","loopDuration","loopsDone","relativeTime","whole","partial","swinging","backwards","uncliped","clipped","loops","swingForward","forwards","running","_lastPosition","justStarted","justFinished","declarative","_initialise","converged","_run","morpher","caller","play","extra","needsIt","positionOrDt","allfinished","FakeRunner","mergeWith","getRunnerTransform","mergeTransforms","runners","_transformationRunners","netTransform","merge","RunnerArray","ids","lastRunner","condition","edit","newRunner","deleteCnt","clearTransformsFromQueue","_clearTransformRunnersBefore","currentRunner","clearBefore","_currentTransform","_addRunner","styleAttr","_tryRetarget","newLevel","newPoint","_rememberMorpher","affine","isMatrix","currentAngle","startTransform","setup","undefined","clearTransform","rTarget","rCurrent","possibilities","distances","shortest","affineParameters","addTransform","newTransforms","_queueNumber","_queueNumberDelta","dmove","newTo","_queueObject","center","Svg","SVGElement","version","_defs","nested","symbol","plain","_build","createTextNode","getComputedTextLength","Text","_rebuild","firstLine","nodeType","newLined","build","tspan","newLine","self","blankLineOffset","fontSize","textable","Tspan","ClipPath","targets","unclip","clip","clipWith","clipper","ForeignObject","foreignObject","G","child","group","link","linkTo","Mask","unmask","mask","maskWith","masker","cssRule","rule","Style","fontFamily","addText","fontface","TextPath","track","textPath","importNodes","Use","file","use","SVG","svgMembers"],"mappings":"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"}