react-id-card-generator 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +214 -0
- package/dist/cjs/_virtual/_commonjsHelpers.js +11 -0
- package/dist/cjs/_virtual/_commonjsHelpers.js.map +1 -0
- package/dist/cjs/_virtual/index.js +6 -0
- package/dist/cjs/_virtual/index.js.map +1 -0
- package/dist/cjs/_virtual/make-built-in.js +6 -0
- package/dist/cjs/_virtual/make-built-in.js.map +1 -0
- package/dist/cjs/_virtual/new-promise-capability.js +6 -0
- package/dist/cjs/_virtual/new-promise-capability.js.map +1 -0
- package/dist/cjs/_virtual/object-define-properties.js +6 -0
- package/dist/cjs/_virtual/object-define-properties.js.map +1 -0
- package/dist/cjs/_virtual/object-define-property.js +6 -0
- package/dist/cjs/_virtual/object-define-property.js.map +1 -0
- package/dist/cjs/_virtual/object-get-own-property-descriptor.js +6 -0
- package/dist/cjs/_virtual/object-get-own-property-descriptor.js.map +1 -0
- package/dist/cjs/_virtual/object-get-own-property-names.js +6 -0
- package/dist/cjs/_virtual/object-get-own-property-names.js.map +1 -0
- package/dist/cjs/_virtual/object-get-own-property-symbols.js +6 -0
- package/dist/cjs/_virtual/object-get-own-property-symbols.js.map +1 -0
- package/dist/cjs/_virtual/object-property-is-enumerable.js +6 -0
- package/dist/cjs/_virtual/object-property-is-enumerable.js.map +1 -0
- package/dist/cjs/_virtual/performance-now.js +6 -0
- package/dist/cjs/_virtual/performance-now.js.map +1 -0
- package/dist/cjs/_virtual/qrious.js +6 -0
- package/dist/cjs/_virtual/qrious.js.map +1 -0
- package/dist/cjs/_virtual/shared-store.js +6 -0
- package/dist/cjs/_virtual/shared-store.js.map +1 -0
- package/dist/cjs/components/IDCardDesigner.js +283 -0
- package/dist/cjs/components/IDCardDesigner.js.map +1 -0
- package/dist/cjs/components/IDCardGenerator.js +139 -0
- package/dist/cjs/components/IDCardGenerator.js.map +1 -0
- package/dist/cjs/components/IDCardPreview.js +168 -0
- package/dist/cjs/components/IDCardPreview.js.map +1 -0
- package/dist/cjs/core/exportUtils.js +155 -0
- package/dist/cjs/core/exportUtils.js.map +1 -0
- package/dist/cjs/core/qrUtils.js +64 -0
- package/dist/cjs/core/qrUtils.js.map +1 -0
- package/dist/cjs/hooks/useFieldMapping.js +148 -0
- package/dist/cjs/hooks/useFieldMapping.js.map +1 -0
- package/dist/cjs/hooks/useIDCardExport.js +81 -0
- package/dist/cjs/hooks/useIDCardExport.js.map +1 -0
- package/dist/cjs/hooks/useIDCardTemplate.js +155 -0
- package/dist/cjs/hooks/useIDCardTemplate.js.map +1 -0
- package/dist/cjs/index.js +48 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js +30 -0
- package/dist/cjs/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js.map +1 -0
- package/dist/cjs/node_modules/@babel/runtime/helpers/esm/defineProperty.js +15 -0
- package/dist/cjs/node_modules/@babel/runtime/helpers/esm/defineProperty.js.map +1 -0
- package/dist/cjs/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +17 -0
- package/dist/cjs/node_modules/@babel/runtime/helpers/esm/toPrimitive.js.map +1 -0
- package/dist/cjs/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +12 -0
- package/dist/cjs/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js.map +1 -0
- package/dist/cjs/node_modules/@babel/runtime/helpers/esm/typeof.js +14 -0
- package/dist/cjs/node_modules/@babel/runtime/helpers/esm/typeof.js.map +1 -0
- package/dist/cjs/node_modules/canvg/lib/index.es.js +6645 -0
- package/dist/cjs/node_modules/canvg/lib/index.es.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/a-callable.js +18 -0
- package/dist/cjs/node_modules/core-js/internals/a-callable.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/a-constructor.js +18 -0
- package/dist/cjs/node_modules/core-js/internals/a-constructor.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/a-possible-prototype.js +16 -0
- package/dist/cjs/node_modules/core-js/internals/a-possible-prototype.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/add-to-unscopables.js +30 -0
- package/dist/cjs/node_modules/core-js/internals/add-to-unscopables.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/advance-string-index.js +14 -0
- package/dist/cjs/node_modules/core-js/internals/advance-string-index.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/an-instance.js +15 -0
- package/dist/cjs/node_modules/core-js/internals/an-instance.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/an-object.js +17 -0
- package/dist/cjs/node_modules/core-js/internals/an-object.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/array-includes.js +39 -0
- package/dist/cjs/node_modules/core-js/internals/array-includes.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/array-method-is-strict.js +16 -0
- package/dist/cjs/node_modules/core-js/internals/array-method-is-strict.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/array-reduce.js +51 -0
- package/dist/cjs/node_modules/core-js/internals/array-reduce.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/array-slice.js +10 -0
- package/dist/cjs/node_modules/core-js/internals/array-slice.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/check-correctness-of-iteration.js +49 -0
- package/dist/cjs/node_modules/core-js/internals/check-correctness-of-iteration.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/classof-raw.js +15 -0
- package/dist/cjs/node_modules/core-js/internals/classof-raw.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/classof.js +39 -0
- package/dist/cjs/node_modules/core-js/internals/classof.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/copy-constructor-properties.js +28 -0
- package/dist/cjs/node_modules/core-js/internals/copy-constructor-properties.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/correct-is-regexp-logic.js +22 -0
- package/dist/cjs/node_modules/core-js/internals/correct-is-regexp-logic.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/correct-prototype-getter.js +15 -0
- package/dist/cjs/node_modules/core-js/internals/correct-prototype-getter.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/create-iter-result-object.js +10 -0
- package/dist/cjs/node_modules/core-js/internals/create-iter-result-object.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/create-non-enumerable-property.js +20 -0
- package/dist/cjs/node_modules/core-js/internals/create-non-enumerable-property.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/create-property-descriptor.js +13 -0
- package/dist/cjs/node_modules/core-js/internals/create-property-descriptor.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/define-built-in-accessor.js +17 -0
- package/dist/cjs/node_modules/core-js/internals/define-built-in-accessor.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/define-built-in.js +38 -0
- package/dist/cjs/node_modules/core-js/internals/define-built-in.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/define-global-property.js +19 -0
- package/dist/cjs/node_modules/core-js/internals/define-global-property.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/descriptors.js +14 -0
- package/dist/cjs/node_modules/core-js/internals/descriptors.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/document-create-element.js +18 -0
- package/dist/cjs/node_modules/core-js/internals/document-create-element.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/dom-iterables.js +40 -0
- package/dist/cjs/node_modules/core-js/internals/dom-iterables.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/dom-token-list-prototype.js +14 -0
- package/dist/cjs/node_modules/core-js/internals/dom-token-list-prototype.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/enum-bug-keys.js +15 -0
- package/dist/cjs/node_modules/core-js/internals/enum-bug-keys.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/environment-is-ios-pebble.js +10 -0
- package/dist/cjs/node_modules/core-js/internals/environment-is-ios-pebble.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/environment-is-ios.js +11 -0
- package/dist/cjs/node_modules/core-js/internals/environment-is-ios.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/environment-is-node.js +10 -0
- package/dist/cjs/node_modules/core-js/internals/environment-is-node.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/environment-is-webos-webkit.js +10 -0
- package/dist/cjs/node_modules/core-js/internals/environment-is-webos-webkit.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/environment-user-agent.js +13 -0
- package/dist/cjs/node_modules/core-js/internals/environment-user-agent.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/environment-v8-version.js +35 -0
- package/dist/cjs/node_modules/core-js/internals/environment-v8-version.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/environment.js +29 -0
- package/dist/cjs/node_modules/core-js/internals/environment.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/export.js +68 -0
- package/dist/cjs/node_modules/core-js/internals/export.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/fails.js +12 -0
- package/dist/cjs/node_modules/core-js/internals/fails.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js +90 -0
- package/dist/cjs/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/function-apply.js +17 -0
- package/dist/cjs/node_modules/core-js/internals/function-apply.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/function-bind-context.js +22 -0
- package/dist/cjs/node_modules/core-js/internals/function-bind-context.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/function-bind-native.js +15 -0
- package/dist/cjs/node_modules/core-js/internals/function-bind-native.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/function-call.js +14 -0
- package/dist/cjs/node_modules/core-js/internals/function-call.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/function-name.js +24 -0
- package/dist/cjs/node_modules/core-js/internals/function-name.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/function-uncurry-this-accessor.js +17 -0
- package/dist/cjs/node_modules/core-js/internals/function-uncurry-this-accessor.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/function-uncurry-this-clause.js +17 -0
- package/dist/cjs/node_modules/core-js/internals/function-uncurry-this-clause.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/function-uncurry-this.js +19 -0
- package/dist/cjs/node_modules/core-js/internals/function-uncurry-this.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/get-built-in.js +18 -0
- package/dist/cjs/node_modules/core-js/internals/get-built-in.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/get-iterator-method.js +24 -0
- package/dist/cjs/node_modules/core-js/internals/get-iterator-method.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/get-iterator.js +24 -0
- package/dist/cjs/node_modules/core-js/internals/get-iterator.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/get-method.js +17 -0
- package/dist/cjs/node_modules/core-js/internals/get-method.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/get-substitution.js +53 -0
- package/dist/cjs/node_modules/core-js/internals/get-substitution.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/global-this.js +22 -0
- package/dist/cjs/node_modules/core-js/internals/global-this.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/has-own-property.js +19 -0
- package/dist/cjs/node_modules/core-js/internals/has-own-property.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/hidden-keys.js +6 -0
- package/dist/cjs/node_modules/core-js/internals/hidden-keys.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/host-report-errors.js +11 -0
- package/dist/cjs/node_modules/core-js/internals/host-report-errors.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/html.js +10 -0
- package/dist/cjs/node_modules/core-js/internals/html.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/ie8-dom-define.js +20 -0
- package/dist/cjs/node_modules/core-js/internals/ie8-dom-define.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/indexed-object.js +24 -0
- package/dist/cjs/node_modules/core-js/internals/indexed-object.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/inspect-source.js +23 -0
- package/dist/cjs/node_modules/core-js/internals/inspect-source.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/internal-state.js +84 -0
- package/dist/cjs/node_modules/core-js/internals/internal-state.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/is-array-iterator-method.js +18 -0
- package/dist/cjs/node_modules/core-js/internals/is-array-iterator-method.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/is-array.js +15 -0
- package/dist/cjs/node_modules/core-js/internals/is-array.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/is-callable.js +16 -0
- package/dist/cjs/node_modules/core-js/internals/is-callable.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/is-constructor.js +63 -0
- package/dist/cjs/node_modules/core-js/internals/is-constructor.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/is-forced.js +30 -0
- package/dist/cjs/node_modules/core-js/internals/is-forced.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/is-null-or-undefined.js +10 -0
- package/dist/cjs/node_modules/core-js/internals/is-null-or-undefined.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/is-object.js +12 -0
- package/dist/cjs/node_modules/core-js/internals/is-object.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/is-possible-prototype.js +12 -0
- package/dist/cjs/node_modules/core-js/internals/is-possible-prototype.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/is-regexp.js +21 -0
- package/dist/cjs/node_modules/core-js/internals/is-regexp.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/is-symbol.js +23 -0
- package/dist/cjs/node_modules/core-js/internals/is-symbol.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/iterate.js +84 -0
- package/dist/cjs/node_modules/core-js/internals/iterate.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/iterator-close.js +32 -0
- package/dist/cjs/node_modules/core-js/internals/iterator-close.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/iterator-create-constructor.js +26 -0
- package/dist/cjs/node_modules/core-js/internals/iterator-create-constructor.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/iterator-define.js +118 -0
- package/dist/cjs/node_modules/core-js/internals/iterator-define.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/iterators-core.js +58 -0
- package/dist/cjs/node_modules/core-js/internals/iterators-core.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/iterators.js +6 -0
- package/dist/cjs/node_modules/core-js/internals/iterators.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/length-of-array-like.js +14 -0
- package/dist/cjs/node_modules/core-js/internals/length-of-array-like.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/make-built-in.js +71 -0
- package/dist/cjs/node_modules/core-js/internals/make-built-in.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/math-trunc.js +15 -0
- package/dist/cjs/node_modules/core-js/internals/math-trunc.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/microtask.js +93 -0
- package/dist/cjs/node_modules/core-js/internals/microtask.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/new-promise-capability.js +28 -0
- package/dist/cjs/node_modules/core-js/internals/new-promise-capability.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/not-a-regexp.js +16 -0
- package/dist/cjs/node_modules/core-js/internals/not-a-regexp.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/object-create.js +98 -0
- package/dist/cjs/node_modules/core-js/internals/object-create.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/object-define-properties.js +34 -0
- package/dist/cjs/node_modules/core-js/internals/object-define-properties.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/object-define-property.js +55 -0
- package/dist/cjs/node_modules/core-js/internals/object-define-property.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/object-get-own-property-descriptor.js +38 -0
- package/dist/cjs/node_modules/core-js/internals/object-get-own-property-descriptor.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/object-get-own-property-names.js +20 -0
- package/dist/cjs/node_modules/core-js/internals/object-get-own-property-names.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/object-get-own-property-symbols.js +9 -0
- package/dist/cjs/node_modules/core-js/internals/object-get-own-property-symbols.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/object-get-prototype-of.js +32 -0
- package/dist/cjs/node_modules/core-js/internals/object-get-prototype-of.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/object-is-prototype-of.js +10 -0
- package/dist/cjs/node_modules/core-js/internals/object-is-prototype-of.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/object-keys-internal.js +31 -0
- package/dist/cjs/node_modules/core-js/internals/object-keys-internal.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/object-keys.js +17 -0
- package/dist/cjs/node_modules/core-js/internals/object-keys.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/object-property-is-enumerable.js +20 -0
- package/dist/cjs/node_modules/core-js/internals/object-property-is-enumerable.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/object-set-prototype-of.js +38 -0
- package/dist/cjs/node_modules/core-js/internals/object-set-prototype-of.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/ordinary-to-primitive.js +24 -0
- package/dist/cjs/node_modules/core-js/internals/ordinary-to-primitive.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/own-keys.js +27 -0
- package/dist/cjs/node_modules/core-js/internals/own-keys.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/path.js +10 -0
- package/dist/cjs/node_modules/core-js/internals/path.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/perform.js +12 -0
- package/dist/cjs/node_modules/core-js/internals/perform.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/promise-constructor-detection.js +57 -0
- package/dist/cjs/node_modules/core-js/internals/promise-constructor-detection.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/promise-native-constructor.js +10 -0
- package/dist/cjs/node_modules/core-js/internals/promise-native-constructor.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/promise-resolve.js +22 -0
- package/dist/cjs/node_modules/core-js/internals/promise-resolve.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/promise-statics-incorrect-iteration.js +16 -0
- package/dist/cjs/node_modules/core-js/internals/promise-statics-incorrect-iteration.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/queue.js +29 -0
- package/dist/cjs/node_modules/core-js/internals/queue.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-exec-abstract.js +31 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-exec-abstract.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-exec.js +132 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-exec.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-flags-detection.js +54 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-flags-detection.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-flags.js +24 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-flags.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-get-flags.js +26 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-get-flags.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-sticky-helpers.js +37 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-sticky-helpers.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-unsupported-dot-all.js +18 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-unsupported-dot-all.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-unsupported-ncg.js +19 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-unsupported-ncg.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/require-object-coercible.js +17 -0
- package/dist/cjs/node_modules/core-js/internals/require-object-coercible.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/safe-get-built-in.js +20 -0
- package/dist/cjs/node_modules/core-js/internals/safe-get-built-in.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/set-species.js +27 -0
- package/dist/cjs/node_modules/core-js/internals/set-species.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/set-to-string-tag.js +22 -0
- package/dist/cjs/node_modules/core-js/internals/set-to-string-tag.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/shared-key.js +16 -0
- package/dist/cjs/node_modules/core-js/internals/shared-key.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/shared-store.js +24 -0
- package/dist/cjs/node_modules/core-js/internals/shared-store.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/shared.js +12 -0
- package/dist/cjs/node_modules/core-js/internals/shared.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/species-constructor.js +24 -0
- package/dist/cjs/node_modules/core-js/internals/species-constructor.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/string-multibyte.js +43 -0
- package/dist/cjs/node_modules/core-js/internals/string-multibyte.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/string-trim-forced.js +24 -0
- package/dist/cjs/node_modules/core-js/internals/string-trim-forced.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/string-trim.js +34 -0
- package/dist/cjs/node_modules/core-js/internals/string-trim.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/symbol-constructor-detection.js +27 -0
- package/dist/cjs/node_modules/core-js/internals/symbol-constructor-detection.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/task.js +132 -0
- package/dist/cjs/node_modules/core-js/internals/task.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/to-absolute-index.js +19 -0
- package/dist/cjs/node_modules/core-js/internals/to-absolute-index.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/to-indexed-object.js +15 -0
- package/dist/cjs/node_modules/core-js/internals/to-indexed-object.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/to-integer-or-infinity.js +16 -0
- package/dist/cjs/node_modules/core-js/internals/to-integer-or-infinity.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/to-length.js +17 -0
- package/dist/cjs/node_modules/core-js/internals/to-length.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/to-object.js +16 -0
- package/dist/cjs/node_modules/core-js/internals/to-object.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/to-primitive.js +37 -0
- package/dist/cjs/node_modules/core-js/internals/to-primitive.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/to-property-key.js +17 -0
- package/dist/cjs/node_modules/core-js/internals/to-property-key.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/to-string-tag-support.js +15 -0
- package/dist/cjs/node_modules/core-js/internals/to-string-tag-support.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/to-string.js +15 -0
- package/dist/cjs/node_modules/core-js/internals/to-string.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/try-to-string.js +14 -0
- package/dist/cjs/node_modules/core-js/internals/try-to-string.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/uid.js +16 -0
- package/dist/cjs/node_modules/core-js/internals/uid.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/use-symbol-as-uid.js +13 -0
- package/dist/cjs/node_modules/core-js/internals/use-symbol-as-uid.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/v8-prototype-define-bug.js +20 -0
- package/dist/cjs/node_modules/core-js/internals/v8-prototype-define-bug.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/validate-arguments-length.js +11 -0
- package/dist/cjs/node_modules/core-js/internals/validate-arguments-length.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/weak-map-basic-detection.js +14 -0
- package/dist/cjs/node_modules/core-js/internals/weak-map-basic-detection.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/well-known-symbol.js +30 -0
- package/dist/cjs/node_modules/core-js/internals/well-known-symbol.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/whitespaces.js +8 -0
- package/dist/cjs/node_modules/core-js/internals/whitespaces.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.array.index-of.js +30 -0
- package/dist/cjs/node_modules/core-js/modules/es.array.index-of.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.array.iterator.js +75 -0
- package/dist/cjs/node_modules/core-js/modules/es.array.iterator.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.array.reduce.js +28 -0
- package/dist/cjs/node_modules/core-js/modules/es.array.reduce.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.array.reverse.js +25 -0
- package/dist/cjs/node_modules/core-js/modules/es.array.reverse.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.promise.all.js +50 -0
- package/dist/cjs/node_modules/core-js/modules/es.promise.all.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.promise.catch.js +34 -0
- package/dist/cjs/node_modules/core-js/modules/es.promise.catch.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.promise.constructor.js +319 -0
- package/dist/cjs/node_modules/core-js/modules/es.promise.constructor.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.promise.race.js +37 -0
- package/dist/cjs/node_modules/core-js/modules/es.promise.race.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.promise.reject.js +22 -0
- package/dist/cjs/node_modules/core-js/modules/es.promise.reject.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.promise.resolve.js +23 -0
- package/dist/cjs/node_modules/core-js/modules/es.promise.resolve.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.regexp.exec.js +14 -0
- package/dist/cjs/node_modules/core-js/modules/es.regexp.exec.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.regexp.to-string.js +35 -0
- package/dist/cjs/node_modules/core-js/modules/es.regexp.to-string.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.string.ends-with.js +45 -0
- package/dist/cjs/node_modules/core-js/modules/es.string.ends-with.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.string.includes.js +30 -0
- package/dist/cjs/node_modules/core-js/modules/es.string.includes.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.string.match.js +69 -0
- package/dist/cjs/node_modules/core-js/modules/es.string.match.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.string.replace.js +165 -0
- package/dist/cjs/node_modules/core-js/modules/es.string.replace.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.string.split.js +128 -0
- package/dist/cjs/node_modules/core-js/modules/es.string.split.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.string.starts-with.js +43 -0
- package/dist/cjs/node_modules/core-js/modules/es.string.starts-with.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.string.trim.js +18 -0
- package/dist/cjs/node_modules/core-js/modules/es.string.trim.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/web.dom-collections.iterator.js +47 -0
- package/dist/cjs/node_modules/core-js/modules/web.dom-collections.iterator.js.map +1 -0
- package/dist/cjs/node_modules/dompurify/dist/purify.es.js +1533 -0
- package/dist/cjs/node_modules/dompurify/dist/purify.es.js.map +1 -0
- package/dist/cjs/node_modules/fflate/esm/browser.js +807 -0
- package/dist/cjs/node_modules/fflate/esm/browser.js.map +1 -0
- package/dist/cjs/node_modules/html2canvas/dist/html2canvas.esm.js +7824 -0
- package/dist/cjs/node_modules/html2canvas/dist/html2canvas.esm.js.map +1 -0
- package/dist/cjs/node_modules/jspdf/dist/jspdf.es.min.js +358 -0
- package/dist/cjs/node_modules/jspdf/dist/jspdf.es.min.js.map +1 -0
- package/dist/cjs/node_modules/performance-now/lib/performance-now.js +46 -0
- package/dist/cjs/node_modules/performance-now/lib/performance-now.js.map +1 -0
- package/dist/cjs/node_modules/qrious/dist/qrious.js +2374 -0
- package/dist/cjs/node_modules/qrious/dist/qrious.js.map +1 -0
- package/dist/cjs/node_modules/raf/index.js +87 -0
- package/dist/cjs/node_modules/raf/index.js.map +1 -0
- package/dist/cjs/node_modules/rgbcolor/index.js +311 -0
- package/dist/cjs/node_modules/rgbcolor/index.js.map +1 -0
- package/dist/cjs/node_modules/stackblur-canvas/dist/stackblur-es.js +384 -0
- package/dist/cjs/node_modules/stackblur-canvas/dist/stackblur-es.js.map +1 -0
- package/dist/cjs/node_modules/svg-pathdata/lib/SVGPathData.module.js +23 -0
- package/dist/cjs/node_modules/svg-pathdata/lib/SVGPathData.module.js.map +1 -0
- package/dist/cjs/storage/templateStorage.js +154 -0
- package/dist/cjs/storage/templateStorage.js.map +1 -0
- package/dist/cjs/styles.css +1 -0
- package/dist/cjs/utils/styleUtils.js +98 -0
- package/dist/cjs/utils/styleUtils.js.map +1 -0
- package/dist/cjs/utils/validators.js +144 -0
- package/dist/cjs/utils/validators.js.map +1 -0
- package/dist/esm/_virtual/_commonjsHelpers.js +8 -0
- package/dist/esm/_virtual/_commonjsHelpers.js.map +1 -0
- package/dist/esm/_virtual/index.js +4 -0
- package/dist/esm/_virtual/index.js.map +1 -0
- package/dist/esm/_virtual/make-built-in.js +4 -0
- package/dist/esm/_virtual/make-built-in.js.map +1 -0
- package/dist/esm/_virtual/new-promise-capability.js +4 -0
- package/dist/esm/_virtual/new-promise-capability.js.map +1 -0
- package/dist/esm/_virtual/object-define-properties.js +4 -0
- package/dist/esm/_virtual/object-define-properties.js.map +1 -0
- package/dist/esm/_virtual/object-define-property.js +4 -0
- package/dist/esm/_virtual/object-define-property.js.map +1 -0
- package/dist/esm/_virtual/object-get-own-property-descriptor.js +4 -0
- package/dist/esm/_virtual/object-get-own-property-descriptor.js.map +1 -0
- package/dist/esm/_virtual/object-get-own-property-names.js +4 -0
- package/dist/esm/_virtual/object-get-own-property-names.js.map +1 -0
- package/dist/esm/_virtual/object-get-own-property-symbols.js +4 -0
- package/dist/esm/_virtual/object-get-own-property-symbols.js.map +1 -0
- package/dist/esm/_virtual/object-property-is-enumerable.js +4 -0
- package/dist/esm/_virtual/object-property-is-enumerable.js.map +1 -0
- package/dist/esm/_virtual/performance-now.js +4 -0
- package/dist/esm/_virtual/performance-now.js.map +1 -0
- package/dist/esm/_virtual/qrious.js +4 -0
- package/dist/esm/_virtual/qrious.js.map +1 -0
- package/dist/esm/_virtual/shared-store.js +4 -0
- package/dist/esm/_virtual/shared-store.js.map +1 -0
- package/dist/esm/components/IDCardDesigner.js +278 -0
- package/dist/esm/components/IDCardDesigner.js.map +1 -0
- package/dist/esm/components/IDCardGenerator.js +134 -0
- package/dist/esm/components/IDCardGenerator.js.map +1 -0
- package/dist/esm/components/IDCardPreview.js +163 -0
- package/dist/esm/components/IDCardPreview.js.map +1 -0
- package/dist/esm/core/exportUtils.js +151 -0
- package/dist/esm/core/exportUtils.js.map +1 -0
- package/dist/esm/core/qrUtils.js +60 -0
- package/dist/esm/core/qrUtils.js.map +1 -0
- package/dist/esm/hooks/useFieldMapping.js +146 -0
- package/dist/esm/hooks/useFieldMapping.js.map +1 -0
- package/dist/esm/hooks/useIDCardExport.js +79 -0
- package/dist/esm/hooks/useIDCardExport.js.map +1 -0
- package/dist/esm/hooks/useIDCardTemplate.js +153 -0
- package/dist/esm/hooks/useIDCardTemplate.js.map +1 -0
- package/dist/esm/index.js +12 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js +28 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js.map +1 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/defineProperty.js +13 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/defineProperty.js.map +1 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +15 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/toPrimitive.js.map +1 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +10 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js.map +1 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/typeof.js +12 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/typeof.js.map +1 -0
- package/dist/esm/node_modules/canvg/lib/index.es.js +6556 -0
- package/dist/esm/node_modules/canvg/lib/index.es.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/a-callable.js +16 -0
- package/dist/esm/node_modules/core-js/internals/a-callable.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/a-constructor.js +16 -0
- package/dist/esm/node_modules/core-js/internals/a-constructor.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/a-possible-prototype.js +14 -0
- package/dist/esm/node_modules/core-js/internals/a-possible-prototype.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/add-to-unscopables.js +28 -0
- package/dist/esm/node_modules/core-js/internals/add-to-unscopables.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/advance-string-index.js +12 -0
- package/dist/esm/node_modules/core-js/internals/advance-string-index.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/an-instance.js +13 -0
- package/dist/esm/node_modules/core-js/internals/an-instance.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/an-object.js +15 -0
- package/dist/esm/node_modules/core-js/internals/an-object.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/array-includes.js +37 -0
- package/dist/esm/node_modules/core-js/internals/array-includes.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/array-method-is-strict.js +14 -0
- package/dist/esm/node_modules/core-js/internals/array-method-is-strict.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/array-reduce.js +49 -0
- package/dist/esm/node_modules/core-js/internals/array-reduce.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/array-slice.js +8 -0
- package/dist/esm/node_modules/core-js/internals/array-slice.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/check-correctness-of-iteration.js +47 -0
- package/dist/esm/node_modules/core-js/internals/check-correctness-of-iteration.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/classof-raw.js +13 -0
- package/dist/esm/node_modules/core-js/internals/classof-raw.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/classof.js +37 -0
- package/dist/esm/node_modules/core-js/internals/classof.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/copy-constructor-properties.js +26 -0
- package/dist/esm/node_modules/core-js/internals/copy-constructor-properties.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/correct-is-regexp-logic.js +20 -0
- package/dist/esm/node_modules/core-js/internals/correct-is-regexp-logic.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/correct-prototype-getter.js +13 -0
- package/dist/esm/node_modules/core-js/internals/correct-prototype-getter.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/create-iter-result-object.js +8 -0
- package/dist/esm/node_modules/core-js/internals/create-iter-result-object.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/create-non-enumerable-property.js +18 -0
- package/dist/esm/node_modules/core-js/internals/create-non-enumerable-property.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/create-property-descriptor.js +11 -0
- package/dist/esm/node_modules/core-js/internals/create-property-descriptor.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/define-built-in-accessor.js +15 -0
- package/dist/esm/node_modules/core-js/internals/define-built-in-accessor.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/define-built-in.js +36 -0
- package/dist/esm/node_modules/core-js/internals/define-built-in.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/define-global-property.js +17 -0
- package/dist/esm/node_modules/core-js/internals/define-global-property.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/descriptors.js +12 -0
- package/dist/esm/node_modules/core-js/internals/descriptors.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/document-create-element.js +16 -0
- package/dist/esm/node_modules/core-js/internals/document-create-element.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/dom-iterables.js +38 -0
- package/dist/esm/node_modules/core-js/internals/dom-iterables.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/dom-token-list-prototype.js +12 -0
- package/dist/esm/node_modules/core-js/internals/dom-token-list-prototype.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/enum-bug-keys.js +13 -0
- package/dist/esm/node_modules/core-js/internals/enum-bug-keys.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/environment-is-ios-pebble.js +8 -0
- package/dist/esm/node_modules/core-js/internals/environment-is-ios-pebble.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/environment-is-ios.js +9 -0
- package/dist/esm/node_modules/core-js/internals/environment-is-ios.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/environment-is-node.js +8 -0
- package/dist/esm/node_modules/core-js/internals/environment-is-node.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/environment-is-webos-webkit.js +8 -0
- package/dist/esm/node_modules/core-js/internals/environment-is-webos-webkit.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/environment-user-agent.js +11 -0
- package/dist/esm/node_modules/core-js/internals/environment-user-agent.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/environment-v8-version.js +33 -0
- package/dist/esm/node_modules/core-js/internals/environment-v8-version.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/environment.js +27 -0
- package/dist/esm/node_modules/core-js/internals/environment.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/export.js +66 -0
- package/dist/esm/node_modules/core-js/internals/export.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/fails.js +10 -0
- package/dist/esm/node_modules/core-js/internals/fails.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js +88 -0
- package/dist/esm/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/function-apply.js +15 -0
- package/dist/esm/node_modules/core-js/internals/function-apply.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/function-bind-context.js +20 -0
- package/dist/esm/node_modules/core-js/internals/function-bind-context.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/function-bind-native.js +13 -0
- package/dist/esm/node_modules/core-js/internals/function-bind-native.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/function-call.js +12 -0
- package/dist/esm/node_modules/core-js/internals/function-call.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/function-name.js +22 -0
- package/dist/esm/node_modules/core-js/internals/function-name.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/function-uncurry-this-accessor.js +15 -0
- package/dist/esm/node_modules/core-js/internals/function-uncurry-this-accessor.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/function-uncurry-this-clause.js +15 -0
- package/dist/esm/node_modules/core-js/internals/function-uncurry-this-clause.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/function-uncurry-this.js +17 -0
- package/dist/esm/node_modules/core-js/internals/function-uncurry-this.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/get-built-in.js +16 -0
- package/dist/esm/node_modules/core-js/internals/get-built-in.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/get-iterator-method.js +22 -0
- package/dist/esm/node_modules/core-js/internals/get-iterator-method.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/get-iterator.js +22 -0
- package/dist/esm/node_modules/core-js/internals/get-iterator.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/get-method.js +15 -0
- package/dist/esm/node_modules/core-js/internals/get-method.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/get-substitution.js +51 -0
- package/dist/esm/node_modules/core-js/internals/get-substitution.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/global-this.js +20 -0
- package/dist/esm/node_modules/core-js/internals/global-this.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/has-own-property.js +17 -0
- package/dist/esm/node_modules/core-js/internals/has-own-property.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/hidden-keys.js +4 -0
- package/dist/esm/node_modules/core-js/internals/hidden-keys.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/host-report-errors.js +9 -0
- package/dist/esm/node_modules/core-js/internals/host-report-errors.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/html.js +8 -0
- package/dist/esm/node_modules/core-js/internals/html.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/ie8-dom-define.js +18 -0
- package/dist/esm/node_modules/core-js/internals/ie8-dom-define.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/indexed-object.js +22 -0
- package/dist/esm/node_modules/core-js/internals/indexed-object.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/inspect-source.js +21 -0
- package/dist/esm/node_modules/core-js/internals/inspect-source.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/internal-state.js +82 -0
- package/dist/esm/node_modules/core-js/internals/internal-state.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/is-array-iterator-method.js +16 -0
- package/dist/esm/node_modules/core-js/internals/is-array-iterator-method.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/is-array.js +13 -0
- package/dist/esm/node_modules/core-js/internals/is-array.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/is-callable.js +14 -0
- package/dist/esm/node_modules/core-js/internals/is-callable.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/is-constructor.js +61 -0
- package/dist/esm/node_modules/core-js/internals/is-constructor.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/is-forced.js +28 -0
- package/dist/esm/node_modules/core-js/internals/is-forced.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/is-null-or-undefined.js +8 -0
- package/dist/esm/node_modules/core-js/internals/is-null-or-undefined.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/is-object.js +10 -0
- package/dist/esm/node_modules/core-js/internals/is-object.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/is-possible-prototype.js +10 -0
- package/dist/esm/node_modules/core-js/internals/is-possible-prototype.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/is-regexp.js +19 -0
- package/dist/esm/node_modules/core-js/internals/is-regexp.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/is-symbol.js +21 -0
- package/dist/esm/node_modules/core-js/internals/is-symbol.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/iterate.js +82 -0
- package/dist/esm/node_modules/core-js/internals/iterate.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/iterator-close.js +30 -0
- package/dist/esm/node_modules/core-js/internals/iterator-close.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/iterator-create-constructor.js +24 -0
- package/dist/esm/node_modules/core-js/internals/iterator-create-constructor.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/iterator-define.js +116 -0
- package/dist/esm/node_modules/core-js/internals/iterator-define.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/iterators-core.js +56 -0
- package/dist/esm/node_modules/core-js/internals/iterators-core.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/iterators.js +4 -0
- package/dist/esm/node_modules/core-js/internals/iterators.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/length-of-array-like.js +12 -0
- package/dist/esm/node_modules/core-js/internals/length-of-array-like.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/make-built-in.js +69 -0
- package/dist/esm/node_modules/core-js/internals/make-built-in.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/math-trunc.js +13 -0
- package/dist/esm/node_modules/core-js/internals/math-trunc.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/microtask.js +91 -0
- package/dist/esm/node_modules/core-js/internals/microtask.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/new-promise-capability.js +26 -0
- package/dist/esm/node_modules/core-js/internals/new-promise-capability.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/not-a-regexp.js +14 -0
- package/dist/esm/node_modules/core-js/internals/not-a-regexp.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/object-create.js +96 -0
- package/dist/esm/node_modules/core-js/internals/object-create.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/object-define-properties.js +32 -0
- package/dist/esm/node_modules/core-js/internals/object-define-properties.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/object-define-property.js +53 -0
- package/dist/esm/node_modules/core-js/internals/object-define-property.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/object-get-own-property-descriptor.js +36 -0
- package/dist/esm/node_modules/core-js/internals/object-get-own-property-descriptor.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/object-get-own-property-names.js +18 -0
- package/dist/esm/node_modules/core-js/internals/object-get-own-property-names.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/object-get-own-property-symbols.js +7 -0
- package/dist/esm/node_modules/core-js/internals/object-get-own-property-symbols.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/object-get-prototype-of.js +30 -0
- package/dist/esm/node_modules/core-js/internals/object-get-prototype-of.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/object-is-prototype-of.js +8 -0
- package/dist/esm/node_modules/core-js/internals/object-is-prototype-of.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/object-keys-internal.js +29 -0
- package/dist/esm/node_modules/core-js/internals/object-keys-internal.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/object-keys.js +15 -0
- package/dist/esm/node_modules/core-js/internals/object-keys.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/object-property-is-enumerable.js +18 -0
- package/dist/esm/node_modules/core-js/internals/object-property-is-enumerable.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/object-set-prototype-of.js +36 -0
- package/dist/esm/node_modules/core-js/internals/object-set-prototype-of.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/ordinary-to-primitive.js +22 -0
- package/dist/esm/node_modules/core-js/internals/ordinary-to-primitive.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/own-keys.js +25 -0
- package/dist/esm/node_modules/core-js/internals/own-keys.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/path.js +8 -0
- package/dist/esm/node_modules/core-js/internals/path.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/perform.js +10 -0
- package/dist/esm/node_modules/core-js/internals/perform.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/promise-constructor-detection.js +55 -0
- package/dist/esm/node_modules/core-js/internals/promise-constructor-detection.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/promise-native-constructor.js +8 -0
- package/dist/esm/node_modules/core-js/internals/promise-native-constructor.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/promise-resolve.js +20 -0
- package/dist/esm/node_modules/core-js/internals/promise-resolve.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/promise-statics-incorrect-iteration.js +14 -0
- package/dist/esm/node_modules/core-js/internals/promise-statics-incorrect-iteration.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/queue.js +27 -0
- package/dist/esm/node_modules/core-js/internals/queue.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/regexp-exec-abstract.js +29 -0
- package/dist/esm/node_modules/core-js/internals/regexp-exec-abstract.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/regexp-exec.js +130 -0
- package/dist/esm/node_modules/core-js/internals/regexp-exec.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/regexp-flags-detection.js +52 -0
- package/dist/esm/node_modules/core-js/internals/regexp-flags-detection.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/regexp-flags.js +22 -0
- package/dist/esm/node_modules/core-js/internals/regexp-flags.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/regexp-get-flags.js +24 -0
- package/dist/esm/node_modules/core-js/internals/regexp-get-flags.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/regexp-sticky-helpers.js +35 -0
- package/dist/esm/node_modules/core-js/internals/regexp-sticky-helpers.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/regexp-unsupported-dot-all.js +16 -0
- package/dist/esm/node_modules/core-js/internals/regexp-unsupported-dot-all.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/regexp-unsupported-ncg.js +17 -0
- package/dist/esm/node_modules/core-js/internals/regexp-unsupported-ncg.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/require-object-coercible.js +15 -0
- package/dist/esm/node_modules/core-js/internals/require-object-coercible.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/safe-get-built-in.js +18 -0
- package/dist/esm/node_modules/core-js/internals/safe-get-built-in.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/set-species.js +25 -0
- package/dist/esm/node_modules/core-js/internals/set-species.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/set-to-string-tag.js +20 -0
- package/dist/esm/node_modules/core-js/internals/set-to-string-tag.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/shared-key.js +14 -0
- package/dist/esm/node_modules/core-js/internals/shared-key.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/shared-store.js +22 -0
- package/dist/esm/node_modules/core-js/internals/shared-store.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/shared.js +10 -0
- package/dist/esm/node_modules/core-js/internals/shared.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/species-constructor.js +22 -0
- package/dist/esm/node_modules/core-js/internals/species-constructor.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/string-multibyte.js +41 -0
- package/dist/esm/node_modules/core-js/internals/string-multibyte.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/string-trim-forced.js +22 -0
- package/dist/esm/node_modules/core-js/internals/string-trim-forced.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/string-trim.js +32 -0
- package/dist/esm/node_modules/core-js/internals/string-trim.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/symbol-constructor-detection.js +25 -0
- package/dist/esm/node_modules/core-js/internals/symbol-constructor-detection.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/task.js +130 -0
- package/dist/esm/node_modules/core-js/internals/task.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/to-absolute-index.js +17 -0
- package/dist/esm/node_modules/core-js/internals/to-absolute-index.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/to-indexed-object.js +13 -0
- package/dist/esm/node_modules/core-js/internals/to-indexed-object.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/to-integer-or-infinity.js +14 -0
- package/dist/esm/node_modules/core-js/internals/to-integer-or-infinity.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/to-length.js +15 -0
- package/dist/esm/node_modules/core-js/internals/to-length.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/to-object.js +14 -0
- package/dist/esm/node_modules/core-js/internals/to-object.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/to-primitive.js +35 -0
- package/dist/esm/node_modules/core-js/internals/to-primitive.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/to-property-key.js +15 -0
- package/dist/esm/node_modules/core-js/internals/to-property-key.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/to-string-tag-support.js +13 -0
- package/dist/esm/node_modules/core-js/internals/to-string-tag-support.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/to-string.js +13 -0
- package/dist/esm/node_modules/core-js/internals/to-string.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/try-to-string.js +12 -0
- package/dist/esm/node_modules/core-js/internals/try-to-string.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/uid.js +14 -0
- package/dist/esm/node_modules/core-js/internals/uid.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/use-symbol-as-uid.js +11 -0
- package/dist/esm/node_modules/core-js/internals/use-symbol-as-uid.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/v8-prototype-define-bug.js +18 -0
- package/dist/esm/node_modules/core-js/internals/v8-prototype-define-bug.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/validate-arguments-length.js +9 -0
- package/dist/esm/node_modules/core-js/internals/validate-arguments-length.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/weak-map-basic-detection.js +12 -0
- package/dist/esm/node_modules/core-js/internals/weak-map-basic-detection.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/well-known-symbol.js +28 -0
- package/dist/esm/node_modules/core-js/internals/well-known-symbol.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/whitespaces.js +6 -0
- package/dist/esm/node_modules/core-js/internals/whitespaces.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.array.index-of.js +28 -0
- package/dist/esm/node_modules/core-js/modules/es.array.index-of.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.array.iterator.js +73 -0
- package/dist/esm/node_modules/core-js/modules/es.array.iterator.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.array.reduce.js +26 -0
- package/dist/esm/node_modules/core-js/modules/es.array.reduce.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.array.reverse.js +23 -0
- package/dist/esm/node_modules/core-js/modules/es.array.reverse.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.promise.all.js +48 -0
- package/dist/esm/node_modules/core-js/modules/es.promise.all.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.promise.catch.js +32 -0
- package/dist/esm/node_modules/core-js/modules/es.promise.catch.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.promise.constructor.js +317 -0
- package/dist/esm/node_modules/core-js/modules/es.promise.constructor.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.promise.race.js +35 -0
- package/dist/esm/node_modules/core-js/modules/es.promise.race.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.promise.reject.js +20 -0
- package/dist/esm/node_modules/core-js/modules/es.promise.reject.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.promise.resolve.js +21 -0
- package/dist/esm/node_modules/core-js/modules/es.promise.resolve.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.regexp.exec.js +12 -0
- package/dist/esm/node_modules/core-js/modules/es.regexp.exec.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.regexp.to-string.js +33 -0
- package/dist/esm/node_modules/core-js/modules/es.regexp.to-string.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.string.ends-with.js +43 -0
- package/dist/esm/node_modules/core-js/modules/es.string.ends-with.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.string.includes.js +28 -0
- package/dist/esm/node_modules/core-js/modules/es.string.includes.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.string.match.js +67 -0
- package/dist/esm/node_modules/core-js/modules/es.string.match.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.string.replace.js +163 -0
- package/dist/esm/node_modules/core-js/modules/es.string.replace.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.string.split.js +126 -0
- package/dist/esm/node_modules/core-js/modules/es.string.split.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.string.starts-with.js +41 -0
- package/dist/esm/node_modules/core-js/modules/es.string.starts-with.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.string.trim.js +16 -0
- package/dist/esm/node_modules/core-js/modules/es.string.trim.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/web.dom-collections.iterator.js +45 -0
- package/dist/esm/node_modules/core-js/modules/web.dom-collections.iterator.js.map +1 -0
- package/dist/esm/node_modules/dompurify/dist/purify.es.js +1531 -0
- package/dist/esm/node_modules/dompurify/dist/purify.es.js.map +1 -0
- package/dist/esm/node_modules/fflate/esm/browser.js +804 -0
- package/dist/esm/node_modules/fflate/esm/browser.js.map +1 -0
- package/dist/esm/node_modules/html2canvas/dist/html2canvas.esm.js +7822 -0
- package/dist/esm/node_modules/html2canvas/dist/html2canvas.esm.js.map +1 -0
- package/dist/esm/node_modules/jspdf/dist/jspdf.es.min.js +337 -0
- package/dist/esm/node_modules/jspdf/dist/jspdf.es.min.js.map +1 -0
- package/dist/esm/node_modules/performance-now/lib/performance-now.js +44 -0
- package/dist/esm/node_modules/performance-now/lib/performance-now.js.map +1 -0
- package/dist/esm/node_modules/qrious/dist/qrious.js +2372 -0
- package/dist/esm/node_modules/qrious/dist/qrious.js.map +1 -0
- package/dist/esm/node_modules/raf/index.js +85 -0
- package/dist/esm/node_modules/raf/index.js.map +1 -0
- package/dist/esm/node_modules/rgbcolor/index.js +309 -0
- package/dist/esm/node_modules/rgbcolor/index.js.map +1 -0
- package/dist/esm/node_modules/stackblur-canvas/dist/stackblur-es.js +380 -0
- package/dist/esm/node_modules/stackblur-canvas/dist/stackblur-es.js.map +1 -0
- package/dist/esm/node_modules/svg-pathdata/lib/SVGPathData.module.js +18 -0
- package/dist/esm/node_modules/svg-pathdata/lib/SVGPathData.module.js.map +1 -0
- package/dist/esm/storage/templateStorage.js +144 -0
- package/dist/esm/storage/templateStorage.js.map +1 -0
- package/dist/esm/styles.css +1 -0
- package/dist/esm/utils/styleUtils.js +91 -0
- package/dist/esm/utils/styleUtils.js.map +1 -0
- package/dist/esm/utils/validators.js +139 -0
- package/dist/esm/utils/validators.js.map +1 -0
- package/dist/types/components/IDCardDesigner.d.ts +18 -0
- package/dist/types/components/IDCardGenerator.d.ts +19 -0
- package/dist/types/components/IDCardPreview.d.ts +15 -0
- package/dist/types/core/exportUtils.d.ts +34 -0
- package/dist/types/core/qrUtils.d.ts +27 -0
- package/dist/types/hooks/useFieldMapping.d.ts +10 -0
- package/dist/types/hooks/useIDCardExport.d.ts +10 -0
- package/dist/types/hooks/useIDCardTemplate.d.ts +10 -0
- package/dist/types/index.d.ts +33 -0
- package/dist/types/storage/templateStorage.d.ts +53 -0
- package/dist/types/types/index.d.ts +235 -0
- package/dist/types/utils/styleUtils.d.ts +34 -0
- package/dist/types/utils/validators.d.ts +27 -0
- package/package.json +65 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../../../../../node_modules/canvg/lib/index.es.js"],"sourcesContent":["import 'core-js/modules/es.promise.js';\nimport _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';\nimport 'core-js/modules/es.string.match.js';\nimport 'core-js/modules/es.string.replace.js';\nimport 'core-js/modules/es.string.starts-with.js';\nimport 'core-js/modules/es.array.iterator.js';\nimport 'core-js/modules/web.dom-collections.iterator.js';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport 'core-js/modules/es.array.reduce.js';\nimport 'core-js/modules/es.string.ends-with.js';\nimport 'core-js/modules/es.string.split.js';\nimport requestAnimationFrame from 'raf';\nimport 'core-js/modules/es.string.trim.js';\nimport RGBColor from 'rgbcolor';\nimport 'core-js/modules/es.array.index-of.js';\nimport 'core-js/modules/es.string.includes.js';\nimport 'core-js/modules/es.array.reverse.js';\nimport { SVGPathData } from 'svg-pathdata';\nimport 'core-js/modules/es.regexp.to-string.js';\nimport { canvasRGBA } from 'stackblur-canvas';\n\n/**\r\n * Options preset for `OffscreenCanvas`.\r\n * @param config - Preset requirements.\r\n * @param config.DOMParser - XML/HTML parser from string into DOM Document.\r\n * @returns Preset object.\r\n */\nfunction offscreen() {\n var {\n DOMParser: DOMParserFallback\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var preset = {\n window: null,\n ignoreAnimation: true,\n ignoreMouse: true,\n DOMParser: DOMParserFallback,\n\n createCanvas(width, height) {\n return new OffscreenCanvas(width, height);\n },\n\n createImage(url) {\n return _asyncToGenerator(function* () {\n var response = yield fetch(url);\n var blob = yield response.blob();\n var img = yield createImageBitmap(blob);\n return img;\n })();\n }\n\n };\n\n if (typeof DOMParser !== 'undefined' || typeof DOMParserFallback === 'undefined') {\n Reflect.deleteProperty(preset, 'DOMParser');\n }\n\n return preset;\n}\n\n/**\r\n * Options preset for `node-canvas`.\r\n * @param config - Preset requirements.\r\n * @param config.DOMParser - XML/HTML parser from string into DOM Document.\r\n * @param config.canvas - `node-canvas` exports.\r\n * @param config.fetch - WHATWG-compatible `fetch` function.\r\n * @returns Preset object.\r\n */\nfunction node(_ref) {\n var {\n DOMParser,\n canvas,\n fetch\n } = _ref;\n return {\n window: null,\n ignoreAnimation: true,\n ignoreMouse: true,\n DOMParser,\n fetch,\n createCanvas: canvas.createCanvas,\n createImage: canvas.loadImage\n };\n}\n\nvar index = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\toffscreen: offscreen,\n\tnode: node\n});\n\n/**\r\n * HTML-safe compress white-spaces.\r\n * @param str - String to compress.\r\n * @returns String.\r\n */\nfunction compressSpaces(str) {\n return str.replace(/(?!\\u3000)\\s+/gm, ' ');\n}\n/**\r\n * HTML-safe left trim.\r\n * @param str - String to trim.\r\n * @returns String.\r\n */\n\nfunction trimLeft(str) {\n return str.replace(/^[\\n \\t]+/, '');\n}\n/**\r\n * HTML-safe right trim.\r\n * @param str - String to trim.\r\n * @returns String.\r\n */\n\nfunction trimRight(str) {\n return str.replace(/[\\n \\t]+$/, '');\n}\n/**\r\n * String to numbers array.\r\n * @param str - Numbers string.\r\n * @returns Numbers array.\r\n */\n\nfunction toNumbers(str) {\n var matches = (str || '').match(/-?(\\d+(?:\\.\\d*(?:[eE][+-]?\\d+)?)?|\\.\\d+)(?=\\D|$)/gm) || [];\n return matches.map(parseFloat);\n} // Microsoft Edge fix\n\nvar allUppercase = /^[A-Z-]+$/;\n/**\r\n * Normalize attribute name.\r\n * @param name - Attribute name.\r\n * @returns Normalized attribute name.\r\n */\n\nfunction normalizeAttributeName(name) {\n if (allUppercase.test(name)) {\n return name.toLowerCase();\n }\n\n return name;\n}\n/**\r\n * Parse external URL.\r\n * @param url - CSS url string.\r\n * @returns Parsed URL.\r\n */\n\nfunction parseExternalUrl(url) {\n // single quotes [2]\n // v double quotes [3]\n // v v no quotes [4]\n // v v v\n var urlMatch = /url\\(('([^']+)'|\"([^\"]+)\"|([^'\")]+))\\)/.exec(url) || [];\n return urlMatch[2] || urlMatch[3] || urlMatch[4];\n}\n/**\r\n * Transform floats to integers in rgb colors.\r\n * @param color - Color to normalize.\r\n * @returns Normalized color.\r\n */\n\nfunction normalizeColor(color) {\n if (!color.startsWith('rgb')) {\n return color;\n }\n\n var rgbParts = 3;\n var normalizedColor = color.replace(/\\d+(\\.\\d+)?/g, (num, isFloat) => rgbParts-- && isFloat ? String(Math.round(parseFloat(num))) : num);\n return normalizedColor;\n}\n\n// slightly modified version of https://github.com/keeganstreet/specificity/blob/master/specificity.js\nvar attributeRegex = /(\\[[^\\]]+\\])/g;\nvar idRegex = /(#[^\\s+>~.[:]+)/g;\nvar classRegex = /(\\.[^\\s+>~.[:]+)/g;\nvar pseudoElementRegex = /(::[^\\s+>~.[:]+|:first-line|:first-letter|:before|:after)/gi;\nvar pseudoClassWithBracketsRegex = /(:[\\w-]+\\([^)]*\\))/gi;\nvar pseudoClassRegex = /(:[^\\s+>~.[:]+)/g;\nvar elementRegex = /([^\\s+>~.[:]+)/g;\n\nfunction findSelectorMatch(selector, regex) {\n var matches = regex.exec(selector);\n\n if (!matches) {\n return [selector, 0];\n }\n\n return [selector.replace(regex, ' '), matches.length];\n}\n/**\r\n * Measure selector specificity.\r\n * @param selector - Selector to measure.\r\n * @returns Specificity.\r\n */\n\n\nfunction getSelectorSpecificity(selector) {\n var specificity = [0, 0, 0];\n var currentSelector = selector.replace(/:not\\(([^)]*)\\)/g, ' $1 ').replace(/{[\\s\\S]*/gm, ' ');\n var delta = 0;\n [currentSelector, delta] = findSelectorMatch(currentSelector, attributeRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, idRegex);\n specificity[0] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, classRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoElementRegex);\n specificity[2] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoClassWithBracketsRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoClassRegex);\n specificity[1] += delta;\n currentSelector = currentSelector.replace(/[*\\s+>~]/g, ' ').replace(/[#.]/g, ' ');\n [currentSelector, delta] = findSelectorMatch(currentSelector, elementRegex); // lgtm [js/useless-assignment-to-local]\n\n specificity[2] += delta;\n return specificity.join('');\n}\n\nvar PSEUDO_ZERO = .00000001;\n/**\r\n * Vector magnitude.\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorMagnitude(v) {\n return Math.sqrt(Math.pow(v[0], 2) + Math.pow(v[1], 2));\n}\n/**\r\n * Ratio between two vectors.\r\n * @param u\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorsRatio(u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vectorMagnitude(u) * vectorMagnitude(v));\n}\n/**\r\n * Angle between two vectors.\r\n * @param u\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorsAngle(u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vectorsRatio(u, v));\n}\nfunction CB1(t) {\n return t * t * t;\n}\nfunction CB2(t) {\n return 3 * t * t * (1 - t);\n}\nfunction CB3(t) {\n return 3 * t * (1 - t) * (1 - t);\n}\nfunction CB4(t) {\n return (1 - t) * (1 - t) * (1 - t);\n}\nfunction QB1(t) {\n return t * t;\n}\nfunction QB2(t) {\n return 2 * t * (1 - t);\n}\nfunction QB3(t) {\n return (1 - t) * (1 - t);\n}\n\nclass Property {\n constructor(document, name, value) {\n this.document = document;\n this.name = name;\n this.value = value;\n this.isNormalizedColor = false;\n }\n\n static empty(document) {\n return new Property(document, 'EMPTY', '');\n }\n\n split() {\n var separator = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ' ';\n var {\n document,\n name\n } = this;\n return compressSpaces(this.getString()).trim().split(separator).map(value => new Property(document, name, value));\n }\n\n hasValue(zeroIsValue) {\n var {\n value\n } = this;\n return value !== null && value !== '' && (zeroIsValue || value !== 0) && typeof value !== 'undefined';\n }\n\n isString(regexp) {\n var {\n value\n } = this;\n var result = typeof value === 'string';\n\n if (!result || !regexp) {\n return result;\n }\n\n return regexp.test(value);\n }\n\n isUrlDefinition() {\n return this.isString(/^url\\(/);\n }\n\n isPixels() {\n if (!this.hasValue()) {\n return false;\n }\n\n var asString = this.getString();\n\n switch (true) {\n case asString.endsWith('px'):\n case /^[0-9]+$/.test(asString):\n return true;\n\n default:\n return false;\n }\n }\n\n setValue(value) {\n this.value = value;\n return this;\n }\n\n getValue(def) {\n if (typeof def === 'undefined' || this.hasValue()) {\n return this.value;\n }\n\n return def;\n }\n\n getNumber(def) {\n if (!this.hasValue()) {\n if (typeof def === 'undefined') {\n return 0;\n }\n\n return parseFloat(def);\n }\n\n var {\n value\n } = this;\n var n = parseFloat(value);\n\n if (this.isString(/%$/)) {\n n /= 100.0;\n }\n\n return n;\n }\n\n getString(def) {\n if (typeof def === 'undefined' || this.hasValue()) {\n return typeof this.value === 'undefined' ? '' : String(this.value);\n }\n\n return String(def);\n }\n\n getColor(def) {\n var color = this.getString(def);\n\n if (this.isNormalizedColor) {\n return color;\n }\n\n this.isNormalizedColor = true;\n color = normalizeColor(color);\n this.value = color;\n return color;\n }\n\n getDpi() {\n return 96.0; // TODO: compute?\n }\n\n getRem() {\n return this.document.rootEmSize;\n }\n\n getEm() {\n return this.document.emSize;\n }\n\n getUnits() {\n return this.getString().replace(/[0-9.-]/g, '');\n }\n\n getPixels(axisOrIsFontSize) {\n var processPercent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!this.hasValue()) {\n return 0;\n }\n\n var [axis, isFontSize] = typeof axisOrIsFontSize === 'boolean' ? [undefined, axisOrIsFontSize] : [axisOrIsFontSize];\n var {\n viewPort\n } = this.document.screen;\n\n switch (true) {\n case this.isString(/vmin$/):\n return this.getNumber() / 100.0 * Math.min(viewPort.computeSize('x'), viewPort.computeSize('y'));\n\n case this.isString(/vmax$/):\n return this.getNumber() / 100.0 * Math.max(viewPort.computeSize('x'), viewPort.computeSize('y'));\n\n case this.isString(/vw$/):\n return this.getNumber() / 100.0 * viewPort.computeSize('x');\n\n case this.isString(/vh$/):\n return this.getNumber() / 100.0 * viewPort.computeSize('y');\n\n case this.isString(/rem$/):\n return this.getNumber() * this.getRem();\n\n case this.isString(/em$/):\n return this.getNumber() * this.getEm();\n\n case this.isString(/ex$/):\n return this.getNumber() * this.getEm() / 2.0;\n\n case this.isString(/px$/):\n return this.getNumber();\n\n case this.isString(/pt$/):\n return this.getNumber() * this.getDpi() * (1.0 / 72.0);\n\n case this.isString(/pc$/):\n return this.getNumber() * 15;\n\n case this.isString(/cm$/):\n return this.getNumber() * this.getDpi() / 2.54;\n\n case this.isString(/mm$/):\n return this.getNumber() * this.getDpi() / 25.4;\n\n case this.isString(/in$/):\n return this.getNumber() * this.getDpi();\n\n case this.isString(/%$/) && isFontSize:\n return this.getNumber() * this.getEm();\n\n case this.isString(/%$/):\n return this.getNumber() * viewPort.computeSize(axis);\n\n default:\n {\n var n = this.getNumber();\n\n if (processPercent && n < 1.0) {\n return n * viewPort.computeSize(axis);\n }\n\n return n;\n }\n }\n }\n\n getMilliseconds() {\n if (!this.hasValue()) {\n return 0;\n }\n\n if (this.isString(/ms$/)) {\n return this.getNumber();\n }\n\n return this.getNumber() * 1000;\n }\n\n getRadians() {\n if (!this.hasValue()) {\n return 0;\n }\n\n switch (true) {\n case this.isString(/deg$/):\n return this.getNumber() * (Math.PI / 180.0);\n\n case this.isString(/grad$/):\n return this.getNumber() * (Math.PI / 200.0);\n\n case this.isString(/rad$/):\n return this.getNumber();\n\n default:\n return this.getNumber() * (Math.PI / 180.0);\n }\n }\n\n getDefinition() {\n var asString = this.getString();\n var name = /#([^)'\"]+)/.exec(asString);\n\n if (name) {\n name = name[1];\n }\n\n if (!name) {\n name = asString;\n }\n\n return this.document.definitions[name];\n }\n\n getFillStyleDefinition(element, opacity) {\n var def = this.getDefinition();\n\n if (!def) {\n return null;\n } // gradient\n\n\n if (typeof def.createGradient === 'function') {\n return def.createGradient(this.document.ctx, element, opacity);\n } // pattern\n\n\n if (typeof def.createPattern === 'function') {\n if (def.getHrefAttribute().hasValue()) {\n var patternTransform = def.getAttribute('patternTransform');\n def = def.getHrefAttribute().getDefinition();\n\n if (patternTransform.hasValue()) {\n def.getAttribute('patternTransform', true).setValue(patternTransform.value);\n }\n }\n\n return def.createPattern(this.document.ctx, element, opacity);\n }\n\n return null;\n }\n\n getTextBaseline() {\n if (!this.hasValue()) {\n return null;\n }\n\n return Property.textBaselineMapping[this.getString()];\n }\n\n addOpacity(opacity) {\n var value = this.getColor();\n var len = value.length;\n var commas = 0; // Simulate old RGBColor version, which can't parse rgba.\n\n for (var i = 0; i < len; i++) {\n if (value[i] === ',') {\n commas++;\n }\n\n if (commas === 3) {\n break;\n }\n }\n\n if (opacity.hasValue() && this.isString() && commas !== 3) {\n var color = new RGBColor(value);\n\n if (color.ok) {\n color.alpha = opacity.getNumber();\n value = color.toRGBA();\n }\n }\n\n return new Property(this.document, this.name, value);\n }\n\n}\nProperty.textBaselineMapping = {\n 'baseline': 'alphabetic',\n 'before-edge': 'top',\n 'text-before-edge': 'top',\n 'middle': 'middle',\n 'central': 'middle',\n 'after-edge': 'bottom',\n 'text-after-edge': 'bottom',\n 'ideographic': 'ideographic',\n 'alphabetic': 'alphabetic',\n 'hanging': 'hanging',\n 'mathematical': 'alphabetic'\n};\n\nclass ViewPort {\n constructor() {\n this.viewPorts = [];\n }\n\n clear() {\n this.viewPorts = [];\n }\n\n setCurrent(width, height) {\n this.viewPorts.push({\n width,\n height\n });\n }\n\n removeCurrent() {\n this.viewPorts.pop();\n }\n\n getCurrent() {\n var {\n viewPorts\n } = this;\n return viewPorts[viewPorts.length - 1];\n }\n\n get width() {\n return this.getCurrent().width;\n }\n\n get height() {\n return this.getCurrent().height;\n }\n\n computeSize(d) {\n if (typeof d === 'number') {\n return d;\n }\n\n if (d === 'x') {\n return this.width;\n }\n\n if (d === 'y') {\n return this.height;\n }\n\n return Math.sqrt(Math.pow(this.width, 2) + Math.pow(this.height, 2)) / Math.sqrt(2);\n }\n\n}\n\nclass Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n\n static parse(point) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var [x = defaultValue, y = defaultValue] = toNumbers(point);\n return new Point(x, y);\n }\n\n static parseScale(scale) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var [x = defaultValue, y = x] = toNumbers(scale);\n return new Point(x, y);\n }\n\n static parsePath(path) {\n var points = toNumbers(path);\n var len = points.length;\n var pathPoints = [];\n\n for (var i = 0; i < len; i += 2) {\n pathPoints.push(new Point(points[i], points[i + 1]));\n }\n\n return pathPoints;\n }\n\n angleTo(point) {\n return Math.atan2(point.y - this.y, point.x - this.x);\n }\n\n applyTransform(transform) {\n var {\n x,\n y\n } = this;\n var xp = x * transform[0] + y * transform[2] + transform[4];\n var yp = x * transform[1] + y * transform[3] + transform[5];\n this.x = xp;\n this.y = yp;\n }\n\n}\n\nclass Mouse {\n constructor(screen) {\n this.screen = screen;\n this.working = false;\n this.events = [];\n this.eventElements = []; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n this.onClick = this.onClick.bind(this); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n this.onMouseMove = this.onMouseMove.bind(this);\n }\n\n isWorking() {\n return this.working;\n }\n\n start() {\n if (this.working) {\n return;\n }\n\n var {\n screen,\n onClick,\n onMouseMove\n } = this;\n var canvas = screen.ctx.canvas;\n canvas.onclick = onClick;\n canvas.onmousemove = onMouseMove;\n this.working = true;\n }\n\n stop() {\n if (!this.working) {\n return;\n }\n\n var canvas = this.screen.ctx.canvas;\n this.working = false;\n canvas.onclick = null;\n canvas.onmousemove = null;\n }\n\n hasEvents() {\n return this.working && this.events.length > 0;\n }\n\n runEvents() {\n if (!this.working) {\n return;\n }\n\n var {\n screen: document,\n events,\n eventElements\n } = this;\n var {\n style\n } = document.ctx.canvas;\n\n if (style) {\n style.cursor = '';\n }\n\n events.forEach((_ref, i) => {\n var {\n run\n } = _ref;\n var element = eventElements[i];\n\n while (element) {\n run(element);\n element = element.parent;\n }\n }); // done running, clear\n\n this.events = [];\n this.eventElements = [];\n }\n\n checkPath(element, ctx) {\n if (!this.working || !ctx) {\n return;\n }\n\n var {\n events,\n eventElements\n } = this;\n events.forEach((_ref2, i) => {\n var {\n x,\n y\n } = _ref2;\n\n if (!eventElements[i] && ctx.isPointInPath && ctx.isPointInPath(x, y)) {\n eventElements[i] = element;\n }\n });\n }\n\n checkBoundingBox(element, boundingBox) {\n if (!this.working || !boundingBox) {\n return;\n }\n\n var {\n events,\n eventElements\n } = this;\n events.forEach((_ref3, i) => {\n var {\n x,\n y\n } = _ref3;\n\n if (!eventElements[i] && boundingBox.isPointInBox(x, y)) {\n eventElements[i] = element;\n }\n });\n }\n\n mapXY(x, y) {\n var {\n window,\n ctx\n } = this.screen;\n var point = new Point(x, y);\n var element = ctx.canvas;\n\n while (element) {\n point.x -= element.offsetLeft;\n point.y -= element.offsetTop;\n element = element.offsetParent;\n }\n\n if (window.scrollX) {\n point.x += window.scrollX;\n }\n\n if (window.scrollY) {\n point.y += window.scrollY;\n }\n\n return point;\n }\n\n onClick(event) {\n var {\n x,\n y\n } = this.mapXY(event.clientX, event.clientY);\n this.events.push({\n type: 'onclick',\n x,\n y,\n\n run(eventTarget) {\n if (eventTarget.onClick) {\n eventTarget.onClick();\n }\n }\n\n });\n }\n\n onMouseMove(event) {\n var {\n x,\n y\n } = this.mapXY(event.clientX, event.clientY);\n this.events.push({\n type: 'onmousemove',\n x,\n y,\n\n run(eventTarget) {\n if (eventTarget.onMouseMove) {\n eventTarget.onMouseMove();\n }\n }\n\n });\n }\n\n}\n\nvar defaultWindow = typeof window !== 'undefined' ? window : null;\nvar defaultFetch$1 = typeof fetch !== 'undefined' ? fetch.bind(undefined) // `fetch` depends on context: `someObject.fetch(...)` will throw error.\n: null;\nclass Screen {\n constructor(ctx) {\n var {\n fetch = defaultFetch$1,\n window = defaultWindow\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.ctx = ctx;\n this.FRAMERATE = 30;\n this.MAX_VIRTUAL_PIXELS = 30000;\n this.CLIENT_WIDTH = 800;\n this.CLIENT_HEIGHT = 600;\n this.viewPort = new ViewPort();\n this.mouse = new Mouse(this);\n this.animations = [];\n this.waits = [];\n this.frameDuration = 0;\n this.isReadyLock = false;\n this.isFirstRender = true;\n this.intervalId = null;\n this.window = window;\n this.fetch = fetch;\n }\n\n wait(checker) {\n this.waits.push(checker);\n }\n\n ready() {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!this.readyPromise) {\n return Promise.resolve();\n }\n\n return this.readyPromise;\n }\n\n isReady() {\n if (this.isReadyLock) {\n return true;\n }\n\n var isReadyLock = this.waits.every(_ => _());\n\n if (isReadyLock) {\n this.waits = [];\n\n if (this.resolveReady) {\n this.resolveReady();\n }\n }\n\n this.isReadyLock = isReadyLock;\n return isReadyLock;\n }\n\n setDefaults(ctx) {\n // initial values and defaults\n ctx.strokeStyle = 'rgba(0,0,0,0)';\n ctx.lineCap = 'butt';\n ctx.lineJoin = 'miter';\n ctx.miterLimit = 4;\n }\n\n setViewBox(_ref) {\n var {\n document,\n ctx,\n aspectRatio,\n width,\n desiredWidth,\n height,\n desiredHeight,\n minX = 0,\n minY = 0,\n refX,\n refY,\n clip = false,\n clipX = 0,\n clipY = 0\n } = _ref;\n // aspect ratio - http://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute\n var cleanAspectRatio = compressSpaces(aspectRatio).replace(/^defer\\s/, ''); // ignore defer\n\n var [aspectRatioAlign, aspectRatioMeetOrSlice] = cleanAspectRatio.split(' ');\n var align = aspectRatioAlign || 'xMidYMid';\n var meetOrSlice = aspectRatioMeetOrSlice || 'meet'; // calculate scale\n\n var scaleX = width / desiredWidth;\n var scaleY = height / desiredHeight;\n var scaleMin = Math.min(scaleX, scaleY);\n var scaleMax = Math.max(scaleX, scaleY);\n var finalDesiredWidth = desiredWidth;\n var finalDesiredHeight = desiredHeight;\n\n if (meetOrSlice === 'meet') {\n finalDesiredWidth *= scaleMin;\n finalDesiredHeight *= scaleMin;\n }\n\n if (meetOrSlice === 'slice') {\n finalDesiredWidth *= scaleMax;\n finalDesiredHeight *= scaleMax;\n }\n\n var refXProp = new Property(document, 'refX', refX);\n var refYProp = new Property(document, 'refY', refY);\n var hasRefs = refXProp.hasValue() && refYProp.hasValue();\n\n if (hasRefs) {\n ctx.translate(-scaleMin * refXProp.getPixels('x'), -scaleMin * refYProp.getPixels('y'));\n }\n\n if (clip) {\n var scaledClipX = scaleMin * clipX;\n var scaledClipY = scaleMin * clipY;\n ctx.beginPath();\n ctx.moveTo(scaledClipX, scaledClipY);\n ctx.lineTo(width, scaledClipY);\n ctx.lineTo(width, height);\n ctx.lineTo(scaledClipX, height);\n ctx.closePath();\n ctx.clip();\n }\n\n if (!hasRefs) {\n var isMeetMinY = meetOrSlice === 'meet' && scaleMin === scaleY;\n var isSliceMaxY = meetOrSlice === 'slice' && scaleMax === scaleY;\n var isMeetMinX = meetOrSlice === 'meet' && scaleMin === scaleX;\n var isSliceMaxX = meetOrSlice === 'slice' && scaleMax === scaleX;\n\n if (align.startsWith('xMid') && (isMeetMinY || isSliceMaxY)) {\n ctx.translate(width / 2.0 - finalDesiredWidth / 2.0, 0);\n }\n\n if (align.endsWith('YMid') && (isMeetMinX || isSliceMaxX)) {\n ctx.translate(0, height / 2.0 - finalDesiredHeight / 2.0);\n }\n\n if (align.startsWith('xMax') && (isMeetMinY || isSliceMaxY)) {\n ctx.translate(width - finalDesiredWidth, 0);\n }\n\n if (align.endsWith('YMax') && (isMeetMinX || isSliceMaxX)) {\n ctx.translate(0, height - finalDesiredHeight);\n }\n } // scale\n\n\n switch (true) {\n case align === 'none':\n ctx.scale(scaleX, scaleY);\n break;\n\n case meetOrSlice === 'meet':\n ctx.scale(scaleMin, scaleMin);\n break;\n\n case meetOrSlice === 'slice':\n ctx.scale(scaleMax, scaleMax);\n break;\n } // translate\n\n\n ctx.translate(-minX, -minY);\n }\n\n start(element) {\n var {\n enableRedraw = false,\n ignoreMouse = false,\n ignoreAnimation = false,\n ignoreDimensions = false,\n ignoreClear = false,\n forceRedraw,\n scaleWidth,\n scaleHeight,\n offsetX,\n offsetY\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n FRAMERATE,\n mouse\n } = this;\n var frameDuration = 1000 / FRAMERATE;\n this.frameDuration = frameDuration;\n this.readyPromise = new Promise(resolve => {\n this.resolveReady = resolve;\n });\n\n if (this.isReady()) {\n this.render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY);\n }\n\n if (!enableRedraw) {\n return;\n }\n\n var now = Date.now();\n var then = now;\n var delta = 0;\n\n var tick = () => {\n now = Date.now();\n delta = now - then;\n\n if (delta >= frameDuration) {\n then = now - delta % frameDuration;\n\n if (this.shouldUpdate(ignoreAnimation, forceRedraw)) {\n this.render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY);\n mouse.runEvents();\n }\n }\n\n this.intervalId = requestAnimationFrame(tick);\n };\n\n if (!ignoreMouse) {\n mouse.start();\n }\n\n this.intervalId = requestAnimationFrame(tick);\n }\n\n stop() {\n if (this.intervalId) {\n requestAnimationFrame.cancel(this.intervalId);\n this.intervalId = null;\n }\n\n this.mouse.stop();\n }\n\n shouldUpdate(ignoreAnimation, forceRedraw) {\n // need update from animations?\n if (!ignoreAnimation) {\n var {\n frameDuration\n } = this;\n var shouldUpdate = this.animations.reduce((shouldUpdate, animation) => animation.update(frameDuration) || shouldUpdate, false);\n\n if (shouldUpdate) {\n return true;\n }\n } // need update from redraw?\n\n\n if (typeof forceRedraw === 'function' && forceRedraw()) {\n return true;\n }\n\n if (!this.isReadyLock && this.isReady()) {\n return true;\n } // need update from mouse events?\n\n\n if (this.mouse.hasEvents()) {\n return true;\n }\n\n return false;\n }\n\n render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY) {\n var {\n CLIENT_WIDTH,\n CLIENT_HEIGHT,\n viewPort,\n ctx,\n isFirstRender\n } = this;\n var canvas = ctx.canvas;\n viewPort.clear();\n\n if (canvas.width && canvas.height) {\n viewPort.setCurrent(canvas.width, canvas.height);\n } else {\n viewPort.setCurrent(CLIENT_WIDTH, CLIENT_HEIGHT);\n }\n\n var widthStyle = element.getStyle('width');\n var heightStyle = element.getStyle('height');\n\n if (!ignoreDimensions && (isFirstRender || typeof scaleWidth !== 'number' && typeof scaleHeight !== 'number')) {\n // set canvas size\n if (widthStyle.hasValue()) {\n canvas.width = widthStyle.getPixels('x');\n\n if (canvas.style) {\n canvas.style.width = \"\".concat(canvas.width, \"px\");\n }\n }\n\n if (heightStyle.hasValue()) {\n canvas.height = heightStyle.getPixels('y');\n\n if (canvas.style) {\n canvas.style.height = \"\".concat(canvas.height, \"px\");\n }\n }\n }\n\n var cWidth = canvas.clientWidth || canvas.width;\n var cHeight = canvas.clientHeight || canvas.height;\n\n if (ignoreDimensions && widthStyle.hasValue() && heightStyle.hasValue()) {\n cWidth = widthStyle.getPixels('x');\n cHeight = heightStyle.getPixels('y');\n }\n\n viewPort.setCurrent(cWidth, cHeight);\n\n if (typeof offsetX === 'number') {\n element.getAttribute('x', true).setValue(offsetX);\n }\n\n if (typeof offsetY === 'number') {\n element.getAttribute('y', true).setValue(offsetY);\n }\n\n if (typeof scaleWidth === 'number' || typeof scaleHeight === 'number') {\n var viewBox = toNumbers(element.getAttribute('viewBox').getString());\n var xRatio = 0;\n var yRatio = 0;\n\n if (typeof scaleWidth === 'number') {\n var _widthStyle = element.getStyle('width');\n\n if (_widthStyle.hasValue()) {\n xRatio = _widthStyle.getPixels('x') / scaleWidth;\n } else if (!isNaN(viewBox[2])) {\n xRatio = viewBox[2] / scaleWidth;\n }\n }\n\n if (typeof scaleHeight === 'number') {\n var _heightStyle = element.getStyle('height');\n\n if (_heightStyle.hasValue()) {\n yRatio = _heightStyle.getPixels('y') / scaleHeight;\n } else if (!isNaN(viewBox[3])) {\n yRatio = viewBox[3] / scaleHeight;\n }\n }\n\n if (!xRatio) {\n xRatio = yRatio;\n }\n\n if (!yRatio) {\n yRatio = xRatio;\n }\n\n element.getAttribute('width', true).setValue(scaleWidth);\n element.getAttribute('height', true).setValue(scaleHeight);\n var transformStyle = element.getStyle('transform', true, true);\n transformStyle.setValue(\"\".concat(transformStyle.getString(), \" scale(\").concat(1.0 / xRatio, \", \").concat(1.0 / yRatio, \")\"));\n } // clear and render\n\n\n if (!ignoreClear) {\n ctx.clearRect(0, 0, cWidth, cHeight);\n }\n\n element.render(ctx);\n\n if (isFirstRender) {\n this.isFirstRender = false;\n }\n }\n\n}\nScreen.defaultWindow = defaultWindow;\nScreen.defaultFetch = defaultFetch$1;\n\nvar {\n defaultFetch\n} = Screen;\nvar DefaultDOMParser = typeof DOMParser !== 'undefined' ? DOMParser : null;\nclass Parser {\n constructor() {\n var {\n fetch = defaultFetch,\n DOMParser = DefaultDOMParser\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.fetch = fetch;\n this.DOMParser = DOMParser;\n }\n\n parse(resource) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n if (resource.startsWith('<')) {\n return _this.parseFromString(resource);\n }\n\n return _this.load(resource);\n })();\n }\n\n parseFromString(xml) {\n var parser = new this.DOMParser();\n\n try {\n return this.checkDocument(parser.parseFromString(xml, 'image/svg+xml'));\n } catch (err) {\n return this.checkDocument(parser.parseFromString(xml, 'text/xml'));\n }\n }\n\n checkDocument(document) {\n var parserError = document.getElementsByTagName('parsererror')[0];\n\n if (parserError) {\n throw new Error(parserError.textContent);\n }\n\n return document;\n }\n\n load(url) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var response = yield _this2.fetch(url);\n var xml = yield response.text();\n return _this2.parseFromString(xml);\n })();\n }\n\n}\n\nclass Translate {\n constructor(_, point) {\n this.type = 'translate';\n this.point = null;\n this.point = Point.parse(point);\n }\n\n apply(ctx) {\n var {\n x,\n y\n } = this.point;\n ctx.translate(x || 0.0, y || 0.0);\n }\n\n unapply(ctx) {\n var {\n x,\n y\n } = this.point;\n ctx.translate(-1.0 * x || 0.0, -1.0 * y || 0.0);\n }\n\n applyToPoint(point) {\n var {\n x,\n y\n } = this.point;\n point.applyTransform([1, 0, 0, 1, x || 0.0, y || 0.0]);\n }\n\n}\n\nclass Rotate {\n constructor(document, rotate, transformOrigin) {\n this.type = 'rotate';\n this.angle = null;\n this.originX = null;\n this.originY = null;\n this.cx = 0;\n this.cy = 0;\n var numbers = toNumbers(rotate);\n this.angle = new Property(document, 'angle', numbers[0]);\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n this.cx = numbers[1] || 0;\n this.cy = numbers[2] || 0;\n }\n\n apply(ctx) {\n var {\n cx,\n cy,\n originX,\n originY,\n angle\n } = this;\n var tx = cx + originX.getPixels('x');\n var ty = cy + originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.rotate(angle.getRadians());\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n cx,\n cy,\n originX,\n originY,\n angle\n } = this;\n var tx = cx + originX.getPixels('x');\n var ty = cy + originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.rotate(-1.0 * angle.getRadians());\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n var {\n cx,\n cy,\n angle\n } = this;\n var rad = angle.getRadians();\n point.applyTransform([1, 0, 0, 1, cx || 0.0, cy || 0.0 // this.p.y\n ]);\n point.applyTransform([Math.cos(rad), Math.sin(rad), -Math.sin(rad), Math.cos(rad), 0, 0]);\n point.applyTransform([1, 0, 0, 1, -cx || 0.0, -cy || 0.0 // -this.p.y\n ]);\n }\n\n}\n\nclass Scale {\n constructor(_, scale, transformOrigin) {\n this.type = 'scale';\n this.scale = null;\n this.originX = null;\n this.originY = null;\n var scaleSize = Point.parseScale(scale); // Workaround for node-canvas\n\n if (scaleSize.x === 0 || scaleSize.y === 0) {\n scaleSize.x = PSEUDO_ZERO;\n scaleSize.y = PSEUDO_ZERO;\n }\n\n this.scale = scaleSize;\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n }\n\n apply(ctx) {\n var {\n scale: {\n x,\n y\n },\n originX,\n originY\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.scale(x, y || x);\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n scale: {\n x,\n y\n },\n originX,\n originY\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.scale(1.0 / x, 1.0 / y || x);\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n var {\n x,\n y\n } = this.scale;\n point.applyTransform([x || 0.0, 0, 0, y || 0.0, 0, 0]);\n }\n\n}\n\nclass Matrix {\n constructor(_, matrix, transformOrigin) {\n this.type = 'matrix';\n this.matrix = [];\n this.originX = null;\n this.originY = null;\n this.matrix = toNumbers(matrix);\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n }\n\n apply(ctx) {\n var {\n originX,\n originY,\n matrix\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n originX,\n originY,\n matrix\n } = this;\n var a = matrix[0];\n var b = matrix[2];\n var c = matrix[4];\n var d = matrix[1];\n var e = matrix[3];\n var f = matrix[5];\n var g = 0.0;\n var h = 0.0;\n var i = 1.0;\n var det = 1 / (a * (e * i - f * h) - b * (d * i - f * g) + c * (d * h - e * g));\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.transform(det * (e * i - f * h), det * (f * g - d * i), det * (c * h - b * i), det * (a * i - c * g), det * (b * f - c * e), det * (c * d - a * f));\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n point.applyTransform(this.matrix);\n }\n\n}\n\nclass Skew extends Matrix {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skew';\n this.angle = null;\n this.angle = new Property(document, 'angle', skew);\n }\n\n}\n\nclass SkewX extends Skew {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skewX';\n this.matrix = [1, 0, Math.tan(this.angle.getRadians()), 1, 0, 0];\n }\n\n}\n\nclass SkewY extends Skew {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skewY';\n this.matrix = [1, Math.tan(this.angle.getRadians()), 0, 1, 0, 0];\n }\n\n}\n\nfunction parseTransforms(transform) {\n return compressSpaces(transform).trim().replace(/\\)([a-zA-Z])/g, ') $1').replace(/\\)(\\s?,\\s?)/g, ') ').split(/\\s(?=[a-z])/);\n}\n\nfunction parseTransform(transform) {\n var [type, value] = transform.split('(');\n return [type.trim(), value.trim().replace(')', '')];\n}\n\nclass Transform {\n constructor(document, transform, transformOrigin) {\n this.document = document;\n this.transforms = [];\n var data = parseTransforms(transform);\n data.forEach(transform => {\n if (transform === 'none') {\n return;\n }\n\n var [type, value] = parseTransform(transform);\n var TransformType = Transform.transformTypes[type];\n\n if (typeof TransformType !== 'undefined') {\n this.transforms.push(new TransformType(this.document, value, transformOrigin));\n }\n });\n }\n\n static fromElement(document, element) {\n var transformStyle = element.getStyle('transform', false, true);\n var [transformOriginXProperty, transformOriginYProperty = transformOriginXProperty] = element.getStyle('transform-origin', false, true).split();\n var transformOrigin = [transformOriginXProperty, transformOriginYProperty];\n\n if (transformStyle.hasValue()) {\n return new Transform(document, transformStyle.getString(), transformOrigin);\n }\n\n return null;\n }\n\n apply(ctx) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = 0; i < len; i++) {\n transforms[i].apply(ctx);\n }\n }\n\n unapply(ctx) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = len - 1; i >= 0; i--) {\n transforms[i].unapply(ctx);\n }\n } // TODO: applyToPoint unused ... remove?\n\n\n applyToPoint(point) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = 0; i < len; i++) {\n transforms[i].applyToPoint(point);\n }\n }\n\n}\nTransform.transformTypes = {\n translate: Translate,\n rotate: Rotate,\n scale: Scale,\n matrix: Matrix,\n skewX: SkewX,\n skewY: SkewY\n};\n\nclass Element {\n constructor(document, node) {\n var captureTextNodes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n this.document = document;\n this.node = node;\n this.captureTextNodes = captureTextNodes;\n this.attributes = Object.create(null);\n this.styles = Object.create(null);\n this.stylesSpecificity = Object.create(null);\n this.animationFrozen = false;\n this.animationFrozenValue = '';\n this.parent = null;\n this.children = [];\n\n if (!node || node.nodeType !== 1) {\n // ELEMENT_NODE\n return;\n } // add attributes\n\n\n Array.from(node.attributes).forEach(attribute => {\n var nodeName = normalizeAttributeName(attribute.nodeName);\n this.attributes[nodeName] = new Property(document, nodeName, attribute.value);\n });\n this.addStylesFromStyleDefinition(); // add inline styles\n\n if (this.getAttribute('style').hasValue()) {\n var styles = this.getAttribute('style').getString().split(';').map(_ => _.trim());\n styles.forEach(style => {\n if (!style) {\n return;\n }\n\n var [name, value] = style.split(':').map(_ => _.trim());\n this.styles[name] = new Property(document, name, value);\n });\n }\n\n var {\n definitions\n } = document;\n var id = this.getAttribute('id'); // add id\n\n if (id.hasValue()) {\n if (!definitions[id.getString()]) {\n definitions[id.getString()] = this;\n }\n }\n\n Array.from(node.childNodes).forEach(childNode => {\n if (childNode.nodeType === 1) {\n this.addChild(childNode); // ELEMENT_NODE\n } else if (captureTextNodes && (childNode.nodeType === 3 || childNode.nodeType === 4)) {\n var textNode = document.createTextNode(childNode);\n\n if (textNode.getText().length > 0) {\n this.addChild(textNode); // TEXT_NODE\n }\n }\n });\n }\n\n getAttribute(name) {\n var createIfNotExists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var attr = this.attributes[name];\n\n if (!attr && createIfNotExists) {\n var _attr = new Property(this.document, name, '');\n\n this.attributes[name] = _attr;\n return _attr;\n }\n\n return attr || Property.empty(this.document);\n }\n\n getHrefAttribute() {\n for (var key in this.attributes) {\n if (key === 'href' || key.endsWith(':href')) {\n return this.attributes[key];\n }\n }\n\n return Property.empty(this.document);\n }\n\n getStyle(name) {\n var createIfNotExists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var skipAncestors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var style = this.styles[name];\n\n if (style) {\n return style;\n }\n\n var attr = this.getAttribute(name);\n\n if (attr !== null && attr !== void 0 && attr.hasValue()) {\n this.styles[name] = attr; // move up to me to cache\n\n return attr;\n }\n\n if (!skipAncestors) {\n var {\n parent\n } = this;\n\n if (parent) {\n var parentStyle = parent.getStyle(name);\n\n if (parentStyle !== null && parentStyle !== void 0 && parentStyle.hasValue()) {\n return parentStyle;\n }\n }\n }\n\n if (createIfNotExists) {\n var _style = new Property(this.document, name, '');\n\n this.styles[name] = _style;\n return _style;\n }\n\n return style || Property.empty(this.document);\n }\n\n render(ctx) {\n // don't render display=none\n // don't render visibility=hidden\n if (this.getStyle('display').getString() === 'none' || this.getStyle('visibility').getString() === 'hidden') {\n return;\n }\n\n ctx.save();\n\n if (this.getStyle('mask').hasValue()) {\n // mask\n var mask = this.getStyle('mask').getDefinition();\n\n if (mask) {\n this.applyEffects(ctx);\n mask.apply(ctx, this);\n }\n } else if (this.getStyle('filter').getValue('none') !== 'none') {\n // filter\n var filter = this.getStyle('filter').getDefinition();\n\n if (filter) {\n this.applyEffects(ctx);\n filter.apply(ctx, this);\n }\n } else {\n this.setContext(ctx);\n this.renderChildren(ctx);\n this.clearContext(ctx);\n }\n\n ctx.restore();\n }\n\n setContext(_) {// NO RENDER\n }\n\n applyEffects(ctx) {\n // transform\n var transform = Transform.fromElement(this.document, this);\n\n if (transform) {\n transform.apply(ctx);\n } // clip\n\n\n var clipPathStyleProp = this.getStyle('clip-path', false, true);\n\n if (clipPathStyleProp.hasValue()) {\n var clip = clipPathStyleProp.getDefinition();\n\n if (clip) {\n clip.apply(ctx);\n }\n }\n }\n\n clearContext(_) {// NO RENDER\n }\n\n renderChildren(ctx) {\n this.children.forEach(child => {\n child.render(ctx);\n });\n }\n\n addChild(childNode) {\n var child = childNode instanceof Element ? childNode : this.document.createElement(childNode);\n child.parent = this;\n\n if (!Element.ignoreChildTypes.includes(child.type)) {\n this.children.push(child);\n }\n }\n\n matchesSelector(selector) {\n var _node$getAttribute;\n\n var {\n node\n } = this;\n\n if (typeof node.matches === 'function') {\n return node.matches(selector);\n }\n\n var styleClasses = (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'class');\n\n if (!styleClasses || styleClasses === '') {\n return false;\n }\n\n return styleClasses.split(' ').some(styleClass => \".\".concat(styleClass) === selector);\n }\n\n addStylesFromStyleDefinition() {\n var {\n styles,\n stylesSpecificity\n } = this.document;\n\n for (var selector in styles) {\n if (!selector.startsWith('@') && this.matchesSelector(selector)) {\n var style = styles[selector];\n var specificity = stylesSpecificity[selector];\n\n if (style) {\n for (var name in style) {\n var existingSpecificity = this.stylesSpecificity[name];\n\n if (typeof existingSpecificity === 'undefined') {\n existingSpecificity = '000';\n }\n\n if (specificity >= existingSpecificity) {\n this.styles[name] = style[name];\n this.stylesSpecificity[name] = specificity;\n }\n }\n }\n }\n }\n }\n\n removeStyles(element, ignoreStyles) {\n var toRestore = ignoreStyles.reduce((toRestore, name) => {\n var styleProp = element.getStyle(name);\n\n if (!styleProp.hasValue()) {\n return toRestore;\n }\n\n var value = styleProp.getString();\n styleProp.setValue('');\n return [...toRestore, [name, value]];\n }, []);\n return toRestore;\n }\n\n restoreStyles(element, styles) {\n styles.forEach(_ref => {\n var [name, value] = _ref;\n element.getStyle(name, true).setValue(value);\n });\n }\n\n isFirstChild() {\n var _this$parent;\n\n return ((_this$parent = this.parent) === null || _this$parent === void 0 ? void 0 : _this$parent.children.indexOf(this)) === 0;\n }\n\n}\nElement.ignoreChildTypes = ['title'];\n\nclass UnknownElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n }\n\n}\n\nfunction wrapFontFamily(fontFamily) {\n var trimmed = fontFamily.trim();\n return /^('|\")/.test(trimmed) ? trimmed : \"\\\"\".concat(trimmed, \"\\\"\");\n}\n\nfunction prepareFontFamily(fontFamily) {\n return typeof process === 'undefined' ? fontFamily : fontFamily.trim().split(',').map(wrapFontFamily).join(',');\n}\n/**\r\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-style\r\n * @param fontStyle\r\n * @returns CSS font style.\r\n */\n\n\nfunction prepareFontStyle(fontStyle) {\n if (!fontStyle) {\n return '';\n }\n\n var targetFontStyle = fontStyle.trim().toLowerCase();\n\n switch (targetFontStyle) {\n case 'normal':\n case 'italic':\n case 'oblique':\n case 'inherit':\n case 'initial':\n case 'unset':\n return targetFontStyle;\n\n default:\n if (/^oblique\\s+(-|)\\d+deg$/.test(targetFontStyle)) {\n return targetFontStyle;\n }\n\n return '';\n }\n}\n/**\r\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight\r\n * @param fontWeight\r\n * @returns CSS font weight.\r\n */\n\n\nfunction prepareFontWeight(fontWeight) {\n if (!fontWeight) {\n return '';\n }\n\n var targetFontWeight = fontWeight.trim().toLowerCase();\n\n switch (targetFontWeight) {\n case 'normal':\n case 'bold':\n case 'lighter':\n case 'bolder':\n case 'inherit':\n case 'initial':\n case 'unset':\n return targetFontWeight;\n\n default:\n if (/^[\\d.]+$/.test(targetFontWeight)) {\n return targetFontWeight;\n }\n\n return '';\n }\n}\n\nclass Font {\n constructor(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit) {\n var inheritFont = inherit ? typeof inherit === 'string' ? Font.parse(inherit) : inherit : {};\n this.fontFamily = fontFamily || inheritFont.fontFamily;\n this.fontSize = fontSize || inheritFont.fontSize;\n this.fontStyle = fontStyle || inheritFont.fontStyle;\n this.fontWeight = fontWeight || inheritFont.fontWeight;\n this.fontVariant = fontVariant || inheritFont.fontVariant;\n }\n\n static parse() {\n var font = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var inherit = arguments.length > 1 ? arguments[1] : undefined;\n var fontStyle = '';\n var fontVariant = '';\n var fontWeight = '';\n var fontSize = '';\n var fontFamily = '';\n var parts = compressSpaces(font).trim().split(' ');\n var set = {\n fontSize: false,\n fontStyle: false,\n fontWeight: false,\n fontVariant: false\n };\n parts.forEach(part => {\n switch (true) {\n case !set.fontStyle && Font.styles.includes(part):\n if (part !== 'inherit') {\n fontStyle = part;\n }\n\n set.fontStyle = true;\n break;\n\n case !set.fontVariant && Font.variants.includes(part):\n if (part !== 'inherit') {\n fontVariant = part;\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n break;\n\n case !set.fontWeight && Font.weights.includes(part):\n if (part !== 'inherit') {\n fontWeight = part;\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n set.fontWeight = true;\n break;\n\n case !set.fontSize:\n if (part !== 'inherit') {\n [fontSize] = part.split('/');\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n set.fontWeight = true;\n set.fontSize = true;\n break;\n\n default:\n if (part !== 'inherit') {\n fontFamily += part;\n }\n\n }\n });\n return new Font(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit);\n }\n\n toString() {\n return [prepareFontStyle(this.fontStyle), this.fontVariant, prepareFontWeight(this.fontWeight), this.fontSize, // Wrap fontFamily only on nodejs and only for canvas.ctx\n prepareFontFamily(this.fontFamily)].join(' ').trim();\n }\n\n}\nFont.styles = 'normal|italic|oblique|inherit';\nFont.variants = 'normal|small-caps|inherit';\nFont.weights = 'normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit';\n\nclass BoundingBox {\n constructor() {\n var x1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Number.NaN;\n var y1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.NaN;\n var x2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Number.NaN;\n var y2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Number.NaN;\n this.x1 = x1;\n this.y1 = y1;\n this.x2 = x2;\n this.y2 = y2;\n this.addPoint(x1, y1);\n this.addPoint(x2, y2);\n }\n\n get x() {\n return this.x1;\n }\n\n get y() {\n return this.y1;\n }\n\n get width() {\n return this.x2 - this.x1;\n }\n\n get height() {\n return this.y2 - this.y1;\n }\n\n addPoint(x, y) {\n if (typeof x !== 'undefined') {\n if (isNaN(this.x1) || isNaN(this.x2)) {\n this.x1 = x;\n this.x2 = x;\n }\n\n if (x < this.x1) {\n this.x1 = x;\n }\n\n if (x > this.x2) {\n this.x2 = x;\n }\n }\n\n if (typeof y !== 'undefined') {\n if (isNaN(this.y1) || isNaN(this.y2)) {\n this.y1 = y;\n this.y2 = y;\n }\n\n if (y < this.y1) {\n this.y1 = y;\n }\n\n if (y > this.y2) {\n this.y2 = y;\n }\n }\n }\n\n addX(x) {\n this.addPoint(x, null);\n }\n\n addY(y) {\n this.addPoint(null, y);\n }\n\n addBoundingBox(boundingBox) {\n if (!boundingBox) {\n return;\n }\n\n var {\n x1,\n y1,\n x2,\n y2\n } = boundingBox;\n this.addPoint(x1, y1);\n this.addPoint(x2, y2);\n }\n\n sumCubic(t, p0, p1, p2, p3) {\n return Math.pow(1 - t, 3) * p0 + 3 * Math.pow(1 - t, 2) * t * p1 + 3 * (1 - t) * Math.pow(t, 2) * p2 + Math.pow(t, 3) * p3;\n }\n\n bezierCurveAdd(forX, p0, p1, p2, p3) {\n var b = 6 * p0 - 12 * p1 + 6 * p2;\n var a = -3 * p0 + 9 * p1 - 9 * p2 + 3 * p3;\n var c = 3 * p1 - 3 * p0;\n\n if (a === 0) {\n if (b === 0) {\n return;\n }\n\n var t = -c / b;\n\n if (0 < t && t < 1) {\n if (forX) {\n this.addX(this.sumCubic(t, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t, p0, p1, p2, p3));\n }\n }\n\n return;\n }\n\n var b2ac = Math.pow(b, 2) - 4 * c * a;\n\n if (b2ac < 0) {\n return;\n }\n\n var t1 = (-b + Math.sqrt(b2ac)) / (2 * a);\n\n if (0 < t1 && t1 < 1) {\n if (forX) {\n this.addX(this.sumCubic(t1, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t1, p0, p1, p2, p3));\n }\n }\n\n var t2 = (-b - Math.sqrt(b2ac)) / (2 * a);\n\n if (0 < t2 && t2 < 1) {\n if (forX) {\n this.addX(this.sumCubic(t2, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t2, p0, p1, p2, p3));\n }\n }\n } // from http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html\n\n\n addBezierCurve(p0x, p0y, p1x, p1y, p2x, p2y, p3x, p3y) {\n this.addPoint(p0x, p0y);\n this.addPoint(p3x, p3y);\n this.bezierCurveAdd(true, p0x, p1x, p2x, p3x);\n this.bezierCurveAdd(false, p0y, p1y, p2y, p3y);\n }\n\n addQuadraticCurve(p0x, p0y, p1x, p1y, p2x, p2y) {\n var cp1x = p0x + 2 / 3 * (p1x - p0x); // CP1 = QP0 + 2/3 *(QP1-QP0)\n\n var cp1y = p0y + 2 / 3 * (p1y - p0y); // CP1 = QP0 + 2/3 *(QP1-QP0)\n\n var cp2x = cp1x + 1 / 3 * (p2x - p0x); // CP2 = CP1 + 1/3 *(QP2-QP0)\n\n var cp2y = cp1y + 1 / 3 * (p2y - p0y); // CP2 = CP1 + 1/3 *(QP2-QP0)\n\n this.addBezierCurve(p0x, p0y, cp1x, cp2x, cp1y, cp2y, p2x, p2y);\n }\n\n isPointInBox(x, y) {\n var {\n x1,\n y1,\n x2,\n y2\n } = this;\n return x1 <= x && x <= x2 && y1 <= y && y <= y2;\n }\n\n}\n\nclass PathParser extends SVGPathData {\n constructor(path) {\n super(path // Fix spaces after signs.\n .replace(/([+\\-.])\\s+/gm, '$1') // Remove invalid part.\n .replace(/[^MmZzLlHhVvCcSsQqTtAae\\d\\s.,+-].*/g, ''));\n this.control = null;\n this.start = null;\n this.current = null;\n this.command = null;\n this.commands = this.commands;\n this.i = -1;\n this.previousCommand = null;\n this.points = [];\n this.angles = [];\n }\n\n reset() {\n this.i = -1;\n this.command = null;\n this.previousCommand = null;\n this.start = new Point(0, 0);\n this.control = new Point(0, 0);\n this.current = new Point(0, 0);\n this.points = [];\n this.angles = [];\n }\n\n isEnd() {\n var {\n i,\n commands\n } = this;\n return i >= commands.length - 1;\n }\n\n next() {\n var command = this.commands[++this.i];\n this.previousCommand = this.command;\n this.command = command;\n return command;\n }\n\n getPoint() {\n var xProp = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'x';\n var yProp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'y';\n var point = new Point(this.command[xProp], this.command[yProp]);\n return this.makeAbsolute(point);\n }\n\n getAsControlPoint(xProp, yProp) {\n var point = this.getPoint(xProp, yProp);\n this.control = point;\n return point;\n }\n\n getAsCurrentPoint(xProp, yProp) {\n var point = this.getPoint(xProp, yProp);\n this.current = point;\n return point;\n }\n\n getReflectedControlPoint() {\n var previousCommand = this.previousCommand.type;\n\n if (previousCommand !== SVGPathData.CURVE_TO && previousCommand !== SVGPathData.SMOOTH_CURVE_TO && previousCommand !== SVGPathData.QUAD_TO && previousCommand !== SVGPathData.SMOOTH_QUAD_TO) {\n return this.current;\n } // reflect point\n\n\n var {\n current: {\n x: cx,\n y: cy\n },\n control: {\n x: ox,\n y: oy\n }\n } = this;\n var point = new Point(2 * cx - ox, 2 * cy - oy);\n return point;\n }\n\n makeAbsolute(point) {\n if (this.command.relative) {\n var {\n x,\n y\n } = this.current;\n point.x += x;\n point.y += y;\n }\n\n return point;\n }\n\n addMarker(point, from, priorTo) {\n var {\n points,\n angles\n } = this; // if the last angle isn't filled in because we didn't have this point yet ...\n\n if (priorTo && angles.length > 0 && !angles[angles.length - 1]) {\n angles[angles.length - 1] = points[points.length - 1].angleTo(priorTo);\n }\n\n this.addMarkerAngle(point, from ? from.angleTo(point) : null);\n }\n\n addMarkerAngle(point, angle) {\n this.points.push(point);\n this.angles.push(angle);\n }\n\n getMarkerPoints() {\n return this.points;\n }\n\n getMarkerAngles() {\n var {\n angles\n } = this;\n var len = angles.length;\n\n for (var i = 0; i < len; i++) {\n if (!angles[i]) {\n for (var j = i + 1; j < len; j++) {\n if (angles[j]) {\n angles[i] = angles[j];\n break;\n }\n }\n }\n }\n\n return angles;\n }\n\n}\n\nclass RenderedElement extends Element {\n constructor() {\n super(...arguments);\n this.modifiedEmSizeStack = false;\n }\n\n calculateOpacity() {\n var opacity = 1.0; // eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this\n\n var element = this;\n\n while (element) {\n var opacityStyle = element.getStyle('opacity', false, true); // no ancestors on style call\n\n if (opacityStyle.hasValue(true)) {\n opacity *= opacityStyle.getNumber();\n }\n\n element = element.parent;\n }\n\n return opacity;\n }\n\n setContext(ctx) {\n var fromMeasure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!fromMeasure) {\n // causes stack overflow when measuring text with gradients\n // fill\n var fillStyleProp = this.getStyle('fill');\n var fillOpacityStyleProp = this.getStyle('fill-opacity');\n var strokeStyleProp = this.getStyle('stroke');\n var strokeOpacityProp = this.getStyle('stroke-opacity');\n\n if (fillStyleProp.isUrlDefinition()) {\n var fillStyle = fillStyleProp.getFillStyleDefinition(this, fillOpacityStyleProp);\n\n if (fillStyle) {\n ctx.fillStyle = fillStyle;\n }\n } else if (fillStyleProp.hasValue()) {\n if (fillStyleProp.getString() === 'currentColor') {\n fillStyleProp.setValue(this.getStyle('color').getColor());\n }\n\n var _fillStyle = fillStyleProp.getColor();\n\n if (_fillStyle !== 'inherit') {\n ctx.fillStyle = _fillStyle === 'none' ? 'rgba(0,0,0,0)' : _fillStyle;\n }\n }\n\n if (fillOpacityStyleProp.hasValue()) {\n var _fillStyle2 = new Property(this.document, 'fill', ctx.fillStyle).addOpacity(fillOpacityStyleProp).getColor();\n\n ctx.fillStyle = _fillStyle2;\n } // stroke\n\n\n if (strokeStyleProp.isUrlDefinition()) {\n var strokeStyle = strokeStyleProp.getFillStyleDefinition(this, strokeOpacityProp);\n\n if (strokeStyle) {\n ctx.strokeStyle = strokeStyle;\n }\n } else if (strokeStyleProp.hasValue()) {\n if (strokeStyleProp.getString() === 'currentColor') {\n strokeStyleProp.setValue(this.getStyle('color').getColor());\n }\n\n var _strokeStyle = strokeStyleProp.getString();\n\n if (_strokeStyle !== 'inherit') {\n ctx.strokeStyle = _strokeStyle === 'none' ? 'rgba(0,0,0,0)' : _strokeStyle;\n }\n }\n\n if (strokeOpacityProp.hasValue()) {\n var _strokeStyle2 = new Property(this.document, 'stroke', ctx.strokeStyle).addOpacity(strokeOpacityProp).getString();\n\n ctx.strokeStyle = _strokeStyle2;\n }\n\n var strokeWidthStyleProp = this.getStyle('stroke-width');\n\n if (strokeWidthStyleProp.hasValue()) {\n var newLineWidth = strokeWidthStyleProp.getPixels();\n ctx.lineWidth = !newLineWidth ? PSEUDO_ZERO // browsers don't respect 0 (or node-canvas? :-)\n : newLineWidth;\n }\n\n var strokeLinecapStyleProp = this.getStyle('stroke-linecap');\n var strokeLinejoinStyleProp = this.getStyle('stroke-linejoin');\n var strokeMiterlimitProp = this.getStyle('stroke-miterlimit'); // NEED TEST\n // const pointOrderStyleProp = this.getStyle('paint-order');\n\n var strokeDasharrayStyleProp = this.getStyle('stroke-dasharray');\n var strokeDashoffsetProp = this.getStyle('stroke-dashoffset');\n\n if (strokeLinecapStyleProp.hasValue()) {\n ctx.lineCap = strokeLinecapStyleProp.getString();\n }\n\n if (strokeLinejoinStyleProp.hasValue()) {\n ctx.lineJoin = strokeLinejoinStyleProp.getString();\n }\n\n if (strokeMiterlimitProp.hasValue()) {\n ctx.miterLimit = strokeMiterlimitProp.getNumber();\n } // NEED TEST\n // if (pointOrderStyleProp.hasValue()) {\n // \t// ?\n // \tctx.paintOrder = pointOrderStyleProp.getValue();\n // }\n\n\n if (strokeDasharrayStyleProp.hasValue() && strokeDasharrayStyleProp.getString() !== 'none') {\n var gaps = toNumbers(strokeDasharrayStyleProp.getString());\n\n if (typeof ctx.setLineDash !== 'undefined') {\n ctx.setLineDash(gaps);\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.webkitLineDash !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.webkitLineDash = gaps;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.mozDash !== 'undefined' && !(gaps.length === 1 && gaps[0] === 0)) {\n // @ts-expect-error Handle browser prefix.\n ctx.mozDash = gaps;\n }\n\n var offset = strokeDashoffsetProp.getPixels();\n\n if (typeof ctx.lineDashOffset !== 'undefined') {\n ctx.lineDashOffset = offset;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.webkitLineDashOffset !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.webkitLineDashOffset = offset;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.mozDashOffset !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.mozDashOffset = offset;\n }\n }\n } // font\n\n\n this.modifiedEmSizeStack = false;\n\n if (typeof ctx.font !== 'undefined') {\n var fontStyleProp = this.getStyle('font');\n var fontStyleStyleProp = this.getStyle('font-style');\n var fontVariantStyleProp = this.getStyle('font-variant');\n var fontWeightStyleProp = this.getStyle('font-weight');\n var fontSizeStyleProp = this.getStyle('font-size');\n var fontFamilyStyleProp = this.getStyle('font-family');\n var font = new Font(fontStyleStyleProp.getString(), fontVariantStyleProp.getString(), fontWeightStyleProp.getString(), fontSizeStyleProp.hasValue() ? \"\".concat(fontSizeStyleProp.getPixels(true), \"px\") : '', fontFamilyStyleProp.getString(), Font.parse(fontStyleProp.getString(), ctx.font));\n fontStyleStyleProp.setValue(font.fontStyle);\n fontVariantStyleProp.setValue(font.fontVariant);\n fontWeightStyleProp.setValue(font.fontWeight);\n fontSizeStyleProp.setValue(font.fontSize);\n fontFamilyStyleProp.setValue(font.fontFamily);\n ctx.font = font.toString();\n\n if (fontSizeStyleProp.isPixels()) {\n this.document.emSize = fontSizeStyleProp.getPixels();\n this.modifiedEmSizeStack = true;\n }\n }\n\n if (!fromMeasure) {\n // effects\n this.applyEffects(ctx); // opacity\n\n ctx.globalAlpha = this.calculateOpacity();\n }\n }\n\n clearContext(ctx) {\n super.clearContext(ctx);\n\n if (this.modifiedEmSizeStack) {\n this.document.popEmSize();\n }\n }\n\n}\n\nclass PathElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'path';\n this.pathParser = null;\n this.pathParser = new PathParser(this.getAttribute('d').getString());\n }\n\n path(ctx) {\n var {\n pathParser\n } = this;\n var boundingBox = new BoundingBox();\n pathParser.reset();\n\n if (ctx) {\n ctx.beginPath();\n }\n\n while (!pathParser.isEnd()) {\n switch (pathParser.next().type) {\n case PathParser.MOVE_TO:\n this.pathM(ctx, boundingBox);\n break;\n\n case PathParser.LINE_TO:\n this.pathL(ctx, boundingBox);\n break;\n\n case PathParser.HORIZ_LINE_TO:\n this.pathH(ctx, boundingBox);\n break;\n\n case PathParser.VERT_LINE_TO:\n this.pathV(ctx, boundingBox);\n break;\n\n case PathParser.CURVE_TO:\n this.pathC(ctx, boundingBox);\n break;\n\n case PathParser.SMOOTH_CURVE_TO:\n this.pathS(ctx, boundingBox);\n break;\n\n case PathParser.QUAD_TO:\n this.pathQ(ctx, boundingBox);\n break;\n\n case PathParser.SMOOTH_QUAD_TO:\n this.pathT(ctx, boundingBox);\n break;\n\n case PathParser.ARC:\n this.pathA(ctx, boundingBox);\n break;\n\n case PathParser.CLOSE_PATH:\n this.pathZ(ctx, boundingBox);\n break;\n }\n }\n\n return boundingBox;\n }\n\n getBoundingBox(_) {\n return this.path();\n }\n\n getMarkers() {\n var {\n pathParser\n } = this;\n var points = pathParser.getMarkerPoints();\n var angles = pathParser.getMarkerAngles();\n var markers = points.map((point, i) => [point, angles[i]]);\n return markers;\n }\n\n renderChildren(ctx) {\n this.path(ctx);\n this.document.screen.mouse.checkPath(this, ctx);\n var fillRuleStyleProp = this.getStyle('fill-rule');\n\n if (ctx.fillStyle !== '') {\n if (fillRuleStyleProp.getString('inherit') !== 'inherit') {\n ctx.fill(fillRuleStyleProp.getString());\n } else {\n ctx.fill();\n }\n }\n\n if (ctx.strokeStyle !== '') {\n if (this.getAttribute('vector-effect').getString() === 'non-scaling-stroke') {\n ctx.save();\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.stroke();\n ctx.restore();\n } else {\n ctx.stroke();\n }\n }\n\n var markers = this.getMarkers();\n\n if (markers) {\n var markersLastIndex = markers.length - 1;\n var markerStartStyleProp = this.getStyle('marker-start');\n var markerMidStyleProp = this.getStyle('marker-mid');\n var markerEndStyleProp = this.getStyle('marker-end');\n\n if (markerStartStyleProp.isUrlDefinition()) {\n var marker = markerStartStyleProp.getDefinition();\n var [point, angle] = markers[0];\n marker.render(ctx, point, angle);\n }\n\n if (markerMidStyleProp.isUrlDefinition()) {\n var _marker = markerMidStyleProp.getDefinition();\n\n for (var i = 1; i < markersLastIndex; i++) {\n var [_point, _angle] = markers[i];\n\n _marker.render(ctx, _point, _angle);\n }\n }\n\n if (markerEndStyleProp.isUrlDefinition()) {\n var _marker2 = markerEndStyleProp.getDefinition();\n\n var [_point2, _angle2] = markers[markersLastIndex];\n\n _marker2.render(ctx, _point2, _angle2);\n }\n }\n }\n\n static pathM(pathParser) {\n var point = pathParser.getAsCurrentPoint();\n pathParser.start = pathParser.current;\n return {\n point\n };\n }\n\n pathM(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n point\n } = PathElement.pathM(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.moveTo(x, y);\n }\n }\n\n static pathL(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getAsCurrentPoint();\n return {\n current,\n point\n };\n }\n\n pathL(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathL(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathH(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var point = new Point((command.relative ? current.x : 0) + command.x, current.y);\n pathParser.current = point;\n return {\n current,\n point\n };\n }\n\n pathH(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathH(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathV(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var point = new Point(current.x, (command.relative ? current.y : 0) + command.y);\n pathParser.current = point;\n return {\n current,\n point\n };\n }\n\n pathV(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathV(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathC(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getPoint('x1', 'y1');\n var controlPoint = pathParser.getAsControlPoint('x2', 'y2');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n point,\n controlPoint,\n currentPoint\n };\n }\n\n pathC(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathC(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, point);\n boundingBox.addBezierCurve(current.x, current.y, point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.bezierCurveTo(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathS(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getReflectedControlPoint();\n var controlPoint = pathParser.getAsControlPoint('x2', 'y2');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n point,\n controlPoint,\n currentPoint\n };\n }\n\n pathS(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathS(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, point);\n boundingBox.addBezierCurve(current.x, current.y, point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.bezierCurveTo(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathQ(pathParser) {\n var {\n current\n } = pathParser;\n var controlPoint = pathParser.getAsControlPoint('x1', 'y1');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n controlPoint,\n currentPoint\n };\n }\n\n pathQ(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n controlPoint,\n currentPoint\n } = PathElement.pathQ(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, controlPoint);\n boundingBox.addQuadraticCurve(current.x, current.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.quadraticCurveTo(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathT(pathParser) {\n var {\n current\n } = pathParser;\n var controlPoint = pathParser.getReflectedControlPoint();\n pathParser.control = controlPoint;\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n controlPoint,\n currentPoint\n };\n }\n\n pathT(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n controlPoint,\n currentPoint\n } = PathElement.pathT(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, controlPoint);\n boundingBox.addQuadraticCurve(current.x, current.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.quadraticCurveTo(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathA(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var {\n rX,\n rY,\n xRot,\n lArcFlag,\n sweepFlag\n } = command;\n var xAxisRotation = xRot * (Math.PI / 180.0);\n var currentPoint = pathParser.getAsCurrentPoint(); // Conversion from endpoint to center parameterization\n // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n // x1', y1'\n\n var currp = new Point(Math.cos(xAxisRotation) * (current.x - currentPoint.x) / 2.0 + Math.sin(xAxisRotation) * (current.y - currentPoint.y) / 2.0, -Math.sin(xAxisRotation) * (current.x - currentPoint.x) / 2.0 + Math.cos(xAxisRotation) * (current.y - currentPoint.y) / 2.0); // adjust radii\n\n var l = Math.pow(currp.x, 2) / Math.pow(rX, 2) + Math.pow(currp.y, 2) / Math.pow(rY, 2);\n\n if (l > 1) {\n rX *= Math.sqrt(l);\n rY *= Math.sqrt(l);\n } // cx', cy'\n\n\n var s = (lArcFlag === sweepFlag ? -1 : 1) * Math.sqrt((Math.pow(rX, 2) * Math.pow(rY, 2) - Math.pow(rX, 2) * Math.pow(currp.y, 2) - Math.pow(rY, 2) * Math.pow(currp.x, 2)) / (Math.pow(rX, 2) * Math.pow(currp.y, 2) + Math.pow(rY, 2) * Math.pow(currp.x, 2)));\n\n if (isNaN(s)) {\n s = 0;\n }\n\n var cpp = new Point(s * rX * currp.y / rY, s * -rY * currp.x / rX); // cx, cy\n\n var centp = new Point((current.x + currentPoint.x) / 2.0 + Math.cos(xAxisRotation) * cpp.x - Math.sin(xAxisRotation) * cpp.y, (current.y + currentPoint.y) / 2.0 + Math.sin(xAxisRotation) * cpp.x + Math.cos(xAxisRotation) * cpp.y); // initial angle\n\n var a1 = vectorsAngle([1, 0], [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY]); // θ1\n // angle delta\n\n var u = [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY];\n var v = [(-currp.x - cpp.x) / rX, (-currp.y - cpp.y) / rY];\n var ad = vectorsAngle(u, v); // Δθ\n\n if (vectorsRatio(u, v) <= -1) {\n ad = Math.PI;\n }\n\n if (vectorsRatio(u, v) >= 1) {\n ad = 0;\n }\n\n return {\n currentPoint,\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n };\n }\n\n pathA(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n currentPoint,\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n } = PathElement.pathA(pathParser); // for markers\n\n var dir = 1 - sweepFlag ? 1.0 : -1.0;\n var ah = a1 + dir * (ad / 2.0);\n var halfWay = new Point(centp.x + rX * Math.cos(ah), centp.y + rY * Math.sin(ah));\n pathParser.addMarkerAngle(halfWay, ah - dir * Math.PI / 2);\n pathParser.addMarkerAngle(currentPoint, ah - dir * Math.PI);\n boundingBox.addPoint(currentPoint.x, currentPoint.y); // TODO: this is too naive, make it better\n\n if (ctx && !isNaN(a1) && !isNaN(ad)) {\n var r = rX > rY ? rX : rY;\n var sx = rX > rY ? 1 : rX / rY;\n var sy = rX > rY ? rY / rX : 1;\n ctx.translate(centp.x, centp.y);\n ctx.rotate(xAxisRotation);\n ctx.scale(sx, sy);\n ctx.arc(0, 0, r, a1, a1 + ad, Boolean(1 - sweepFlag));\n ctx.scale(1 / sx, 1 / sy);\n ctx.rotate(-xAxisRotation);\n ctx.translate(-centp.x, -centp.y);\n }\n }\n\n static pathZ(pathParser) {\n pathParser.current = pathParser.start;\n }\n\n pathZ(ctx, boundingBox) {\n PathElement.pathZ(this.pathParser);\n\n if (ctx) {\n // only close path if it is not a straight line\n if (boundingBox.x1 !== boundingBox.x2 && boundingBox.y1 !== boundingBox.y2) {\n ctx.closePath();\n }\n }\n }\n\n}\n\nclass GlyphElement extends PathElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'glyph';\n this.horizAdvX = this.getAttribute('horiz-adv-x').getNumber();\n this.unicode = this.getAttribute('unicode').getString();\n this.arabicForm = this.getAttribute('arabic-form').getString();\n }\n\n}\n\nclass TextElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, new.target === TextElement ? true : captureTextNodes);\n this.type = 'text';\n this.x = 0;\n this.y = 0;\n this.measureCache = -1;\n }\n\n setContext(ctx) {\n var fromMeasure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n super.setContext(ctx, fromMeasure);\n var textBaseline = this.getStyle('dominant-baseline').getTextBaseline() || this.getStyle('alignment-baseline').getTextBaseline();\n\n if (textBaseline) {\n ctx.textBaseline = textBaseline;\n }\n }\n\n initializeCoordinates() {\n this.x = 0;\n this.y = 0;\n this.leafTexts = [];\n this.textChunkStart = 0;\n this.minX = Number.POSITIVE_INFINITY;\n this.maxX = Number.NEGATIVE_INFINITY;\n }\n\n getBoundingBox(ctx) {\n if (this.type !== 'text') {\n return this.getTElementBoundingBox(ctx);\n } // first, calculate child positions\n\n\n this.initializeCoordinates();\n this.adjustChildCoordinatesRecursive(ctx);\n var boundingBox = null; // then calculate bounding box\n\n this.children.forEach((_, i) => {\n var childBoundingBox = this.getChildBoundingBox(ctx, this, this, i);\n\n if (!boundingBox) {\n boundingBox = childBoundingBox;\n } else {\n boundingBox.addBoundingBox(childBoundingBox);\n }\n });\n return boundingBox;\n }\n\n getFontSize() {\n var {\n document,\n parent\n } = this;\n var inheritFontSize = Font.parse(document.ctx.font).fontSize;\n var fontSize = parent.getStyle('font-size').getNumber(inheritFontSize);\n return fontSize;\n }\n\n getTElementBoundingBox(ctx) {\n var fontSize = this.getFontSize();\n return new BoundingBox(this.x, this.y - fontSize, this.x + this.measureText(ctx), this.y);\n }\n\n getGlyph(font, text, i) {\n var char = text[i];\n var glyph = null;\n\n if (font.isArabic) {\n var len = text.length;\n var prevChar = text[i - 1];\n var nextChar = text[i + 1];\n var arabicForm = 'isolated';\n\n if ((i === 0 || prevChar === ' ') && i < len - 1 && nextChar !== ' ') {\n arabicForm = 'terminal';\n }\n\n if (i > 0 && prevChar !== ' ' && i < len - 1 && nextChar !== ' ') {\n arabicForm = 'medial';\n }\n\n if (i > 0 && prevChar !== ' ' && (i === len - 1 || nextChar === ' ')) {\n arabicForm = 'initial';\n }\n\n if (typeof font.glyphs[char] !== 'undefined') {\n // NEED TEST\n var maybeGlyph = font.glyphs[char];\n glyph = maybeGlyph instanceof GlyphElement ? maybeGlyph : maybeGlyph[arabicForm];\n }\n } else {\n glyph = font.glyphs[char];\n }\n\n if (!glyph) {\n glyph = font.missingGlyph;\n }\n\n return glyph;\n }\n\n getText() {\n return '';\n }\n\n getTextFromNode(node) {\n var textNode = node || this.node;\n var childNodes = Array.from(textNode.parentNode.childNodes);\n var index = childNodes.indexOf(textNode);\n var lastIndex = childNodes.length - 1;\n var text = compressSpaces( // textNode.value\n // || textNode.text\n textNode.textContent || '');\n\n if (index === 0) {\n text = trimLeft(text);\n }\n\n if (index === lastIndex) {\n text = trimRight(text);\n }\n\n return text;\n }\n\n renderChildren(ctx) {\n if (this.type !== 'text') {\n this.renderTElementChildren(ctx);\n return;\n } // first, calculate child positions\n\n\n this.initializeCoordinates();\n this.adjustChildCoordinatesRecursive(ctx); // then render\n\n this.children.forEach((_, i) => {\n this.renderChild(ctx, this, this, i);\n });\n var {\n mouse\n } = this.document.screen; // Do not calc bounding box if mouse is not working.\n\n if (mouse.isWorking()) {\n mouse.checkBoundingBox(this, this.getBoundingBox(ctx));\n }\n }\n\n renderTElementChildren(ctx) {\n var {\n document,\n parent\n } = this;\n var renderText = this.getText();\n var customFont = parent.getStyle('font-family').getDefinition();\n\n if (customFont) {\n var {\n unitsPerEm\n } = customFont.fontFace;\n var ctxFont = Font.parse(document.ctx.font);\n var fontSize = parent.getStyle('font-size').getNumber(ctxFont.fontSize);\n var fontStyle = parent.getStyle('font-style').getString(ctxFont.fontStyle);\n var scale = fontSize / unitsPerEm;\n var text = customFont.isRTL ? renderText.split('').reverse().join('') : renderText;\n var dx = toNumbers(parent.getAttribute('dx').getString());\n var len = text.length;\n\n for (var i = 0; i < len; i++) {\n var glyph = this.getGlyph(customFont, text, i);\n ctx.translate(this.x, this.y);\n ctx.scale(scale, -scale);\n var lw = ctx.lineWidth;\n ctx.lineWidth = ctx.lineWidth * unitsPerEm / fontSize;\n\n if (fontStyle === 'italic') {\n ctx.transform(1, 0, .4, 1, 0, 0);\n }\n\n glyph.render(ctx);\n\n if (fontStyle === 'italic') {\n ctx.transform(1, 0, -.4, 1, 0, 0);\n }\n\n ctx.lineWidth = lw;\n ctx.scale(1 / scale, -1 / scale);\n ctx.translate(-this.x, -this.y);\n this.x += fontSize * (glyph.horizAdvX || customFont.horizAdvX) / unitsPerEm;\n\n if (typeof dx[i] !== 'undefined' && !isNaN(dx[i])) {\n this.x += dx[i];\n }\n }\n\n return;\n }\n\n var {\n x,\n y\n } = this; // NEED TEST\n // if (ctx.paintOrder === 'stroke') {\n // \tif (ctx.strokeStyle) {\n // \t\tctx.strokeText(renderText, x, y);\n // \t}\n // \tif (ctx.fillStyle) {\n // \t\tctx.fillText(renderText, x, y);\n // \t}\n // } else {\n\n if (ctx.fillStyle) {\n ctx.fillText(renderText, x, y);\n }\n\n if (ctx.strokeStyle) {\n ctx.strokeText(renderText, x, y);\n } // }\n\n }\n\n applyAnchoring() {\n if (this.textChunkStart >= this.leafTexts.length) {\n return;\n } // This is basically the \"Apply anchoring\" part of https://www.w3.org/TR/SVG2/text.html#TextLayoutAlgorithm.\n // The difference is that we apply the anchoring as soon as a chunk is finished. This saves some extra looping.\n // Vertical text is not supported.\n\n\n var firstElement = this.leafTexts[this.textChunkStart];\n var textAnchor = firstElement.getStyle('text-anchor').getString('start');\n var isRTL = false; // we treat RTL like LTR\n\n var shift = 0;\n\n if (textAnchor === 'start' && !isRTL || textAnchor === 'end' && isRTL) {\n shift = firstElement.x - this.minX;\n } else if (textAnchor === 'end' && !isRTL || textAnchor === 'start' && isRTL) {\n shift = firstElement.x - this.maxX;\n } else {\n shift = firstElement.x - (this.minX + this.maxX) / 2;\n }\n\n for (var i = this.textChunkStart; i < this.leafTexts.length; i++) {\n this.leafTexts[i].x += shift;\n } // start new chunk\n\n\n this.minX = Number.POSITIVE_INFINITY;\n this.maxX = Number.NEGATIVE_INFINITY;\n this.textChunkStart = this.leafTexts.length;\n }\n\n adjustChildCoordinatesRecursive(ctx) {\n this.children.forEach((_, i) => {\n this.adjustChildCoordinatesRecursiveCore(ctx, this, this, i);\n });\n this.applyAnchoring();\n }\n\n adjustChildCoordinatesRecursiveCore(ctx, textParent, parent, i) {\n var child = parent.children[i];\n\n if (child.children.length > 0) {\n child.children.forEach((_, i) => {\n textParent.adjustChildCoordinatesRecursiveCore(ctx, textParent, child, i);\n });\n } else {\n // only leafs are relevant\n this.adjustChildCoordinates(ctx, textParent, parent, i);\n }\n }\n\n adjustChildCoordinates(ctx, textParent, parent, i) {\n var child = parent.children[i];\n\n if (typeof child.measureText !== 'function') {\n return child;\n }\n\n ctx.save();\n child.setContext(ctx, true);\n var xAttr = child.getAttribute('x');\n var yAttr = child.getAttribute('y');\n var dxAttr = child.getAttribute('dx');\n var dyAttr = child.getAttribute('dy');\n var customFont = child.getStyle('font-family').getDefinition();\n var isRTL = Boolean(customFont) && customFont.isRTL;\n\n if (i === 0) {\n // First children inherit attributes from parent(s). Positional attributes\n // are only inherited from a parent to it's first child.\n if (!xAttr.hasValue()) {\n xAttr.setValue(child.getInheritedAttribute('x'));\n }\n\n if (!yAttr.hasValue()) {\n yAttr.setValue(child.getInheritedAttribute('y'));\n }\n\n if (!dxAttr.hasValue()) {\n dxAttr.setValue(child.getInheritedAttribute('dx'));\n }\n\n if (!dyAttr.hasValue()) {\n dyAttr.setValue(child.getInheritedAttribute('dy'));\n }\n }\n\n var width = child.measureText(ctx);\n\n if (isRTL) {\n textParent.x -= width;\n }\n\n if (xAttr.hasValue()) {\n // an \"x\" attribute marks the start of a new chunk\n textParent.applyAnchoring();\n child.x = xAttr.getPixels('x');\n\n if (dxAttr.hasValue()) {\n child.x += dxAttr.getPixels('x');\n }\n } else {\n if (dxAttr.hasValue()) {\n textParent.x += dxAttr.getPixels('x');\n }\n\n child.x = textParent.x;\n }\n\n textParent.x = child.x;\n\n if (!isRTL) {\n textParent.x += width;\n }\n\n if (yAttr.hasValue()) {\n child.y = yAttr.getPixels('y');\n\n if (dyAttr.hasValue()) {\n child.y += dyAttr.getPixels('y');\n }\n } else {\n if (dyAttr.hasValue()) {\n textParent.y += dyAttr.getPixels('y');\n }\n\n child.y = textParent.y;\n }\n\n textParent.y = child.y; // update the current chunk and it's bounds\n\n textParent.leafTexts.push(child);\n textParent.minX = Math.min(textParent.minX, child.x, child.x + width);\n textParent.maxX = Math.max(textParent.maxX, child.x, child.x + width);\n child.clearContext(ctx);\n ctx.restore();\n return child;\n }\n\n getChildBoundingBox(ctx, textParent, parent, i) {\n var child = parent.children[i]; // not a text node?\n\n if (typeof child.getBoundingBox !== 'function') {\n return null;\n }\n\n var boundingBox = child.getBoundingBox(ctx);\n\n if (!boundingBox) {\n return null;\n }\n\n child.children.forEach((_, i) => {\n var childBoundingBox = textParent.getChildBoundingBox(ctx, textParent, child, i);\n boundingBox.addBoundingBox(childBoundingBox);\n });\n return boundingBox;\n }\n\n renderChild(ctx, textParent, parent, i) {\n var child = parent.children[i];\n child.render(ctx);\n child.children.forEach((_, i) => {\n textParent.renderChild(ctx, textParent, child, i);\n });\n }\n\n measureText(ctx) {\n var {\n measureCache\n } = this;\n\n if (~measureCache) {\n return measureCache;\n }\n\n var renderText = this.getText();\n var measure = this.measureTargetText(ctx, renderText);\n this.measureCache = measure;\n return measure;\n }\n\n measureTargetText(ctx, targetText) {\n if (!targetText.length) {\n return 0;\n }\n\n var {\n parent\n } = this;\n var customFont = parent.getStyle('font-family').getDefinition();\n\n if (customFont) {\n var fontSize = this.getFontSize();\n var text = customFont.isRTL ? targetText.split('').reverse().join('') : targetText;\n var dx = toNumbers(parent.getAttribute('dx').getString());\n var len = text.length;\n var _measure = 0;\n\n for (var i = 0; i < len; i++) {\n var glyph = this.getGlyph(customFont, text, i);\n _measure += (glyph.horizAdvX || customFont.horizAdvX) * fontSize / customFont.fontFace.unitsPerEm;\n\n if (typeof dx[i] !== 'undefined' && !isNaN(dx[i])) {\n _measure += dx[i];\n }\n }\n\n return _measure;\n }\n\n if (!ctx.measureText) {\n return targetText.length * 10;\n }\n\n ctx.save();\n this.setContext(ctx, true);\n var {\n width: measure\n } = ctx.measureText(targetText);\n this.clearContext(ctx);\n ctx.restore();\n return measure;\n }\n /**\r\n * Inherits positional attributes from {@link TextElement} parent(s). Attributes\r\n * are only inherited from a parent to its first child.\r\n * @param name - The attribute name.\r\n * @returns The attribute value or null.\r\n */\n\n\n getInheritedAttribute(name) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias,consistent-this\n var current = this;\n\n while (current instanceof TextElement && current.isFirstChild()) {\n var parentAttr = current.parent.getAttribute(name);\n\n if (parentAttr.hasValue(true)) {\n return parentAttr.getValue('0');\n }\n\n current = current.parent;\n }\n\n return null;\n }\n\n}\n\nclass TSpanElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, new.target === TSpanElement ? true : captureTextNodes);\n this.type = 'tspan'; // if this node has children, then they own the text\n\n this.text = this.children.length > 0 ? '' : this.getTextFromNode();\n }\n\n getText() {\n return this.text;\n }\n\n}\n\nclass TextNode extends TSpanElement {\n constructor() {\n super(...arguments);\n this.type = 'textNode';\n }\n\n}\n\nclass SVGElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'svg';\n this.root = false;\n }\n\n setContext(ctx) {\n var _this$node$parentNode;\n\n var {\n document\n } = this;\n var {\n screen,\n window\n } = document;\n var canvas = ctx.canvas;\n screen.setDefaults(ctx);\n\n if (canvas.style && typeof ctx.font !== 'undefined' && window && typeof window.getComputedStyle !== 'undefined') {\n ctx.font = window.getComputedStyle(canvas).getPropertyValue('font');\n var fontSizeProp = new Property(document, 'fontSize', Font.parse(ctx.font).fontSize);\n\n if (fontSizeProp.hasValue()) {\n document.rootEmSize = fontSizeProp.getPixels('y');\n document.emSize = document.rootEmSize;\n }\n } // create new view port\n\n\n if (!this.getAttribute('x').hasValue()) {\n this.getAttribute('x', true).setValue(0);\n }\n\n if (!this.getAttribute('y').hasValue()) {\n this.getAttribute('y', true).setValue(0);\n }\n\n var {\n width,\n height\n } = screen.viewPort;\n\n if (!this.getStyle('width').hasValue()) {\n this.getStyle('width', true).setValue('100%');\n }\n\n if (!this.getStyle('height').hasValue()) {\n this.getStyle('height', true).setValue('100%');\n }\n\n if (!this.getStyle('color').hasValue()) {\n this.getStyle('color', true).setValue('black');\n }\n\n var refXAttr = this.getAttribute('refX');\n var refYAttr = this.getAttribute('refY');\n var viewBoxAttr = this.getAttribute('viewBox');\n var viewBox = viewBoxAttr.hasValue() ? toNumbers(viewBoxAttr.getString()) : null;\n var clip = !this.root && this.getStyle('overflow').getValue('hidden') !== 'visible';\n var minX = 0;\n var minY = 0;\n var clipX = 0;\n var clipY = 0;\n\n if (viewBox) {\n minX = viewBox[0];\n minY = viewBox[1];\n }\n\n if (!this.root) {\n width = this.getStyle('width').getPixels('x');\n height = this.getStyle('height').getPixels('y');\n\n if (this.type === 'marker') {\n clipX = minX;\n clipY = minY;\n minX = 0;\n minY = 0;\n }\n }\n\n screen.viewPort.setCurrent(width, height); // Default value of transform-origin is center only for root SVG elements\n // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/transform-origin\n\n if (this.node // is not temporary SVGElement\n && (!this.parent || ((_this$node$parentNode = this.node.parentNode) === null || _this$node$parentNode === void 0 ? void 0 : _this$node$parentNode.nodeName) === 'foreignObject') && this.getStyle('transform', false, true).hasValue() && !this.getStyle('transform-origin', false, true).hasValue()) {\n this.getStyle('transform-origin', true, true).setValue('50% 50%');\n }\n\n super.setContext(ctx);\n ctx.translate(this.getAttribute('x').getPixels('x'), this.getAttribute('y').getPixels('y'));\n\n if (viewBox) {\n width = viewBox[2];\n height = viewBox[3];\n }\n\n document.setViewBox({\n ctx,\n aspectRatio: this.getAttribute('preserveAspectRatio').getString(),\n width: screen.viewPort.width,\n desiredWidth: width,\n height: screen.viewPort.height,\n desiredHeight: height,\n minX,\n minY,\n refX: refXAttr.getValue(),\n refY: refYAttr.getValue(),\n clip,\n clipX,\n clipY\n });\n\n if (viewBox) {\n screen.viewPort.removeCurrent();\n screen.viewPort.setCurrent(width, height);\n }\n }\n\n clearContext(ctx) {\n super.clearContext(ctx);\n this.document.screen.viewPort.removeCurrent();\n }\n /**\r\n * Resize SVG to fit in given size.\r\n * @param width\r\n * @param height\r\n * @param preserveAspectRatio\r\n */\n\n\n resize(width) {\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : width;\n var preserveAspectRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var widthAttr = this.getAttribute('width', true);\n var heightAttr = this.getAttribute('height', true);\n var viewBoxAttr = this.getAttribute('viewBox');\n var styleAttr = this.getAttribute('style');\n var originWidth = widthAttr.getNumber(0);\n var originHeight = heightAttr.getNumber(0);\n\n if (preserveAspectRatio) {\n if (typeof preserveAspectRatio === 'string') {\n this.getAttribute('preserveAspectRatio', true).setValue(preserveAspectRatio);\n } else {\n var preserveAspectRatioAttr = this.getAttribute('preserveAspectRatio');\n\n if (preserveAspectRatioAttr.hasValue()) {\n preserveAspectRatioAttr.setValue(preserveAspectRatioAttr.getString().replace(/^\\s*(\\S.*\\S)\\s*$/, '$1'));\n }\n }\n }\n\n widthAttr.setValue(width);\n heightAttr.setValue(height);\n\n if (!viewBoxAttr.hasValue()) {\n viewBoxAttr.setValue(\"0 0 \".concat(originWidth || width, \" \").concat(originHeight || height));\n }\n\n if (styleAttr.hasValue()) {\n var widthStyle = this.getStyle('width');\n var heightStyle = this.getStyle('height');\n\n if (widthStyle.hasValue()) {\n widthStyle.setValue(\"\".concat(width, \"px\"));\n }\n\n if (heightStyle.hasValue()) {\n heightStyle.setValue(\"\".concat(height, \"px\"));\n }\n }\n }\n\n}\n\nclass RectElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'rect';\n }\n\n path(ctx) {\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width', false, true).getPixels('x');\n var height = this.getStyle('height', false, true).getPixels('y');\n var rxAttr = this.getAttribute('rx');\n var ryAttr = this.getAttribute('ry');\n var rx = rxAttr.getPixels('x');\n var ry = ryAttr.getPixels('y');\n\n if (rxAttr.hasValue() && !ryAttr.hasValue()) {\n ry = rx;\n }\n\n if (ryAttr.hasValue() && !rxAttr.hasValue()) {\n rx = ry;\n }\n\n rx = Math.min(rx, width / 2.0);\n ry = Math.min(ry, height / 2.0);\n\n if (ctx) {\n var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);\n ctx.beginPath(); // always start the path so we don't fill prior paths\n\n if (height > 0 && width > 0) {\n ctx.moveTo(x + rx, y);\n ctx.lineTo(x + width - rx, y);\n ctx.bezierCurveTo(x + width - rx + KAPPA * rx, y, x + width, y + ry - KAPPA * ry, x + width, y + ry);\n ctx.lineTo(x + width, y + height - ry);\n ctx.bezierCurveTo(x + width, y + height - ry + KAPPA * ry, x + width - rx + KAPPA * rx, y + height, x + width - rx, y + height);\n ctx.lineTo(x + rx, y + height);\n ctx.bezierCurveTo(x + rx - KAPPA * rx, y + height, x, y + height - ry + KAPPA * ry, x, y + height - ry);\n ctx.lineTo(x, y + ry);\n ctx.bezierCurveTo(x, y + ry - KAPPA * ry, x + rx - KAPPA * rx, y, x + rx, y);\n ctx.closePath();\n }\n }\n\n return new BoundingBox(x, y, x + width, y + height);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass CircleElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'circle';\n }\n\n path(ctx) {\n var cx = this.getAttribute('cx').getPixels('x');\n var cy = this.getAttribute('cy').getPixels('y');\n var r = this.getAttribute('r').getPixels();\n\n if (ctx && r > 0) {\n ctx.beginPath();\n ctx.arc(cx, cy, r, 0, Math.PI * 2, false);\n ctx.closePath();\n }\n\n return new BoundingBox(cx - r, cy - r, cx + r, cy + r);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass EllipseElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'ellipse';\n }\n\n path(ctx) {\n var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);\n var rx = this.getAttribute('rx').getPixels('x');\n var ry = this.getAttribute('ry').getPixels('y');\n var cx = this.getAttribute('cx').getPixels('x');\n var cy = this.getAttribute('cy').getPixels('y');\n\n if (ctx && rx > 0 && ry > 0) {\n ctx.beginPath();\n ctx.moveTo(cx + rx, cy);\n ctx.bezierCurveTo(cx + rx, cy + KAPPA * ry, cx + KAPPA * rx, cy + ry, cx, cy + ry);\n ctx.bezierCurveTo(cx - KAPPA * rx, cy + ry, cx - rx, cy + KAPPA * ry, cx - rx, cy);\n ctx.bezierCurveTo(cx - rx, cy - KAPPA * ry, cx - KAPPA * rx, cy - ry, cx, cy - ry);\n ctx.bezierCurveTo(cx + KAPPA * rx, cy - ry, cx + rx, cy - KAPPA * ry, cx + rx, cy);\n ctx.closePath();\n }\n\n return new BoundingBox(cx - rx, cy - ry, cx + rx, cy + ry);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass LineElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'line';\n }\n\n getPoints() {\n return [new Point(this.getAttribute('x1').getPixels('x'), this.getAttribute('y1').getPixels('y')), new Point(this.getAttribute('x2').getPixels('x'), this.getAttribute('y2').getPixels('y'))];\n }\n\n path(ctx) {\n var [{\n x: x0,\n y: y0\n }, {\n x: x1,\n y: y1\n }] = this.getPoints();\n\n if (ctx) {\n ctx.beginPath();\n ctx.moveTo(x0, y0);\n ctx.lineTo(x1, y1);\n }\n\n return new BoundingBox(x0, y0, x1, y1);\n }\n\n getMarkers() {\n var [p0, p1] = this.getPoints();\n var a = p0.angleTo(p1);\n return [[p0, a], [p1, a]];\n }\n\n}\n\nclass PolylineElement extends PathElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'polyline';\n this.points = [];\n this.points = Point.parsePath(this.getAttribute('points').getString());\n }\n\n path(ctx) {\n var {\n points\n } = this;\n var [{\n x: x0,\n y: y0\n }] = points;\n var boundingBox = new BoundingBox(x0, y0);\n\n if (ctx) {\n ctx.beginPath();\n ctx.moveTo(x0, y0);\n }\n\n points.forEach(_ref => {\n var {\n x,\n y\n } = _ref;\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n });\n return boundingBox;\n }\n\n getMarkers() {\n var {\n points\n } = this;\n var lastIndex = points.length - 1;\n var markers = [];\n points.forEach((point, i) => {\n if (i === lastIndex) {\n return;\n }\n\n markers.push([point, point.angleTo(points[i + 1])]);\n });\n\n if (markers.length > 0) {\n markers.push([points[points.length - 1], markers[markers.length - 1][1]]);\n }\n\n return markers;\n }\n\n}\n\nclass PolygonElement extends PolylineElement {\n constructor() {\n super(...arguments);\n this.type = 'polygon';\n }\n\n path(ctx) {\n var boundingBox = super.path(ctx);\n var [{\n x,\n y\n }] = this.points;\n\n if (ctx) {\n ctx.lineTo(x, y);\n ctx.closePath();\n }\n\n return boundingBox;\n }\n\n}\n\nclass PatternElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'pattern';\n }\n\n createPattern(ctx, _, parentOpacityProp) {\n var width = this.getStyle('width').getPixels('x', true);\n var height = this.getStyle('height').getPixels('y', true); // render me using a temporary svg element\n\n var patternSvg = new SVGElement(this.document, null);\n patternSvg.attributes.viewBox = new Property(this.document, 'viewBox', this.getAttribute('viewBox').getValue());\n patternSvg.attributes.width = new Property(this.document, 'width', \"\".concat(width, \"px\"));\n patternSvg.attributes.height = new Property(this.document, 'height', \"\".concat(height, \"px\"));\n patternSvg.attributes.transform = new Property(this.document, 'transform', this.getAttribute('patternTransform').getValue());\n patternSvg.children = this.children;\n var patternCanvas = this.document.createCanvas(width, height);\n var patternCtx = patternCanvas.getContext('2d');\n var xAttr = this.getAttribute('x');\n var yAttr = this.getAttribute('y');\n\n if (xAttr.hasValue() && yAttr.hasValue()) {\n patternCtx.translate(xAttr.getPixels('x', true), yAttr.getPixels('y', true));\n }\n\n if (parentOpacityProp.hasValue()) {\n this.styles['fill-opacity'] = parentOpacityProp;\n } else {\n Reflect.deleteProperty(this.styles, 'fill-opacity');\n } // render 3x3 grid so when we transform there's no white space on edges\n\n\n for (var x = -1; x <= 1; x++) {\n for (var y = -1; y <= 1; y++) {\n patternCtx.save();\n patternSvg.attributes.x = new Property(this.document, 'x', x * patternCanvas.width);\n patternSvg.attributes.y = new Property(this.document, 'y', y * patternCanvas.height);\n patternSvg.render(patternCtx);\n patternCtx.restore();\n }\n }\n\n var pattern = ctx.createPattern(patternCanvas, 'repeat');\n return pattern;\n }\n\n}\n\nclass MarkerElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'marker';\n }\n\n render(ctx, point, angle) {\n if (!point) {\n return;\n }\n\n var {\n x,\n y\n } = point;\n var orient = this.getAttribute('orient').getString('auto');\n var markerUnits = this.getAttribute('markerUnits').getString('strokeWidth');\n ctx.translate(x, y);\n\n if (orient === 'auto') {\n ctx.rotate(angle);\n }\n\n if (markerUnits === 'strokeWidth') {\n ctx.scale(ctx.lineWidth, ctx.lineWidth);\n }\n\n ctx.save(); // render me using a temporary svg element\n\n var markerSvg = new SVGElement(this.document, null);\n markerSvg.type = this.type;\n markerSvg.attributes.viewBox = new Property(this.document, 'viewBox', this.getAttribute('viewBox').getValue());\n markerSvg.attributes.refX = new Property(this.document, 'refX', this.getAttribute('refX').getValue());\n markerSvg.attributes.refY = new Property(this.document, 'refY', this.getAttribute('refY').getValue());\n markerSvg.attributes.width = new Property(this.document, 'width', this.getAttribute('markerWidth').getValue());\n markerSvg.attributes.height = new Property(this.document, 'height', this.getAttribute('markerHeight').getValue());\n markerSvg.attributes.overflow = new Property(this.document, 'overflow', this.getAttribute('overflow').getValue());\n markerSvg.attributes.fill = new Property(this.document, 'fill', this.getAttribute('fill').getColor('black'));\n markerSvg.attributes.stroke = new Property(this.document, 'stroke', this.getAttribute('stroke').getValue('none'));\n markerSvg.children = this.children;\n markerSvg.render(ctx);\n ctx.restore();\n\n if (markerUnits === 'strokeWidth') {\n ctx.scale(1 / ctx.lineWidth, 1 / ctx.lineWidth);\n }\n\n if (orient === 'auto') {\n ctx.rotate(-angle);\n }\n\n ctx.translate(-x, -y);\n }\n\n}\n\nclass DefsElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'defs';\n }\n\n render() {// NOOP\n }\n\n}\n\nclass GElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'g';\n }\n\n getBoundingBox(ctx) {\n var boundingBox = new BoundingBox();\n this.children.forEach(child => {\n boundingBox.addBoundingBox(child.getBoundingBox(ctx));\n });\n return boundingBox;\n }\n\n}\n\nclass GradientElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.attributesToInherit = ['gradientUnits'];\n this.stops = [];\n var {\n stops,\n children\n } = this;\n children.forEach(child => {\n if (child.type === 'stop') {\n stops.push(child);\n }\n });\n }\n\n getGradientUnits() {\n return this.getAttribute('gradientUnits').getString('objectBoundingBox');\n }\n\n createGradient(ctx, element, parentOpacityProp) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this\n var stopsContainer = this;\n\n if (this.getHrefAttribute().hasValue()) {\n stopsContainer = this.getHrefAttribute().getDefinition();\n this.inheritStopContainer(stopsContainer);\n }\n\n var {\n stops\n } = stopsContainer;\n var gradient = this.getGradient(ctx, element);\n\n if (!gradient) {\n return this.addParentOpacity(parentOpacityProp, stops[stops.length - 1].color);\n }\n\n stops.forEach(stop => {\n gradient.addColorStop(stop.offset, this.addParentOpacity(parentOpacityProp, stop.color));\n });\n\n if (this.getAttribute('gradientTransform').hasValue()) {\n // render as transformed pattern on temporary canvas\n var {\n document\n } = this;\n var {\n MAX_VIRTUAL_PIXELS,\n viewPort\n } = document.screen;\n var [rootView] = viewPort.viewPorts;\n var rect = new RectElement(document, null);\n rect.attributes.x = new Property(document, 'x', -MAX_VIRTUAL_PIXELS / 3.0);\n rect.attributes.y = new Property(document, 'y', -MAX_VIRTUAL_PIXELS / 3.0);\n rect.attributes.width = new Property(document, 'width', MAX_VIRTUAL_PIXELS);\n rect.attributes.height = new Property(document, 'height', MAX_VIRTUAL_PIXELS);\n var group = new GElement(document, null);\n group.attributes.transform = new Property(document, 'transform', this.getAttribute('gradientTransform').getValue());\n group.children = [rect];\n var patternSvg = new SVGElement(document, null);\n patternSvg.attributes.x = new Property(document, 'x', 0);\n patternSvg.attributes.y = new Property(document, 'y', 0);\n patternSvg.attributes.width = new Property(document, 'width', rootView.width);\n patternSvg.attributes.height = new Property(document, 'height', rootView.height);\n patternSvg.children = [group];\n var patternCanvas = document.createCanvas(rootView.width, rootView.height);\n var patternCtx = patternCanvas.getContext('2d');\n patternCtx.fillStyle = gradient;\n patternSvg.render(patternCtx);\n return patternCtx.createPattern(patternCanvas, 'no-repeat');\n }\n\n return gradient;\n }\n\n inheritStopContainer(stopsContainer) {\n this.attributesToInherit.forEach(attributeToInherit => {\n if (!this.getAttribute(attributeToInherit).hasValue() && stopsContainer.getAttribute(attributeToInherit).hasValue()) {\n this.getAttribute(attributeToInherit, true).setValue(stopsContainer.getAttribute(attributeToInherit).getValue());\n }\n });\n }\n\n addParentOpacity(parentOpacityProp, color) {\n if (parentOpacityProp.hasValue()) {\n var colorProp = new Property(this.document, 'color', color);\n return colorProp.addOpacity(parentOpacityProp).getColor();\n }\n\n return color;\n }\n\n}\n\nclass LinearGradientElement extends GradientElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'linearGradient';\n this.attributesToInherit.push('x1', 'y1', 'x2', 'y2');\n }\n\n getGradient(ctx, element) {\n var isBoundingBoxUnits = this.getGradientUnits() === 'objectBoundingBox';\n var boundingBox = isBoundingBoxUnits ? element.getBoundingBox(ctx) : null;\n\n if (isBoundingBoxUnits && !boundingBox) {\n return null;\n }\n\n if (!this.getAttribute('x1').hasValue() && !this.getAttribute('y1').hasValue() && !this.getAttribute('x2').hasValue() && !this.getAttribute('y2').hasValue()) {\n this.getAttribute('x1', true).setValue(0);\n this.getAttribute('y1', true).setValue(0);\n this.getAttribute('x2', true).setValue(1);\n this.getAttribute('y2', true).setValue(0);\n }\n\n var x1 = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('x1').getNumber() : this.getAttribute('x1').getPixels('x');\n var y1 = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('y1').getNumber() : this.getAttribute('y1').getPixels('y');\n var x2 = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('x2').getNumber() : this.getAttribute('x2').getPixels('x');\n var y2 = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('y2').getNumber() : this.getAttribute('y2').getPixels('y');\n\n if (x1 === x2 && y1 === y2) {\n return null;\n }\n\n return ctx.createLinearGradient(x1, y1, x2, y2);\n }\n\n}\n\nclass RadialGradientElement extends GradientElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'radialGradient';\n this.attributesToInherit.push('cx', 'cy', 'r', 'fx', 'fy', 'fr');\n }\n\n getGradient(ctx, element) {\n var isBoundingBoxUnits = this.getGradientUnits() === 'objectBoundingBox';\n var boundingBox = element.getBoundingBox(ctx);\n\n if (isBoundingBoxUnits && !boundingBox) {\n return null;\n }\n\n if (!this.getAttribute('cx').hasValue()) {\n this.getAttribute('cx', true).setValue('50%');\n }\n\n if (!this.getAttribute('cy').hasValue()) {\n this.getAttribute('cy', true).setValue('50%');\n }\n\n if (!this.getAttribute('r').hasValue()) {\n this.getAttribute('r', true).setValue('50%');\n }\n\n var cx = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('cx').getNumber() : this.getAttribute('cx').getPixels('x');\n var cy = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('cy').getNumber() : this.getAttribute('cy').getPixels('y');\n var fx = cx;\n var fy = cy;\n\n if (this.getAttribute('fx').hasValue()) {\n fx = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('fx').getNumber() : this.getAttribute('fx').getPixels('x');\n }\n\n if (this.getAttribute('fy').hasValue()) {\n fy = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('fy').getNumber() : this.getAttribute('fy').getPixels('y');\n }\n\n var r = isBoundingBoxUnits ? (boundingBox.width + boundingBox.height) / 2.0 * this.getAttribute('r').getNumber() : this.getAttribute('r').getPixels();\n var fr = this.getAttribute('fr').getPixels();\n return ctx.createRadialGradient(fx, fy, fr, cx, cy, r);\n }\n\n}\n\nclass StopElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'stop';\n var offset = Math.max(0, Math.min(1, this.getAttribute('offset').getNumber()));\n var stopOpacity = this.getStyle('stop-opacity');\n var stopColor = this.getStyle('stop-color', true);\n\n if (stopColor.getString() === '') {\n stopColor.setValue('#000');\n }\n\n if (stopOpacity.hasValue()) {\n stopColor = stopColor.addOpacity(stopOpacity);\n }\n\n this.offset = offset;\n this.color = stopColor.getColor();\n }\n\n}\n\nclass AnimateElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'animate';\n this.duration = 0;\n this.initialValue = null;\n this.initialUnits = '';\n this.removed = false;\n this.frozen = false;\n document.screen.animations.push(this);\n this.begin = this.getAttribute('begin').getMilliseconds();\n this.maxDuration = this.begin + this.getAttribute('dur').getMilliseconds();\n this.from = this.getAttribute('from');\n this.to = this.getAttribute('to');\n this.values = new Property(document, 'values', null);\n var valuesAttr = this.getAttribute('values');\n\n if (valuesAttr.hasValue()) {\n this.values.setValue(valuesAttr.getString().split(';'));\n }\n }\n\n getProperty() {\n var attributeType = this.getAttribute('attributeType').getString();\n var attributeName = this.getAttribute('attributeName').getString();\n\n if (attributeType === 'CSS') {\n return this.parent.getStyle(attributeName, true);\n }\n\n return this.parent.getAttribute(attributeName, true);\n }\n\n calcValue() {\n var {\n initialUnits\n } = this;\n var {\n progress,\n from,\n to\n } = this.getProgress(); // tween value linearly\n\n var newValue = from.getNumber() + (to.getNumber() - from.getNumber()) * progress;\n\n if (initialUnits === '%') {\n newValue *= 100.0; // numValue() returns 0-1 whereas properties are 0-100\n }\n\n return \"\".concat(newValue).concat(initialUnits);\n }\n\n update(delta) {\n var {\n parent\n } = this;\n var prop = this.getProperty(); // set initial value\n\n if (!this.initialValue) {\n this.initialValue = prop.getString();\n this.initialUnits = prop.getUnits();\n } // if we're past the end time\n\n\n if (this.duration > this.maxDuration) {\n var fill = this.getAttribute('fill').getString('remove'); // loop for indefinitely repeating animations\n\n if (this.getAttribute('repeatCount').getString() === 'indefinite' || this.getAttribute('repeatDur').getString() === 'indefinite') {\n this.duration = 0;\n } else if (fill === 'freeze' && !this.frozen) {\n this.frozen = true;\n parent.animationFrozen = true;\n parent.animationFrozenValue = prop.getString();\n } else if (fill === 'remove' && !this.removed) {\n this.removed = true;\n prop.setValue(parent.animationFrozen ? parent.animationFrozenValue : this.initialValue);\n return true;\n }\n\n return false;\n }\n\n this.duration += delta; // if we're past the begin time\n\n var updated = false;\n\n if (this.begin < this.duration) {\n var newValue = this.calcValue(); // tween\n\n var typeAttr = this.getAttribute('type');\n\n if (typeAttr.hasValue()) {\n // for transform, etc.\n var type = typeAttr.getString();\n newValue = \"\".concat(type, \"(\").concat(newValue, \")\");\n }\n\n prop.setValue(newValue);\n updated = true;\n }\n\n return updated;\n }\n\n getProgress() {\n var {\n document,\n values\n } = this;\n var result = {\n progress: (this.duration - this.begin) / (this.maxDuration - this.begin)\n };\n\n if (values.hasValue()) {\n var p = result.progress * (values.getValue().length - 1);\n var lb = Math.floor(p);\n var ub = Math.ceil(p);\n result.from = new Property(document, 'from', parseFloat(values.getValue()[lb]));\n result.to = new Property(document, 'to', parseFloat(values.getValue()[ub]));\n result.progress = (p - lb) / (ub - lb);\n } else {\n result.from = this.from;\n result.to = this.to;\n }\n\n return result;\n }\n\n}\n\nclass AnimateColorElement extends AnimateElement {\n constructor() {\n super(...arguments);\n this.type = 'animateColor';\n }\n\n calcValue() {\n var {\n progress,\n from,\n to\n } = this.getProgress();\n var colorFrom = new RGBColor(from.getColor());\n var colorTo = new RGBColor(to.getColor());\n\n if (colorFrom.ok && colorTo.ok) {\n // tween color linearly\n var r = colorFrom.r + (colorTo.r - colorFrom.r) * progress;\n var g = colorFrom.g + (colorTo.g - colorFrom.g) * progress;\n var b = colorFrom.b + (colorTo.b - colorFrom.b) * progress; // ? alpha\n\n return \"rgb(\".concat(Math.floor(r), \", \").concat(Math.floor(g), \", \").concat(Math.floor(b), \")\");\n }\n\n return this.getAttribute('from').getColor();\n }\n\n}\n\nclass AnimateTransformElement extends AnimateElement {\n constructor() {\n super(...arguments);\n this.type = 'animateTransform';\n }\n\n calcValue() {\n var {\n progress,\n from,\n to\n } = this.getProgress(); // tween value linearly\n\n var transformFrom = toNumbers(from.getString());\n var transformTo = toNumbers(to.getString());\n var newValue = transformFrom.map((from, i) => {\n var to = transformTo[i];\n return from + (to - from) * progress;\n }).join(' ');\n return newValue;\n }\n\n}\n\nclass FontElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'font';\n this.glyphs = Object.create(null);\n this.horizAdvX = this.getAttribute('horiz-adv-x').getNumber();\n var {\n definitions\n } = document;\n var {\n children\n } = this;\n\n for (var child of children) {\n switch (child.type) {\n case 'font-face':\n {\n this.fontFace = child;\n var fontFamilyStyle = child.getStyle('font-family');\n\n if (fontFamilyStyle.hasValue()) {\n definitions[fontFamilyStyle.getString()] = this;\n }\n\n break;\n }\n\n case 'missing-glyph':\n this.missingGlyph = child;\n break;\n\n case 'glyph':\n {\n var glyph = child;\n\n if (glyph.arabicForm) {\n this.isRTL = true;\n this.isArabic = true;\n\n if (typeof this.glyphs[glyph.unicode] === 'undefined') {\n this.glyphs[glyph.unicode] = Object.create(null);\n }\n\n this.glyphs[glyph.unicode][glyph.arabicForm] = glyph;\n } else {\n this.glyphs[glyph.unicode] = glyph;\n }\n\n break;\n }\n }\n }\n }\n\n render() {// NO RENDER\n }\n\n}\n\nclass FontFaceElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'font-face';\n this.ascent = this.getAttribute('ascent').getNumber();\n this.descent = this.getAttribute('descent').getNumber();\n this.unitsPerEm = this.getAttribute('units-per-em').getNumber();\n }\n\n}\n\nclass MissingGlyphElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'missing-glyph';\n this.horizAdvX = 0;\n }\n\n}\n\nclass TRefElement extends TextElement {\n constructor() {\n super(...arguments);\n this.type = 'tref';\n }\n\n getText() {\n var element = this.getHrefAttribute().getDefinition();\n\n if (element) {\n var firstChild = element.children[0];\n\n if (firstChild) {\n return firstChild.getText();\n }\n }\n\n return '';\n }\n\n}\n\nclass AElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'a';\n var {\n childNodes\n } = node;\n var firstChild = childNodes[0];\n var hasText = childNodes.length > 0 && Array.from(childNodes).every(node => node.nodeType === 3);\n this.hasText = hasText;\n this.text = hasText ? this.getTextFromNode(firstChild) : '';\n }\n\n getText() {\n return this.text;\n }\n\n renderChildren(ctx) {\n if (this.hasText) {\n // render as text element\n super.renderChildren(ctx);\n var {\n document,\n x,\n y\n } = this;\n var {\n mouse\n } = document.screen;\n var fontSize = new Property(document, 'fontSize', Font.parse(document.ctx.font).fontSize); // Do not calc bounding box if mouse is not working.\n\n if (mouse.isWorking()) {\n mouse.checkBoundingBox(this, new BoundingBox(x, y - fontSize.getPixels('y'), x + this.measureText(ctx), y));\n }\n } else if (this.children.length > 0) {\n // render as temporary group\n var g = new GElement(this.document, null);\n g.children = this.children;\n g.parent = this;\n g.render(ctx);\n }\n }\n\n onClick() {\n var {\n window\n } = this.document;\n\n if (window) {\n window.open(this.getHrefAttribute().getString());\n }\n }\n\n onMouseMove() {\n var ctx = this.document.ctx;\n ctx.canvas.style.cursor = 'pointer';\n }\n\n}\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nclass TextPathElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'textPath';\n this.textWidth = 0;\n this.textHeight = 0;\n this.pathLength = -1;\n this.glyphInfo = null;\n this.letterSpacingCache = [];\n this.measuresCache = new Map([['', 0]]);\n var pathElement = this.getHrefAttribute().getDefinition();\n this.text = this.getTextFromNode();\n this.dataArray = this.parsePathData(pathElement);\n }\n\n getText() {\n return this.text;\n }\n\n path(ctx) {\n var {\n dataArray\n } = this;\n\n if (ctx) {\n ctx.beginPath();\n }\n\n dataArray.forEach(_ref => {\n var {\n type,\n points\n } = _ref;\n\n switch (type) {\n case PathParser.LINE_TO:\n if (ctx) {\n ctx.lineTo(points[0], points[1]);\n }\n\n break;\n\n case PathParser.MOVE_TO:\n if (ctx) {\n ctx.moveTo(points[0], points[1]);\n }\n\n break;\n\n case PathParser.CURVE_TO:\n if (ctx) {\n ctx.bezierCurveTo(points[0], points[1], points[2], points[3], points[4], points[5]);\n }\n\n break;\n\n case PathParser.QUAD_TO:\n if (ctx) {\n ctx.quadraticCurveTo(points[0], points[1], points[2], points[3]);\n }\n\n break;\n\n case PathParser.ARC:\n {\n var [cx, cy, rx, ry, theta, dTheta, psi, fs] = points;\n var r = rx > ry ? rx : ry;\n var scaleX = rx > ry ? 1 : rx / ry;\n var scaleY = rx > ry ? ry / rx : 1;\n\n if (ctx) {\n ctx.translate(cx, cy);\n ctx.rotate(psi);\n ctx.scale(scaleX, scaleY);\n ctx.arc(0, 0, r, theta, theta + dTheta, Boolean(1 - fs));\n ctx.scale(1 / scaleX, 1 / scaleY);\n ctx.rotate(-psi);\n ctx.translate(-cx, -cy);\n }\n\n break;\n }\n\n case PathParser.CLOSE_PATH:\n if (ctx) {\n ctx.closePath();\n }\n\n break;\n }\n });\n }\n\n renderChildren(ctx) {\n this.setTextData(ctx);\n ctx.save();\n var textDecoration = this.parent.getStyle('text-decoration').getString();\n var fontSize = this.getFontSize();\n var {\n glyphInfo\n } = this;\n var fill = ctx.fillStyle;\n\n if (textDecoration === 'underline') {\n ctx.beginPath();\n }\n\n glyphInfo.forEach((glyph, i) => {\n var {\n p0,\n p1,\n rotation,\n text: partialText\n } = glyph;\n ctx.save();\n ctx.translate(p0.x, p0.y);\n ctx.rotate(rotation);\n\n if (ctx.fillStyle) {\n ctx.fillText(partialText, 0, 0);\n }\n\n if (ctx.strokeStyle) {\n ctx.strokeText(partialText, 0, 0);\n }\n\n ctx.restore();\n\n if (textDecoration === 'underline') {\n if (i === 0) {\n ctx.moveTo(p0.x, p0.y + fontSize / 8);\n }\n\n ctx.lineTo(p1.x, p1.y + fontSize / 5);\n } // // To assist with debugging visually, uncomment following\n //\n // ctx.beginPath();\n // if (i % 2)\n // \tctx.strokeStyle = 'red';\n // else\n // \tctx.strokeStyle = 'green';\n // ctx.moveTo(p0.x, p0.y);\n // ctx.lineTo(p1.x, p1.y);\n // ctx.stroke();\n // ctx.closePath();\n\n });\n\n if (textDecoration === 'underline') {\n ctx.lineWidth = fontSize / 20;\n ctx.strokeStyle = fill;\n ctx.stroke();\n ctx.closePath();\n }\n\n ctx.restore();\n }\n\n getLetterSpacingAt() {\n var idx = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n return this.letterSpacingCache[idx] || 0;\n }\n\n findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, inputOffset, dy, c, charI) {\n var offset = inputOffset;\n var glyphWidth = this.measureText(ctx, c);\n\n if (c === ' ' && anchor === 'justify' && textFullWidth < fullPathWidth) {\n glyphWidth += (fullPathWidth - textFullWidth) / spacesNumber;\n }\n\n if (charI > -1) {\n offset += this.getLetterSpacingAt(charI);\n }\n\n var splineStep = this.textHeight / 20;\n var p0 = this.getEquidistantPointOnPath(offset, splineStep, 0);\n var p1 = this.getEquidistantPointOnPath(offset + glyphWidth, splineStep, 0);\n var segment = {\n p0,\n p1\n };\n var rotation = p0 && p1 ? Math.atan2(p1.y - p0.y, p1.x - p0.x) : 0;\n\n if (dy) {\n var dyX = Math.cos(Math.PI / 2 + rotation) * dy;\n var dyY = Math.cos(-rotation) * dy;\n segment.p0 = _objectSpread$2(_objectSpread$2({}, p0), {}, {\n x: p0.x + dyX,\n y: p0.y + dyY\n });\n segment.p1 = _objectSpread$2(_objectSpread$2({}, p1), {}, {\n x: p1.x + dyX,\n y: p1.y + dyY\n });\n }\n\n offset += glyphWidth;\n return {\n offset,\n segment,\n rotation\n };\n }\n\n measureText(ctx, text) {\n var {\n measuresCache\n } = this;\n var targetText = text || this.getText();\n\n if (measuresCache.has(targetText)) {\n return measuresCache.get(targetText);\n }\n\n var measure = this.measureTargetText(ctx, targetText);\n measuresCache.set(targetText, measure);\n return measure;\n } // This method supposes what all custom fonts already loaded.\n // If some font will be loaded after this method call, <textPath> will not be rendered correctly.\n // You need to call this method manually to update glyphs cache.\n\n\n setTextData(ctx) {\n if (this.glyphInfo) {\n return;\n }\n\n var renderText = this.getText();\n var chars = renderText.split('');\n var spacesNumber = renderText.split(' ').length - 1;\n var dx = this.parent.getAttribute('dx').split().map(_ => _.getPixels('x'));\n var dy = this.parent.getAttribute('dy').getPixels('y');\n var anchor = this.parent.getStyle('text-anchor').getString('start');\n var thisSpacing = this.getStyle('letter-spacing');\n var parentSpacing = this.parent.getStyle('letter-spacing');\n var letterSpacing = 0;\n\n if (!thisSpacing.hasValue() || thisSpacing.getValue() === 'inherit') {\n letterSpacing = parentSpacing.getPixels();\n } else if (thisSpacing.hasValue()) {\n if (thisSpacing.getValue() !== 'initial' && thisSpacing.getValue() !== 'unset') {\n letterSpacing = thisSpacing.getPixels();\n }\n } // fill letter-spacing cache\n\n\n var letterSpacingCache = [];\n var textLen = renderText.length;\n this.letterSpacingCache = letterSpacingCache;\n\n for (var i = 0; i < textLen; i++) {\n letterSpacingCache.push(typeof dx[i] !== 'undefined' ? dx[i] : letterSpacing);\n }\n\n var dxSum = letterSpacingCache.reduce((acc, cur, i) => i === 0 ? 0 : acc + cur || 0, 0);\n var textWidth = this.measureText(ctx);\n var textFullWidth = Math.max(textWidth + dxSum, 0);\n this.textWidth = textWidth;\n this.textHeight = this.getFontSize();\n this.glyphInfo = [];\n var fullPathWidth = this.getPathLength();\n var startOffset = this.getStyle('startOffset').getNumber(0) * fullPathWidth;\n var offset = 0;\n\n if (anchor === 'middle' || anchor === 'center') {\n offset = -textFullWidth / 2;\n }\n\n if (anchor === 'end' || anchor === 'right') {\n offset = -textFullWidth;\n }\n\n offset += startOffset;\n chars.forEach((char, i) => {\n // Find such segment what distance between p0 and p1 is approx. width of glyph\n var {\n offset: nextOffset,\n segment,\n rotation\n } = this.findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, offset, dy, char, i);\n offset = nextOffset;\n\n if (!segment.p0 || !segment.p1) {\n return;\n } // const width = this.getLineLength(\n // \tsegment.p0.x,\n // \tsegment.p0.y,\n // \tsegment.p1.x,\n // \tsegment.p1.y\n // );\n // Note: Since glyphs are rendered one at a time, any kerning pair data built into the font will not be used.\n // Can foresee having a rough pair table built in that the developer can override as needed.\n // Or use \"dx\" attribute of the <text> node as a naive replacement\n // const kern = 0;\n // placeholder for future implementation\n // const midpoint = this.getPointOnLine(\n // \tkern + width / 2.0,\n // \tsegment.p0.x, segment.p0.y, segment.p1.x, segment.p1.y\n // );\n\n\n this.glyphInfo.push({\n // transposeX: midpoint.x,\n // transposeY: midpoint.y,\n text: chars[i],\n p0: segment.p0,\n p1: segment.p1,\n rotation\n });\n });\n }\n\n parsePathData(path) {\n this.pathLength = -1; // reset path length\n\n if (!path) {\n return [];\n }\n\n var pathCommands = [];\n var {\n pathParser\n } = path;\n pathParser.reset(); // convert l, H, h, V, and v to L\n\n while (!pathParser.isEnd()) {\n var {\n current\n } = pathParser;\n var startX = current ? current.x : 0;\n var startY = current ? current.y : 0;\n var command = pathParser.next();\n var nextCommandType = command.type;\n var points = [];\n\n switch (command.type) {\n case PathParser.MOVE_TO:\n this.pathM(pathParser, points);\n break;\n\n case PathParser.LINE_TO:\n nextCommandType = this.pathL(pathParser, points);\n break;\n\n case PathParser.HORIZ_LINE_TO:\n nextCommandType = this.pathH(pathParser, points);\n break;\n\n case PathParser.VERT_LINE_TO:\n nextCommandType = this.pathV(pathParser, points);\n break;\n\n case PathParser.CURVE_TO:\n this.pathC(pathParser, points);\n break;\n\n case PathParser.SMOOTH_CURVE_TO:\n nextCommandType = this.pathS(pathParser, points);\n break;\n\n case PathParser.QUAD_TO:\n this.pathQ(pathParser, points);\n break;\n\n case PathParser.SMOOTH_QUAD_TO:\n nextCommandType = this.pathT(pathParser, points);\n break;\n\n case PathParser.ARC:\n points = this.pathA(pathParser);\n break;\n\n case PathParser.CLOSE_PATH:\n PathElement.pathZ(pathParser);\n break;\n }\n\n if (command.type !== PathParser.CLOSE_PATH) {\n pathCommands.push({\n type: nextCommandType,\n points,\n start: {\n x: startX,\n y: startY\n },\n pathLength: this.calcLength(startX, startY, nextCommandType, points)\n });\n } else {\n pathCommands.push({\n type: PathParser.CLOSE_PATH,\n points: [],\n pathLength: 0\n });\n }\n }\n\n return pathCommands;\n }\n\n pathM(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathM(pathParser).point;\n points.push(x, y);\n }\n\n pathL(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathL(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathH(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathH(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathV(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathV(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathC(pathParser, points) {\n var {\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathC(pathParser);\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n\n pathS(pathParser, points) {\n var {\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathS(pathParser);\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n return PathParser.CURVE_TO;\n }\n\n pathQ(pathParser, points) {\n var {\n controlPoint,\n currentPoint\n } = PathElement.pathQ(pathParser);\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n\n pathT(pathParser, points) {\n var {\n controlPoint,\n currentPoint\n } = PathElement.pathT(pathParser);\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n return PathParser.QUAD_TO;\n }\n\n pathA(pathParser) {\n var {\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n } = PathElement.pathA(pathParser);\n\n if (sweepFlag === 0 && ad > 0) {\n ad -= 2 * Math.PI;\n }\n\n if (sweepFlag === 1 && ad < 0) {\n ad += 2 * Math.PI;\n }\n\n return [centp.x, centp.y, rX, rY, a1, ad, xAxisRotation, sweepFlag];\n }\n\n calcLength(x, y, commandType, points) {\n var len = 0;\n var p1 = null;\n var p2 = null;\n var t = 0;\n\n switch (commandType) {\n case PathParser.LINE_TO:\n return this.getLineLength(x, y, points[0], points[1]);\n\n case PathParser.CURVE_TO:\n // Approximates by breaking curve into 100 line segments\n len = 0.0;\n p1 = this.getPointOnCubicBezier(0, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = this.getPointOnCubicBezier(t, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n\n return len;\n\n case PathParser.QUAD_TO:\n // Approximates by breaking curve into 100 line segments\n len = 0.0;\n p1 = this.getPointOnQuadraticBezier(0, x, y, points[0], points[1], points[2], points[3]);\n\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = this.getPointOnQuadraticBezier(t, x, y, points[0], points[1], points[2], points[3]);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n\n return len;\n\n case PathParser.ARC:\n {\n // Approximates by breaking curve into line segments\n len = 0.0;\n var start = points[4]; // 4 = theta\n\n var dTheta = points[5]; // 5 = dTheta\n\n var end = points[4] + dTheta;\n var inc = Math.PI / 180.0; // 1 degree resolution\n\n if (Math.abs(start - end) < inc) {\n inc = Math.abs(start - end);\n } // Note: for purpose of calculating arc length, not going to worry about rotating X-axis by angle psi\n\n\n p1 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], start, 0);\n\n if (dTheta < 0) {\n // clockwise\n for (t = start - inc; t > end; t -= inc) {\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n } else {\n // counter-clockwise\n for (t = start + inc; t < end; t += inc) {\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n }\n\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], end, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n return len;\n }\n }\n\n return 0;\n }\n\n getPointOnLine(dist, p1x, p1y, p2x, p2y) {\n var fromX = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : p1x;\n var fromY = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : p1y;\n var m = (p2y - p1y) / (p2x - p1x + PSEUDO_ZERO);\n var run = Math.sqrt(dist * dist / (1 + m * m));\n\n if (p2x < p1x) {\n run *= -1;\n }\n\n var rise = m * run;\n var pt = null;\n\n if (p2x === p1x) {\n // vertical line\n pt = {\n x: fromX,\n y: fromY + rise\n };\n } else if ((fromY - p1y) / (fromX - p1x + PSEUDO_ZERO) === m) {\n pt = {\n x: fromX + run,\n y: fromY + rise\n };\n } else {\n var ix = 0;\n var iy = 0;\n var len = this.getLineLength(p1x, p1y, p2x, p2y);\n\n if (len < PSEUDO_ZERO) {\n return null;\n }\n\n var u = (fromX - p1x) * (p2x - p1x) + (fromY - p1y) * (p2y - p1y);\n u /= len * len;\n ix = p1x + u * (p2x - p1x);\n iy = p1y + u * (p2y - p1y);\n var pRise = this.getLineLength(fromX, fromY, ix, iy);\n var pRun = Math.sqrt(dist * dist - pRise * pRise);\n run = Math.sqrt(pRun * pRun / (1 + m * m));\n\n if (p2x < p1x) {\n run *= -1;\n }\n\n rise = m * run;\n pt = {\n x: ix + run,\n y: iy + rise\n };\n }\n\n return pt;\n }\n\n getPointOnPath(distance) {\n var fullLen = this.getPathLength();\n var cumulativePathLength = 0;\n var p = null;\n\n if (distance < -0.00005 || distance - 0.00005 > fullLen) {\n return null;\n }\n\n var {\n dataArray\n } = this;\n\n for (var command of dataArray) {\n if (command && (command.pathLength < 0.00005 || cumulativePathLength + command.pathLength + 0.00005 < distance)) {\n cumulativePathLength += command.pathLength;\n continue;\n }\n\n var delta = distance - cumulativePathLength;\n var currentT = 0;\n\n switch (command.type) {\n case PathParser.LINE_TO:\n p = this.getPointOnLine(delta, command.start.x, command.start.y, command.points[0], command.points[1], command.start.x, command.start.y);\n break;\n\n case PathParser.ARC:\n {\n var start = command.points[4]; // 4 = theta\n\n var dTheta = command.points[5]; // 5 = dTheta\n\n var end = command.points[4] + dTheta;\n currentT = start + delta / command.pathLength * dTheta;\n\n if (dTheta < 0 && currentT < end || dTheta >= 0 && currentT > end) {\n break;\n }\n\n p = this.getPointOnEllipticalArc(command.points[0], command.points[1], command.points[2], command.points[3], currentT, command.points[6]);\n break;\n }\n\n case PathParser.CURVE_TO:\n currentT = delta / command.pathLength;\n\n if (currentT > 1) {\n currentT = 1;\n }\n\n p = this.getPointOnCubicBezier(currentT, command.start.x, command.start.y, command.points[0], command.points[1], command.points[2], command.points[3], command.points[4], command.points[5]);\n break;\n\n case PathParser.QUAD_TO:\n currentT = delta / command.pathLength;\n\n if (currentT > 1) {\n currentT = 1;\n }\n\n p = this.getPointOnQuadraticBezier(currentT, command.start.x, command.start.y, command.points[0], command.points[1], command.points[2], command.points[3]);\n break;\n }\n\n if (p) {\n return p;\n }\n\n break;\n }\n\n return null;\n }\n\n getLineLength(x1, y1, x2, y2) {\n return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n }\n\n getPathLength() {\n if (this.pathLength === -1) {\n this.pathLength = this.dataArray.reduce((length, command) => command.pathLength > 0 ? length + command.pathLength : length, 0);\n }\n\n return this.pathLength;\n }\n\n getPointOnCubicBezier(pct, p1x, p1y, p2x, p2y, p3x, p3y, p4x, p4y) {\n var x = p4x * CB1(pct) + p3x * CB2(pct) + p2x * CB3(pct) + p1x * CB4(pct);\n var y = p4y * CB1(pct) + p3y * CB2(pct) + p2y * CB3(pct) + p1y * CB4(pct);\n return {\n x,\n y\n };\n }\n\n getPointOnQuadraticBezier(pct, p1x, p1y, p2x, p2y, p3x, p3y) {\n var x = p3x * QB1(pct) + p2x * QB2(pct) + p1x * QB3(pct);\n var y = p3y * QB1(pct) + p2y * QB2(pct) + p1y * QB3(pct);\n return {\n x,\n y\n };\n }\n\n getPointOnEllipticalArc(cx, cy, rx, ry, theta, psi) {\n var cosPsi = Math.cos(psi);\n var sinPsi = Math.sin(psi);\n var pt = {\n x: rx * Math.cos(theta),\n y: ry * Math.sin(theta)\n };\n return {\n x: cx + (pt.x * cosPsi - pt.y * sinPsi),\n y: cy + (pt.x * sinPsi + pt.y * cosPsi)\n };\n } // TODO need some optimisations. possibly build cache only for curved segments?\n\n\n buildEquidistantCache(inputStep, inputPrecision) {\n var fullLen = this.getPathLength();\n var precision = inputPrecision || 0.25; // accuracy vs performance\n\n var step = inputStep || fullLen / 100;\n\n if (!this.equidistantCache || this.equidistantCache.step !== step || this.equidistantCache.precision !== precision) {\n // Prepare cache\n this.equidistantCache = {\n step,\n precision,\n points: []\n }; // Calculate points\n\n var s = 0;\n\n for (var l = 0; l <= fullLen; l += precision) {\n var p0 = this.getPointOnPath(l);\n var p1 = this.getPointOnPath(l + precision);\n\n if (!p0 || !p1) {\n continue;\n }\n\n s += this.getLineLength(p0.x, p0.y, p1.x, p1.y);\n\n if (s >= step) {\n this.equidistantCache.points.push({\n x: p0.x,\n y: p0.y,\n distance: l\n });\n s -= step;\n }\n }\n }\n }\n\n getEquidistantPointOnPath(targetDistance, step, precision) {\n this.buildEquidistantCache(step, precision);\n\n if (targetDistance < 0 || targetDistance - this.getPathLength() > 0.00005) {\n return null;\n }\n\n var idx = Math.round(targetDistance / this.getPathLength() * (this.equidistantCache.points.length - 1));\n return this.equidistantCache.points[idx] || null;\n }\n\n}\n\nvar dataUriRegex = /^\\s*data:(([^/,;]+\\/[^/,;]+)(?:;([^,;=]+=[^,;=]+))?)?(?:;(base64))?,(.*)$/i;\nclass ImageElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'image';\n this.loaded = false;\n var href = this.getHrefAttribute().getString();\n\n if (!href) {\n return;\n }\n\n var isSvg = href.endsWith('.svg') || /^\\s*data:image\\/svg\\+xml/i.test(href);\n document.images.push(this);\n\n if (!isSvg) {\n void this.loadImage(href);\n } else {\n void this.loadSvg(href);\n }\n\n this.isSvg = isSvg;\n }\n\n loadImage(href) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n try {\n var image = yield _this.document.createImage(href);\n _this.image = image;\n } catch (err) {\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), err);\n }\n\n _this.loaded = true;\n })();\n }\n\n loadSvg(href) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var match = dataUriRegex.exec(href);\n\n if (match) {\n var data = match[5];\n\n if (match[4] === 'base64') {\n _this2.image = atob(data);\n } else {\n _this2.image = decodeURIComponent(data);\n }\n } else {\n try {\n var response = yield _this2.document.fetch(href);\n var svg = yield response.text();\n _this2.image = svg;\n } catch (err) {\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), err);\n }\n }\n\n _this2.loaded = true;\n })();\n }\n\n renderChildren(ctx) {\n var {\n document,\n image,\n loaded\n } = this;\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n\n if (!loaded || !image || !width || !height) {\n return;\n }\n\n ctx.save();\n ctx.translate(x, y);\n\n if (this.isSvg) {\n var subDocument = document.canvg.forkString(ctx, this.image, {\n ignoreMouse: true,\n ignoreAnimation: true,\n ignoreDimensions: true,\n ignoreClear: true,\n offsetX: 0,\n offsetY: 0,\n scaleWidth: width,\n scaleHeight: height\n });\n subDocument.document.documentElement.parent = this;\n void subDocument.render();\n } else {\n var _image = this.image;\n document.setViewBox({\n ctx,\n aspectRatio: this.getAttribute('preserveAspectRatio').getString(),\n width,\n desiredWidth: _image.width,\n height,\n desiredHeight: _image.height\n });\n\n if (this.loaded) {\n if (typeof _image.complete === 'undefined' || _image.complete) {\n ctx.drawImage(_image, 0, 0);\n }\n }\n }\n\n ctx.restore();\n }\n\n getBoundingBox() {\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n return new BoundingBox(x, y, x + width, y + height);\n }\n\n}\n\nclass SymbolElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'symbol';\n }\n\n render(_) {// NO RENDER\n }\n\n}\n\nclass SVGFontLoader {\n constructor(document) {\n this.document = document;\n this.loaded = false;\n document.fonts.push(this);\n }\n\n load(fontFamily, url) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n try {\n var {\n document\n } = _this;\n var svgDocument = yield document.canvg.parser.load(url);\n var fonts = svgDocument.getElementsByTagName('font');\n Array.from(fonts).forEach(fontNode => {\n var font = document.createElement(fontNode);\n document.definitions[fontFamily] = font;\n });\n } catch (err) {\n console.error(\"Error while loading font \\\"\".concat(url, \"\\\":\"), err);\n }\n\n _this.loaded = true;\n })();\n }\n\n}\n\nclass StyleElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'style';\n var css = compressSpaces(Array.from(node.childNodes) // NEED TEST\n .map(_ => _.textContent).join('').replace(/(\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+\\/)|(^[\\s]*\\/\\/.*)/gm, '') // remove comments\n .replace(/@import.*;/g, '') // remove imports\n );\n var cssDefs = css.split('}');\n cssDefs.forEach(_ => {\n var def = _.trim();\n\n if (!def) {\n return;\n }\n\n var cssParts = def.split('{');\n var cssClasses = cssParts[0].split(',');\n var cssProps = cssParts[1].split(';');\n cssClasses.forEach(_ => {\n var cssClass = _.trim();\n\n if (!cssClass) {\n return;\n }\n\n var props = document.styles[cssClass] || {};\n cssProps.forEach(cssProp => {\n var prop = cssProp.indexOf(':');\n var name = cssProp.substr(0, prop).trim();\n var value = cssProp.substr(prop + 1, cssProp.length - prop).trim();\n\n if (name && value) {\n props[name] = new Property(document, name, value);\n }\n });\n document.styles[cssClass] = props;\n document.stylesSpecificity[cssClass] = getSelectorSpecificity(cssClass);\n\n if (cssClass === '@font-face') {\n // && !nodeEnv\n var fontFamily = props['font-family'].getString().replace(/\"|'/g, '');\n var srcs = props.src.getString().split(',');\n srcs.forEach(src => {\n if (src.indexOf('format(\"svg\")') > 0) {\n var url = parseExternalUrl(src);\n\n if (url) {\n void new SVGFontLoader(document).load(fontFamily, url);\n }\n }\n });\n }\n });\n });\n }\n\n}\nStyleElement.parseExternalUrl = parseExternalUrl;\n\nclass UseElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'use';\n }\n\n setContext(ctx) {\n super.setContext(ctx);\n var xAttr = this.getAttribute('x');\n var yAttr = this.getAttribute('y');\n\n if (xAttr.hasValue()) {\n ctx.translate(xAttr.getPixels('x'), 0);\n }\n\n if (yAttr.hasValue()) {\n ctx.translate(0, yAttr.getPixels('y'));\n }\n }\n\n path(ctx) {\n var {\n element\n } = this;\n\n if (element) {\n element.path(ctx);\n }\n }\n\n renderChildren(ctx) {\n var {\n document,\n element\n } = this;\n\n if (element) {\n var tempSvg = element;\n\n if (element.type === 'symbol') {\n // render me using a temporary svg element in symbol cases (http://www.w3.org/TR/SVG/struct.html#UseElement)\n tempSvg = new SVGElement(document, null);\n tempSvg.attributes.viewBox = new Property(document, 'viewBox', element.getAttribute('viewBox').getString());\n tempSvg.attributes.preserveAspectRatio = new Property(document, 'preserveAspectRatio', element.getAttribute('preserveAspectRatio').getString());\n tempSvg.attributes.overflow = new Property(document, 'overflow', element.getAttribute('overflow').getString());\n tempSvg.children = element.children; // element is still the parent of the children\n\n element.styles.opacity = new Property(document, 'opacity', this.calculateOpacity());\n }\n\n if (tempSvg.type === 'svg') {\n var widthStyle = this.getStyle('width', false, true);\n var heightStyle = this.getStyle('height', false, true); // if symbol or svg, inherit width/height from me\n\n if (widthStyle.hasValue()) {\n tempSvg.attributes.width = new Property(document, 'width', widthStyle.getString());\n }\n\n if (heightStyle.hasValue()) {\n tempSvg.attributes.height = new Property(document, 'height', heightStyle.getString());\n }\n }\n\n var oldParent = tempSvg.parent;\n tempSvg.parent = this;\n tempSvg.render(ctx);\n tempSvg.parent = oldParent;\n }\n }\n\n getBoundingBox(ctx) {\n var {\n element\n } = this;\n\n if (element) {\n return element.getBoundingBox(ctx);\n }\n\n return null;\n }\n\n elementTransform() {\n var {\n document,\n element\n } = this;\n return Transform.fromElement(document, element);\n }\n\n get element() {\n if (!this.cachedElement) {\n this.cachedElement = this.getHrefAttribute().getDefinition();\n }\n\n return this.cachedElement;\n }\n\n}\n\nfunction imGet(img, x, y, width, _height, rgba) {\n return img[y * width * 4 + x * 4 + rgba];\n}\n\nfunction imSet(img, x, y, width, _height, rgba, val) {\n img[y * width * 4 + x * 4 + rgba] = val;\n}\n\nfunction m(matrix, i, v) {\n var mi = matrix[i];\n return mi * v;\n}\n\nfunction c(a, m1, m2, m3) {\n return m1 + Math.cos(a) * m2 + Math.sin(a) * m3;\n}\n\nclass FeColorMatrixElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feColorMatrix';\n var matrix = toNumbers(this.getAttribute('values').getString());\n\n switch (this.getAttribute('type').getString('matrix')) {\n // http://www.w3.org/TR/SVG/filters.html#feColorMatrixElement\n case 'saturate':\n {\n var s = matrix[0];\n /* eslint-disable array-element-newline */\n\n matrix = [0.213 + 0.787 * s, 0.715 - 0.715 * s, 0.072 - 0.072 * s, 0, 0, 0.213 - 0.213 * s, 0.715 + 0.285 * s, 0.072 - 0.072 * s, 0, 0, 0.213 - 0.213 * s, 0.715 - 0.715 * s, 0.072 + 0.928 * s, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n case 'hueRotate':\n {\n var a = matrix[0] * Math.PI / 180.0;\n /* eslint-disable array-element-newline */\n\n matrix = [c(a, 0.213, 0.787, -0.213), c(a, 0.715, -0.715, -0.715), c(a, 0.072, -0.072, 0.928), 0, 0, c(a, 0.213, -0.213, 0.143), c(a, 0.715, 0.285, 0.140), c(a, 0.072, -0.072, -0.283), 0, 0, c(a, 0.213, -0.213, -0.787), c(a, 0.715, -0.715, 0.715), c(a, 0.072, 0.928, 0.072), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n case 'luminanceToAlpha':\n /* eslint-disable array-element-newline */\n matrix = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2125, 0.7154, 0.0721, 0, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n this.matrix = matrix;\n this.includeOpacity = this.getAttribute('includeOpacity').hasValue();\n }\n\n apply(ctx, _x, _y, width, height) {\n // assuming x==0 && y==0 for now\n var {\n includeOpacity,\n matrix\n } = this;\n var srcData = ctx.getImageData(0, 0, width, height);\n\n for (var y = 0; y < height; y++) {\n for (var x = 0; x < width; x++) {\n var r = imGet(srcData.data, x, y, width, height, 0);\n var g = imGet(srcData.data, x, y, width, height, 1);\n var b = imGet(srcData.data, x, y, width, height, 2);\n var a = imGet(srcData.data, x, y, width, height, 3);\n var nr = m(matrix, 0, r) + m(matrix, 1, g) + m(matrix, 2, b) + m(matrix, 3, a) + m(matrix, 4, 1);\n var ng = m(matrix, 5, r) + m(matrix, 6, g) + m(matrix, 7, b) + m(matrix, 8, a) + m(matrix, 9, 1);\n var nb = m(matrix, 10, r) + m(matrix, 11, g) + m(matrix, 12, b) + m(matrix, 13, a) + m(matrix, 14, 1);\n var na = m(matrix, 15, r) + m(matrix, 16, g) + m(matrix, 17, b) + m(matrix, 18, a) + m(matrix, 19, 1);\n\n if (includeOpacity) {\n nr = 0;\n ng = 0;\n nb = 0;\n na *= a / 255;\n }\n\n imSet(srcData.data, x, y, width, height, 0, nr);\n imSet(srcData.data, x, y, width, height, 1, ng);\n imSet(srcData.data, x, y, width, height, 2, nb);\n imSet(srcData.data, x, y, width, height, 3, na);\n }\n }\n\n ctx.clearRect(0, 0, width, height);\n ctx.putImageData(srcData, 0, 0);\n }\n\n}\n\nclass MaskElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'mask';\n }\n\n apply(ctx, element) {\n var {\n document\n } = this; // render as temp svg\n\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n\n if (!width && !height) {\n var boundingBox = new BoundingBox();\n this.children.forEach(child => {\n boundingBox.addBoundingBox(child.getBoundingBox(ctx));\n });\n x = Math.floor(boundingBox.x1);\n y = Math.floor(boundingBox.y1);\n width = Math.floor(boundingBox.width);\n height = Math.floor(boundingBox.height);\n }\n\n var ignoredStyles = this.removeStyles(element, MaskElement.ignoreStyles);\n var maskCanvas = document.createCanvas(x + width, y + height);\n var maskCtx = maskCanvas.getContext('2d');\n document.screen.setDefaults(maskCtx);\n this.renderChildren(maskCtx); // convert mask to alpha with a fake node\n // TODO: refactor out apply from feColorMatrix\n\n new FeColorMatrixElement(document, {\n nodeType: 1,\n childNodes: [],\n attributes: [{\n nodeName: 'type',\n value: 'luminanceToAlpha'\n }, {\n nodeName: 'includeOpacity',\n value: 'true'\n }]\n }).apply(maskCtx, 0, 0, x + width, y + height);\n var tmpCanvas = document.createCanvas(x + width, y + height);\n var tmpCtx = tmpCanvas.getContext('2d');\n document.screen.setDefaults(tmpCtx);\n element.render(tmpCtx);\n tmpCtx.globalCompositeOperation = 'destination-in';\n tmpCtx.fillStyle = maskCtx.createPattern(maskCanvas, 'no-repeat');\n tmpCtx.fillRect(0, 0, x + width, y + height);\n ctx.fillStyle = tmpCtx.createPattern(tmpCanvas, 'no-repeat');\n ctx.fillRect(0, 0, x + width, y + height); // reassign mask\n\n this.restoreStyles(element, ignoredStyles);\n }\n\n render(_) {// NO RENDER\n }\n\n}\nMaskElement.ignoreStyles = ['mask', 'transform', 'clip-path'];\n\nvar noop = () => {// NOOP\n};\n\nclass ClipPathElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'clipPath';\n }\n\n apply(ctx) {\n var {\n document\n } = this;\n var contextProto = Reflect.getPrototypeOf(ctx);\n var {\n beginPath,\n closePath\n } = ctx;\n\n if (contextProto) {\n contextProto.beginPath = noop;\n contextProto.closePath = noop;\n }\n\n Reflect.apply(beginPath, ctx, []);\n this.children.forEach(child => {\n if (typeof child.path === 'undefined') {\n return;\n }\n\n var transform = typeof child.elementTransform !== 'undefined' ? child.elementTransform() : null; // handle <use />\n\n if (!transform) {\n transform = Transform.fromElement(document, child);\n }\n\n if (transform) {\n transform.apply(ctx);\n }\n\n child.path(ctx);\n\n if (contextProto) {\n contextProto.closePath = closePath;\n }\n\n if (transform) {\n transform.unapply(ctx);\n }\n });\n Reflect.apply(closePath, ctx, []);\n ctx.clip();\n\n if (contextProto) {\n contextProto.beginPath = beginPath;\n contextProto.closePath = closePath;\n }\n }\n\n render(_) {// NO RENDER\n }\n\n}\n\nclass FilterElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'filter';\n }\n\n apply(ctx, element) {\n // render as temp svg\n var {\n document,\n children\n } = this;\n var boundingBox = element.getBoundingBox(ctx);\n\n if (!boundingBox) {\n return;\n }\n\n var px = 0;\n var py = 0;\n children.forEach(child => {\n var efd = child.extraFilterDistance || 0;\n px = Math.max(px, efd);\n py = Math.max(py, efd);\n });\n var width = Math.floor(boundingBox.width);\n var height = Math.floor(boundingBox.height);\n var tmpCanvasWidth = width + 2 * px;\n var tmpCanvasHeight = height + 2 * py;\n\n if (tmpCanvasWidth < 1 || tmpCanvasHeight < 1) {\n return;\n }\n\n var x = Math.floor(boundingBox.x);\n var y = Math.floor(boundingBox.y);\n var ignoredStyles = this.removeStyles(element, FilterElement.ignoreStyles);\n var tmpCanvas = document.createCanvas(tmpCanvasWidth, tmpCanvasHeight);\n var tmpCtx = tmpCanvas.getContext('2d');\n document.screen.setDefaults(tmpCtx);\n tmpCtx.translate(-x + px, -y + py);\n element.render(tmpCtx); // apply filters\n\n children.forEach(child => {\n if (typeof child.apply === 'function') {\n child.apply(tmpCtx, 0, 0, tmpCanvasWidth, tmpCanvasHeight);\n }\n }); // render on me\n\n ctx.drawImage(tmpCanvas, 0, 0, tmpCanvasWidth, tmpCanvasHeight, x - px, y - py, tmpCanvasWidth, tmpCanvasHeight);\n this.restoreStyles(element, ignoredStyles);\n }\n\n render(_) {// NO RENDER\n }\n\n}\nFilterElement.ignoreStyles = ['filter', 'transform', 'clip-path'];\n\nclass FeDropShadowElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feDropShadow';\n this.addStylesFromStyleDefinition();\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeMorphologyElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'feMorphology';\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeCompositeElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'feComposite';\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeGaussianBlurElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feGaussianBlur';\n this.blurRadius = Math.floor(this.getAttribute('stdDeviation').getNumber());\n this.extraFilterDistance = this.blurRadius;\n }\n\n apply(ctx, x, y, width, height) {\n var {\n document,\n blurRadius\n } = this;\n var body = document.window ? document.window.document.body : null;\n var canvas = ctx.canvas; // StackBlur requires canvas be on document\n\n canvas.id = document.getUniqueId();\n\n if (body) {\n canvas.style.display = 'none';\n body.appendChild(canvas);\n }\n\n canvasRGBA(canvas, x, y, width, height, blurRadius);\n\n if (body) {\n body.removeChild(canvas);\n }\n }\n\n}\n\nclass TitleElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'title';\n }\n\n}\n\nclass DescElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'desc';\n }\n\n}\n\nvar elements = {\n 'svg': SVGElement,\n 'rect': RectElement,\n 'circle': CircleElement,\n 'ellipse': EllipseElement,\n 'line': LineElement,\n 'polyline': PolylineElement,\n 'polygon': PolygonElement,\n 'path': PathElement,\n 'pattern': PatternElement,\n 'marker': MarkerElement,\n 'defs': DefsElement,\n 'linearGradient': LinearGradientElement,\n 'radialGradient': RadialGradientElement,\n 'stop': StopElement,\n 'animate': AnimateElement,\n 'animateColor': AnimateColorElement,\n 'animateTransform': AnimateTransformElement,\n 'font': FontElement,\n 'font-face': FontFaceElement,\n 'missing-glyph': MissingGlyphElement,\n 'glyph': GlyphElement,\n 'text': TextElement,\n 'tspan': TSpanElement,\n 'tref': TRefElement,\n 'a': AElement,\n 'textPath': TextPathElement,\n 'image': ImageElement,\n 'g': GElement,\n 'symbol': SymbolElement,\n 'style': StyleElement,\n 'use': UseElement,\n 'mask': MaskElement,\n 'clipPath': ClipPathElement,\n 'filter': FilterElement,\n 'feDropShadow': FeDropShadowElement,\n 'feMorphology': FeMorphologyElement,\n 'feComposite': FeCompositeElement,\n 'feColorMatrix': FeColorMatrixElement,\n 'feGaussianBlur': FeGaussianBlurElement,\n 'title': TitleElement,\n 'desc': DescElement\n};\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction createCanvas(width, height) {\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n}\n\nfunction createImage(_x) {\n return _createImage.apply(this, arguments);\n}\n\nfunction _createImage() {\n _createImage = _asyncToGenerator(function* (src) {\n var anonymousCrossOrigin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var image = document.createElement('img');\n\n if (anonymousCrossOrigin) {\n image.crossOrigin = 'Anonymous';\n }\n\n return new Promise((resolve, reject) => {\n image.onload = () => {\n resolve(image);\n };\n\n image.onerror = (_event, _source, _lineno, _colno, error) => {\n reject(error);\n };\n\n image.src = src;\n });\n });\n return _createImage.apply(this, arguments);\n}\n\nclass Document {\n constructor(canvg) {\n var {\n rootEmSize = 12,\n emSize = 12,\n createCanvas = Document.createCanvas,\n createImage = Document.createImage,\n anonymousCrossOrigin\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.canvg = canvg;\n this.definitions = Object.create(null);\n this.styles = Object.create(null);\n this.stylesSpecificity = Object.create(null);\n this.images = [];\n this.fonts = [];\n this.emSizeStack = [];\n this.uniqueId = 0;\n this.screen = canvg.screen;\n this.rootEmSize = rootEmSize;\n this.emSize = emSize;\n this.createCanvas = createCanvas;\n this.createImage = this.bindCreateImage(createImage, anonymousCrossOrigin);\n this.screen.wait(this.isImagesLoaded.bind(this));\n this.screen.wait(this.isFontsLoaded.bind(this));\n }\n\n bindCreateImage(createImage, anonymousCrossOrigin) {\n if (typeof anonymousCrossOrigin === 'boolean') {\n return (source, forceAnonymousCrossOrigin) => createImage(source, typeof forceAnonymousCrossOrigin === 'boolean' ? forceAnonymousCrossOrigin : anonymousCrossOrigin);\n }\n\n return createImage;\n }\n\n get window() {\n return this.screen.window;\n }\n\n get fetch() {\n return this.screen.fetch;\n }\n\n get ctx() {\n return this.screen.ctx;\n }\n\n get emSize() {\n var {\n emSizeStack\n } = this;\n return emSizeStack[emSizeStack.length - 1];\n }\n\n set emSize(value) {\n var {\n emSizeStack\n } = this;\n emSizeStack.push(value);\n }\n\n popEmSize() {\n var {\n emSizeStack\n } = this;\n emSizeStack.pop();\n }\n\n getUniqueId() {\n return \"canvg\".concat(++this.uniqueId);\n }\n\n isImagesLoaded() {\n return this.images.every(_ => _.loaded);\n }\n\n isFontsLoaded() {\n return this.fonts.every(_ => _.loaded);\n }\n\n createDocumentElement(document) {\n var documentElement = this.createElement(document.documentElement);\n documentElement.root = true;\n documentElement.addStylesFromStyleDefinition();\n this.documentElement = documentElement;\n return documentElement;\n }\n\n createElement(node) {\n var elementType = node.nodeName.replace(/^[^:]+:/, '');\n var ElementType = Document.elementTypes[elementType];\n\n if (typeof ElementType !== 'undefined') {\n return new ElementType(this, node);\n }\n\n return new UnknownElement(this, node);\n }\n\n createTextNode(node) {\n return new TextNode(this, node);\n }\n\n setViewBox(config) {\n this.screen.setViewBox(_objectSpread$1({\n document: this\n }, config));\n }\n\n}\nDocument.createCanvas = createCanvas;\nDocument.createImage = createImage;\nDocument.elementTypes = elements;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n/**\r\n * SVG renderer on canvas.\r\n */\n\nclass Canvg {\n /**\r\n * Main constructor.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG Document.\r\n * @param options - Rendering options.\r\n */\n constructor(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.parser = new Parser(options);\n this.screen = new Screen(ctx, options);\n this.options = options;\n var document = new Document(this, options);\n var documentElement = document.createDocumentElement(svg);\n this.document = document;\n this.documentElement = documentElement;\n }\n /**\r\n * Create Canvg instance from SVG source string or URL.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string or URL.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n static from(ctx, svg) {\n var _arguments = arguments;\n return _asyncToGenerator(function* () {\n var options = _arguments.length > 2 && _arguments[2] !== undefined ? _arguments[2] : {};\n var parser = new Parser(options);\n var svgDocument = yield parser.parse(svg);\n return new Canvg(ctx, svgDocument, options);\n })();\n }\n /**\r\n * Create Canvg instance from SVG source string.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n static fromString(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var parser = new Parser(options);\n var svgDocument = parser.parseFromString(svg);\n return new Canvg(ctx, svgDocument, options);\n }\n /**\r\n * Create new Canvg instance with inherited options.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string or URL.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n fork(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return Canvg.from(ctx, svg, _objectSpread(_objectSpread({}, this.options), options));\n }\n /**\r\n * Create new Canvg instance with inherited options.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n forkString(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return Canvg.fromString(ctx, svg, _objectSpread(_objectSpread({}, this.options), options));\n }\n /**\r\n * Document is ready promise.\r\n * @returns Ready promise.\r\n */\n\n\n ready() {\n return this.screen.ready();\n }\n /**\r\n * Document is ready value.\r\n * @returns Is ready or not.\r\n */\n\n\n isReady() {\n return this.screen.isReady();\n }\n /**\r\n * Render only first frame, ignoring animations and mouse.\r\n * @param options - Rendering options.\r\n */\n\n\n render() {\n var _arguments2 = arguments,\n _this = this;\n\n return _asyncToGenerator(function* () {\n var options = _arguments2.length > 0 && _arguments2[0] !== undefined ? _arguments2[0] : {};\n\n _this.start(_objectSpread({\n enableRedraw: true,\n ignoreAnimation: true,\n ignoreMouse: true\n }, options));\n\n yield _this.ready();\n\n _this.stop();\n })();\n }\n /**\r\n * Start rendering.\r\n * @param options - Render options.\r\n */\n\n\n start() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var {\n documentElement,\n screen,\n options: baseOptions\n } = this;\n screen.start(documentElement, _objectSpread(_objectSpread({\n enableRedraw: true\n }, baseOptions), options));\n }\n /**\r\n * Stop rendering.\r\n */\n\n\n stop() {\n this.screen.stop();\n }\n /**\r\n * Resize SVG to fit in given size.\r\n * @param width\r\n * @param height\r\n * @param preserveAspectRatio\r\n */\n\n\n resize(width) {\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : width;\n var preserveAspectRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n this.documentElement.resize(width, height, preserveAspectRatio);\n }\n\n}\n\nexport { AElement, AnimateColorElement, AnimateElement, AnimateTransformElement, BoundingBox, CB1, CB2, CB3, CB4, Canvg, CircleElement, ClipPathElement, DefsElement, DescElement, Document, Element, EllipseElement, FeColorMatrixElement, FeCompositeElement, FeDropShadowElement, FeGaussianBlurElement, FeMorphologyElement, FilterElement, Font, FontElement, FontFaceElement, GElement, GlyphElement, GradientElement, ImageElement, LineElement, LinearGradientElement, MarkerElement, MaskElement, Matrix, MissingGlyphElement, Mouse, PSEUDO_ZERO, Parser, PathElement, PathParser, PatternElement, Point, PolygonElement, PolylineElement, Property, QB1, QB2, QB3, RadialGradientElement, RectElement, RenderedElement, Rotate, SVGElement, SVGFontLoader, Scale, Screen, Skew, SkewX, SkewY, StopElement, StyleElement, SymbolElement, TRefElement, TSpanElement, TextElement, TextPathElement, TitleElement, Transform, Translate, UnknownElement, UseElement, ViewPort, compressSpaces, Canvg as default, getSelectorSpecificity, normalizeAttributeName, normalizeColor, parseExternalUrl, index as presets, toNumbers, trimLeft, trimRight, vectorMagnitude, vectorsAngle, vectorsRatio };\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZXMuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==\n"],"names":["_asyncToGenerator","RGBColor","requestAnimationFrame","SVGPathData","_defineProperty","canvasRGBA"],"mappings":"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","x_google_ignoreList":[0]}
|