{"version":3,"sources":["webpack:///./node_modules/canvg/node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/iterators.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/native-promise-constructor.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/canvg/lib/index.es.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/a-constructor.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/v8-prototype-define-bug.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/engine-is-ios-pebble.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/dom-token-list-prototype.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/to-property-key.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/engine-is-node.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/try-to-string.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/is-callable.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.string.match.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.string.starts-with.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/global.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/uid.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/get-substitution.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/function-name.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/to-integer-or-infinity.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/is-object.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/rgbcolor/index.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/redefine.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/an-object.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/object-create.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/task.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/stackblur-canvas/dist/stackblur-es.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/has-own-property.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/function-uncurry-this.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/shared.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/performance-now/lib/performance-now.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/is-symbol.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/html.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/to-length.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/fails.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/microtask.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/classof.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.array.index-of.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/iterator-close.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.array.reverse.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.array.reduce.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/function-call.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/set-global.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/export.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/iterate.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/get-method.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/create-property.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/to-string.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/length-of-array-like.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/is-array.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/engine-is-browser.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.string.trim.js","webpack:///./node_modules/raf/index.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/queue.js","webpack:///./node_modules/svg-pathdata/lib/SVGPathData.module.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/array-slice.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/function-apply.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/ordinary-to-primitive.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/object-is-prototype-of.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/is-constructor.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/string-trim-forced.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/to-object.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/a-callable.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/array-slice-simple.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/perform.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/set-species.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/engine-is-webos-webkit.js"],"names":["internalObjectKeys","enumBugKeys","module","exports","Object","keys","O","global","Promise","isObject","classof","wellKnownSymbol","MATCH","it","isRegExp","undefined","offscreen","DOMParser","DOMParserFallback","arguments","length","preset","window","ignoreAnimation","ignoreMouse","width","height","OffscreenCanvas","url","response","fetch","blob","img","createImageBitmap","Reflect","deleteProperty","node","_ref","canvas","createCanvas","createImage","loadImage","index","freeze","__proto__","compressSpaces","str","replace","trimLeft","trimRight","toNumbers","matches","match","map","parseFloat","allUppercase","normalizeAttributeName","name","test","toLowerCase","parseExternalUrl","urlMatch","exec","normalizeColor","color","startsWith","rgbParts","normalizedColor","num","isFloat","String","Math","round","attributeRegex","idRegex","classRegex","pseudoElementRegex","pseudoClassWithBracketsRegex","pseudoClassRegex","elementRegex","findSelectorMatch","selector","regex","getSelectorSpecificity","specificity","currentSelector","delta","join","PSEUDO_ZERO","vectorMagnitude","v","sqrt","pow","vectorsRatio","u","vectorsAngle","acos","CB1","t","CB2","CB3","CB4","QB1","QB2","QB3","Property","document","value","this","isNormalizedColor","separator","getString","trim","split","zeroIsValue","regexp","result","isString","hasValue","asString","endsWith","def","n","rootEmSize","emSize","axisOrIsFontSize","processPercent","axis","isFontSize","viewPort","screen","getNumber","min","computeSize","max","getRem","getEm","getDpi","PI","definitions","element","opacity","getDefinition","createGradient","ctx","createPattern","getHrefAttribute","patternTransform","getAttribute","setValue","textBaselineMapping","getColor","len","commas","i","ok","alpha","toRGBA","ViewPort","viewPorts","push","pop","getCurrent","d","Point","x","y","point","defaultValue","scale","path","points","pathPoints","atan2","transform","xp","yp","Mouse","working","events","eventElements","onClick","bind","onMouseMove","onclick","onmousemove","style","cursor","forEach","run","parent","_ref2","isPointInPath","boundingBox","_ref3","isPointInBox","offsetLeft","offsetTop","offsetParent","scrollX","scrollY","event","mapXY","clientX","clientY","type","eventTarget","defaultWindow","defaultFetch$1","Screen","FRAMERATE","MAX_VIRTUAL_PIXELS","CLIENT_WIDTH","CLIENT_HEIGHT","mouse","animations","waits","frameDuration","isReadyLock","isFirstRender","intervalId","checker","readyPromise","resolve","every","_","resolveReady","strokeStyle","lineCap","lineJoin","miterLimit","aspectRatio","desiredWidth","desiredHeight","minX","minY","refX","refY","clip","clipX","clipY","cleanAspectRatio","aspectRatioAlign","aspectRatioMeetOrSlice","align","meetOrSlice","scaleX","scaleY","scaleMin","scaleMax","finalDesiredWidth","finalDesiredHeight","refXProp","refYProp","hasRefs","translate","getPixels","scaledClipX","scaledClipY","beginPath","moveTo","lineTo","closePath","isMeetMinY","isSliceMaxY","isMeetMinX","isSliceMaxX","enableRedraw","ignoreDimensions","ignoreClear","forceRedraw","scaleWidth","scaleHeight","offsetX","offsetY","isReady","render","now","Date","then","tick","shouldUpdate","runEvents","start","cancel","stop","reduce","animation","update","hasEvents","clear","setCurrent","widthStyle","getStyle","heightStyle","concat","cWidth","clientWidth","cHeight","clientHeight","viewBox","xRatio","yRatio","_widthStyle","isNaN","_heightStyle","transformStyle","clearRect","defaultFetch","DefaultDOMParser","Parser","resource","_this","parseFromString","load","xml","parser","checkDocument","err","parserError","getElementsByTagName","Error","textContent","_this2","text","Translate","parse","applyTransform","Rotate","rotate","transformOrigin","angle","originX","originY","cx","cy","numbers","tx","ty","getRadians","rad","cos","sin","Scale","scaleSize","parseScale","Matrix","matrix","a","b","c","e","f","g","h","det","Skew","skew","super","SkewX","tan","SkewY","parseTransforms","parseTransform","Transform","transforms","data","TransformType","transformTypes","transformOriginXProperty","transformOriginYProperty","apply","unapply","applyToPoint","skewX","skewY","Element","captureTextNodes","attributes","styles","stylesSpecificity","animationFrozen","animationFrozenValue","children","nodeType","Array","from","attribute","nodeName","addStylesFromStyleDefinition","id","childNodes","childNode","addChild","textNode","createTextNode","getText","createIfNotExists","attr","_attr","empty","key","skipAncestors","parentStyle","_style","save","mask","applyEffects","getValue","filter","setContext","renderChildren","clearContext","restore","fromElement","clipPathStyleProp","child","createElement","ignoreChildTypes","includes","styleClasses","some","styleClass","matchesSelector","existingSpecificity","ignoreStyles","toRestore","styleProp","UnknownElement","wrapFontFamily","fontFamily","trimmed","prepareFontFamily","process","prepareFontStyle","fontStyle","targetFontStyle","prepareFontWeight","fontWeight","targetFontWeight","Font","fontVariant","fontSize","inherit","inheritFont","font","parts","set","part","variants","weights","BoundingBox","x1","Number","NaN","y1","x2","y2","addPoint","p0","p1","p2","p3","forX","b2ac","t1","addX","sumCubic","addY","t2","p0x","p0y","p1x","p1y","p2x","p2y","p3x","p3y","bezierCurveAdd","cp1x","cp1y","cp2x","cp2y","addBezierCurve","PathParser","control","current","command","commands","previousCommand","angles","xProp","yProp","makeAbsolute","getPoint","CURVE_TO","SMOOTH_CURVE_TO","QUAD_TO","SMOOTH_QUAD_TO","ox","oy","relative","priorTo","angleTo","addMarkerAngle","j","RenderedElement","modifiedEmSizeStack","opacityStyle","fromMeasure","fillStyleProp","fillOpacityStyleProp","strokeStyleProp","strokeOpacityProp","isUrlDefinition","fillStyle","getFillStyleDefinition","_fillStyle","_fillStyle2","addOpacity","_strokeStyle","_strokeStyle2","strokeWidthStyleProp","newLineWidth","lineWidth","strokeLinecapStyleProp","strokeLinejoinStyleProp","strokeMiterlimitProp","strokeDasharrayStyleProp","strokeDashoffsetProp","gaps","setLineDash","webkitLineDash","mozDash","offset","lineDashOffset","webkitLineDashOffset","mozDashOffset","fontStyleProp","fontStyleStyleProp","fontVariantStyleProp","fontWeightStyleProp","fontSizeStyleProp","fontFamilyStyleProp","toString","isPixels","globalAlpha","calculateOpacity","popEmSize","PathElement","pathParser","reset","isEnd","next","MOVE_TO","pathM","LINE_TO","pathL","HORIZ_LINE_TO","pathH","VERT_LINE_TO","pathV","pathC","pathS","pathQ","pathT","ARC","pathA","CLOSE_PATH","pathZ","getMarkerPoints","getMarkerAngles","markers","checkPath","fillRuleStyleProp","fill","setTransform","stroke","getMarkers","markersLastIndex","markerStartStyleProp","markerMidStyleProp","markerEndStyleProp","marker","_marker","_point","_angle","_marker2","_point2","_angle2","getAsCurrentPoint","addMarker","controlPoint","getAsControlPoint","currentPoint","bezierCurveTo","getReflectedControlPoint","addQuadraticCurve","quadraticCurveTo","rX","rY","xRot","lArcFlag","sweepFlag","xAxisRotation","currp","l","s","cpp","centp","a1","ad","dir","ah","halfWay","r","sx","sy","arc","Boolean","GlyphElement","horizAdvX","unicode","arabicForm","TextElement","measureCache","textBaseline","getTextBaseline","dxAttr","dyAttr","getAnchorDelta","getTElementBoundingBox","initializeCoordinates","childBoundingBox","getChildBoundingBox","addBoundingBox","inheritFontSize","getFontSize","measureText","char","glyph","isArabic","prevChar","nextChar","glyphs","maybeGlyph","missingGlyph","parentNode","indexOf","lastIndex","renderChild","isWorking","checkBoundingBox","getBoundingBox","renderTElementChildren","renderText","customFont","unitsPerEm","fontFace","ctxFont","isRTL","reverse","dx","getGlyph","lw","fillText","strokeText","startI","textAnchor","measureTextRecursive","textParent","xAttr","yAttr","_width","adjustChildCoordinates","measure","measureTargetText","targetText","_measure","TSpanElement","getTextFromNode","TextNode","SVGElement","root","_this$node$parentNode","setDefaults","getComputedStyle","getPropertyValue","fontSizeProp","refXAttr","refYAttr","viewBoxAttr","setViewBox","removeCurrent","preserveAspectRatio","widthAttr","heightAttr","styleAttr","originWidth","originHeight","preserveAspectRatioAttr","RectElement","rxAttr","ryAttr","rx","ry","KAPPA","CircleElement","EllipseElement","LineElement","x0","y0","getPoints","PolylineElement","parsePath","PolygonElement","PatternElement","parentOpacityProp","patternSvg","patternCanvas","patternCtx","getContext","pattern","MarkerElement","orient","markerUnits","markerSvg","overflow","DefsElement","GElement","GradientElement","attributesToInherit","stops","stopsContainer","inheritStopContainer","gradient","getGradient","addParentOpacity","addColorStop","rootView","rect","group","attributeToInherit","colorProp","LinearGradientElement","isBoundingBoxUnits","getGradientUnits","createLinearGradient","RadialGradientElement","fx","fy","fr","createRadialGradient","StopElement","stopOpacity","stopColor","AnimateElement","duration","initialValue","initialUnits","removed","frozen","begin","getMilliseconds","maxDuration","to","values","valuesAttr","attributeType","attributeName","progress","getProgress","newValue","prop","getProperty","getUnits","updated","calcValue","typeAttr","p","lb","floor","ub","ceil","AnimateColorElement","colorFrom","colorTo","AnimateTransformElement","transformFrom","transformTo","FontElement","fontFamilyStyle","FontFaceElement","ascent","descent","MissingGlyphElement","TRefElement","firstChild","AElement","hasText","open","ownKeys$2","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","_objectSpread$2","target","source","getOwnPropertyDescriptors","defineProperties","defineProperty","TextPathElement","textWidth","textHeight","pathLength","glyphInfo","letterSpacingCache","measuresCache","Map","pathElement","dataArray","parsePathData","theta","dTheta","psi","fs","setTextData","textDecoration","rotation","partialText","idx","anchor","textFullWidth","fullPathWidth","spacesNumber","inputOffset","dy","charI","glyphWidth","getLetterSpacingAt","splineStep","getEquidistantPointOnPath","segment","dyX","dyY","has","get","chars","thisSpacing","parentSpacing","letterSpacing","textLen","dxSum","acc","cur","getPathLength","startOffset","nextOffset","findSegmentToFitChar","pathCommands","startX","startY","nextCommandType","calcLength","commandType","getLineLength","getPointOnCubicBezier","getPointOnQuadraticBezier","end","inc","abs","getPointOnEllipticalArc","dist","fromX","fromY","m","rise","pt","ix","iy","pRise","pRun","distance","fullLen","cumulativePathLength","currentT","getPointOnLine","pct","p4x","p4y","cosPsi","sinPsi","inputStep","inputPrecision","precision","step","equidistantCache","getPointOnPath","targetDistance","buildEquidistantCache","dataUriRegex","ImageElement","loaded","href","isSvg","images","loadSvg","image","console","error","atob","decodeURIComponent","svg","subDocument","canvg","forkString","documentElement","_image","complete","drawImage","SymbolElement","SVGFontLoader","fonts","svgDocument","fontNode","StyleElement","css","cssDefs","cssParts","cssClasses","cssProps","cssClass","props","cssProp","substr","srcs","src","UseElement","tempSvg","oldParent","cachedElement","imGet","_height","rgba","imSet","val","mi","m1","m2","m3","FeColorMatrixElement","includeOpacity","_x","_y","srcData","getImageData","nr","ng","nb","na","putImageData","MaskElement","ignoredStyles","removeStyles","maskCanvas","maskCtx","tmpCanvas","tmpCtx","globalCompositeOperation","fillRect","restoreStyles","noop","ClipPathElement","contextProto","getPrototypeOf","elementTransform","FilterElement","px","py","efd","extraFilterDistance","tmpCanvasWidth","tmpCanvasHeight","FeDropShadowElement","FeMorphologyElement","FeCompositeElement","FeGaussianBlurElement","blurRadius","body","getUniqueId","display","appendChild","removeChild","TitleElement","DescElement","elements","ownKeys$1","_objectSpread$1","_createImage","anonymousCrossOrigin","crossOrigin","reject","onload","onerror","_event","_source","_lineno","_colno","Document","emSizeStack","uniqueId","bindCreateImage","wait","isImagesLoaded","isFontsLoaded","forceAnonymousCrossOrigin","elementType","ElementType","elementTypes","config","ownKeys","_objectSpread","Canvg","options","createDocumentElement","_arguments","fromString","ready","_arguments2","baseOptions","resize","isConstructor","tryToString","TypeError","argument","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","aCallable","toObject","IndexedObject","lengthOfArrayLike","createMethod","IS_RIGHT","that","callbackfn","argumentsLength","memo","self","left","right","DESCRIPTORS","fails","writable","prototype","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","anObject","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","CONFIGURABLE","WRITABLE","P","Attributes","configurable","userAgent","Pebble","documentCreateElement","classList","DOMTokenListPrototype","constructor","toPrimitive","isSymbol","$","uncurryThis","toLength","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","un$EndsWith","slice","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","proto","forced","searchString","endPosition","search","F","create","definePropertyModule","UNSCOPABLES","ArrayPrototype","ignoreCase","multiline","dotAll","sticky","aPossiblePrototype","setPrototypeOf","setter","CORRECT_SETTER","call","fixRegExpWellKnownSymbolLogic","getMethod","advanceStringIndex","regExpExec","nativeMatch","maybeCallNative","matcher","RegExp","string","S","res","done","fullUnicode","A","matchStr","un$StartsWith","stringSlice","check","globalThis","Function","redefine","toIndexedObject","addToUnscopables","Iterators","InternalStateModule","defineIterator","ARRAY_ITERATOR","setInternalState","getInternalState","getterFor","iterated","kind","state","Arguments","stringIndexOf","postfix","random","charAt","speciesConstructor","arraySlice","callRegExpExec","regexpExec","stickyHelpers","UNSUPPORTED_Y","MAX_UINT32","$push","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","re","originalExec","SPLIT","nativeSplit","internalSplit","limit","lim","lastLength","output","flags","lastLastIndex","separatorCopy","splitter","C","unicodeMatching","q","z","isCallable","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","position","captures","namedCaptures","replacement","tailPos","ch","capture","aConstructor","SPECIES","defaultConstructor","toAbsoluteIndex","IS_INCLUDES","$this","el","fromIndex","hasOwn","FunctionPrototype","getDescriptor","EXISTS","PROPER","METHOD_NAME","method","hiddenKeys","getOwnPropertyNames","whitespaces","whitespace","ltrim","rtrim","TYPE","aFunction","namespace","$RegExp","MISSED_STICKY","BROKEN_CARET","number","shared","uid","inspectSource","WeakMap","newPromiseCapability","promiseCapability","promise","getOwnPropertyDescriptorModule","exceptions","NATIVE_WEAK_MAP","createNonEnumerableProperty","sharedKey","OBJECT_ALREADY_INITIALIZED","enforce","store","wmget","wmhas","wmset","metadata","facade","STATE","CORRECT_PROTOTYPE_GETTER","IE_PROTO","ObjectPrototype","regexpFlags","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","NPCG_INCLUDED","PATCH","reCopy","raw","groups","charsAdded","strCopy","input","color_string","simple_colors","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","feldspar","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslateblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","violetred","wheat","white","whitesmoke","yellow","yellowgreen","color_defs","example","bits","parseInt","processor","channels","toRGB","toHex","getHelpXML","examples","sc","setAttribute","list_item","list_color","RGBColor","example_div","cssText","list_item_value","RegExpPrototype","KEY","FORCED","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","uncurriedNativeRegExpMethod","methods","nativeMethod","arg2","forceStringMethod","uncurriedNativeMethod","$exec","setGlobal","CONFIGURABLE_FUNCTION_NAME","enforceInternalState","TEMPLATE","unsafe","simple","noTargetGet","activeXDocument","definePropertiesModule","html","GT","LT","PROTOTYPE","SCRIPT","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","JS","contentWindow","NullProtoObject","ActiveXObject","domain","Properties","location","defer","channel","port","IS_IOS","IS_NODE","setImmediate","clearImmediate","Dispatch","MessageChannel","counter","queue","ONREADYSTATECHANGE","fn","runner","listener","post","postMessage","protocol","host","args","nextTick","port2","port1","onmessage","addEventListener","importScripts","setTimeout","_typeof","obj","Symbol","iterator","_classCallCheck","instance","Constructor","mulTable","shgTable","getImageDataFromCanvas","topX","topY","getElementById","context","processCanvasRGBA","radius","imageData","processImageDataRGBA","stackEnd","pixels","div","widthMinus1","heightMinus1","radiusPlus1","sumFactor","stackStart","BlurStack","stack","stackIn","stackOut","yw","yi","mulSum","shgSum","pr","pg","pb","pa","_i","rInSum","gInSum","bInSum","aInSum","rOutSum","gOutSum","bOutSum","aOutSum","rSum","gSum","bSum","aSum","_i2","rbs","paInitial","_a2","_p","_stackOut","_r","_g","_b","_a","_pr","_pg","_pb","_pa","_rOutSum","_gOutSum","_bOutSum","_aOutSum","_rSum","_gSum","_bSum","_aSum","_i3","_gInSum","_bInSum","_aInSum","_rInSum","_i4","_rbs","_p2","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","hasOwnProperty","names","version","Deno","versions","v8","mode","copyright","TO_STRING_TAG","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","performance","hr","uptime","getTime","getBuiltIn","isPrototypeOf","USE_SYMBOL_AS_UID","$Symbol","toIntegerOrInfinity","propertyIsEnumerableModule","createPropertyDescriptor","flush","head","last","notify","toggle","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","exit","enter","observe","characterData","task","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","tag","callee","$IndexOf","arrayMethodIsStrict","un$IndexOf","NEGATIVE_ZERO","STRICT_METHOD","searchElement","getIteratorMethod","usingIterator","iteratorMethod","innerResult","innerError","isArray","un$Reverse","FunctionName","createIteratorConstructor","setToStringTag","IteratorsCore","PROPER_FUNCTION_NAME","IteratorPrototype","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","ENTRIES","returnThis","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","_defineProperty","isForced","feature","detection","normalize","POLYFILL","NATIVE","$reduce","CHROME_VERSION","CHROME_BUG","ordinaryToPrimitive","TO_PRIMITIVE","pref","exoticToPrim","copyConstructorProperties","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","sham","isArrayIteratorMethod","getIterator","iteratorClose","Result","stopped","ResultPrototype","iterable","unboundFunction","iterFn","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","condition","callFn","integer","V","func","objectKeys","propertyKey","V8_VERSION","symbol","propertyIsEnumerable","DOMIterables","ArrayIteratorMethods","ArrayValues","handlePrototype","CollectionPrototype","COLLECTION_NAME","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","functionToString","TAG","Prototype","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","NativePromise","redefineAll","setSpecies","anInstance","iterate","checkCorrectnessOfIteration","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","Queue","IS_BROWSER","PROMISE","getInternalPromiseState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","SUBCLASSING","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","INCORRECT_ITERATION","all","isThenable","callReaction","reaction","exited","handler","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","reason","initEvent","IS_UNHANDLED","isUnhandled","emit","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","add","wrap","capability","$promiseResolve","remaining","alreadyCalled","race","$trim","forcedStringTrimMethod","vendors","suffix","raf","caf","callback","_now","cp","cancelled","handle","polyfill","requestAnimationFrame","cancelAnimationFrame","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","getSubstitution","REPLACE","maybeToString","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_SUPPORTS_NAMED_GROUPS","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","functionalReplace","results","accumulatedResult","nextSourcePosition","replacerArgs","$toString","regExpFlags","TO_STRING","n$ToString","getFlags","NOT_GENERIC","INCORRECT_NAME","R","rf","asyncGeneratorStep","gen","_next","_throw","arg","info","_asyncToGenerator","charCodeAt","CONVERT_TO_STRING","pos","first","second","size","codeAt","PromiseCapability","$$resolve","$$reject","tail","item","entry","o","T","cX","cY","phi1","phi2","N","E","M","I","L","ROUND","TO_ABS","TO_REL","NORMALIZE_HVZ","NORMALIZE_ST","QT_TO_C","INFO","SANITIZE","LINE_COMMANDS","MATRIX","ROTATE","TRANSLATE","SCALE","SKEW_X","atan","SKEW_Y","X_AXIS_SYMMETRY","Y_AXIS_SYMMETRY","A_TO_C","H","ANNOTATE_ARCS","CLONE","CALCULATE_BOUNDS","maxX","maxY","DRAWING_COMMANDS","w","U","toAbs","toRel","normalizeHVZ","normalizeST","qtToC","aToC","sanitize","xSymmetry","ySymmetry","annotateArcs","curNumber","curCommandType","curCommandRelative","canParseCommandOrComma","curNumberHasExp","curNumberHasExpDigits","curNumberHasDecimal","curArgs","finish","SyntaxError","encode","getBounds","NATIVE_SYMBOL","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","description","valueOf","ENUMERABLE_NEXT","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","SHARED","bitmap","non","$propertyIsEnumerable","NASHORN_BUG","1","createProperty","k","fin","CONSTRUCTOR_NAME","error1","error2"],"mappings":"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W,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAClwCC,EAAW,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,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","file":"js/chunk-60740864.b7aa590e.js","sourcesContent":["var internalObjectKeys = require('../internals/object-keys-internal');\r\nvar enumBugKeys = require('../internals/enum-bug-keys');\r\n\r\n// `Object.keys` method\r\n// https://tc39.es/ecma262/#sec-object.keys\r\n// eslint-disable-next-line es/no-object-keys -- safe\r\nmodule.exports = Object.keys || function keys(O) {\r\n return internalObjectKeys(O, enumBugKeys);\r\n};\r\n","module.exports = {};\r\n","var global = require('../internals/global');\r\n\r\nmodule.exports = global.Promise;\r\n","var isObject = require('../internals/is-object');\r\nvar classof = require('../internals/classof-raw');\r\nvar wellKnownSymbol = require('../internals/well-known-symbol');\r\n\r\nvar MATCH = wellKnownSymbol('match');\r\n\r\n// `IsRegExp` abstract operation\r\n// https://tc39.es/ecma262/#sec-isregexp\r\nmodule.exports = function (it) {\r\n var isRegExp;\r\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\r\n};\r\n","import 'core-js/modules/es.promise.js';\r\nimport _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';\r\nimport 'core-js/modules/es.string.match.js';\r\nimport 'core-js/modules/es.string.replace.js';\r\nimport 'core-js/modules/es.string.starts-with.js';\r\nimport 'core-js/modules/es.array.iterator.js';\r\nimport 'core-js/modules/web.dom-collections.iterator.js';\r\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\r\nimport 'core-js/modules/es.array.reduce.js';\r\nimport 'core-js/modules/es.string.ends-with.js';\r\nimport 'core-js/modules/es.string.split.js';\r\nimport requestAnimationFrame from 'raf';\r\nimport 'core-js/modules/es.string.trim.js';\r\nimport RGBColor from 'rgbcolor';\r\nimport 'core-js/modules/es.string.includes.js';\r\nimport 'core-js/modules/es.array.index-of.js';\r\nimport 'core-js/modules/es.array.reverse.js';\r\nimport { SVGPathData } from 'svg-pathdata';\r\nimport 'core-js/modules/es.regexp.to-string.js';\r\nimport { canvasRGBA } from 'stackblur-canvas';\r\n\r\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 */\r\nfunction offscreen() {\r\n var {\r\n DOMParser: DOMParserFallback\r\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\r\n var preset = {\r\n window: null,\r\n ignoreAnimation: true,\r\n ignoreMouse: true,\r\n DOMParser: DOMParserFallback,\r\n\r\n createCanvas(width, height) {\r\n return new OffscreenCanvas(width, height);\r\n },\r\n\r\n createImage(url) {\r\n return _asyncToGenerator(function* () {\r\n var response = yield fetch(url);\r\n var blob = yield response.blob();\r\n var img = yield createImageBitmap(blob);\r\n return img;\r\n })();\r\n }\r\n\r\n };\r\n\r\n if (typeof DOMParser !== 'undefined' || typeof DOMParserFallback === 'undefined') {\r\n Reflect.deleteProperty(preset, 'DOMParser');\r\n }\r\n\r\n return preset;\r\n}\r\n\r\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 */\r\nfunction node(_ref) {\r\n var {\r\n DOMParser,\r\n canvas,\r\n fetch\r\n } = _ref;\r\n return {\r\n window: null,\r\n ignoreAnimation: true,\r\n ignoreMouse: true,\r\n DOMParser,\r\n fetch,\r\n createCanvas: canvas.createCanvas,\r\n createImage: canvas.loadImage\r\n };\r\n}\r\n\r\nvar index = /*#__PURE__*/Object.freeze({\r\n\t__proto__: null,\r\n\toffscreen: offscreen,\r\n\tnode: node\r\n});\r\n\r\n/**\r\n * HTML-safe compress white-spaces.\r\n * @param str - String to compress.\r\n * @returns String.\r\n */\r\nfunction compressSpaces(str) {\r\n return str.replace(/(?!\\u3000)\\s+/gm, ' ');\r\n}\r\n/**\r\n * HTML-safe left trim.\r\n * @param str - String to trim.\r\n * @returns String.\r\n */\r\n\r\nfunction trimLeft(str) {\r\n return str.replace(/^[\\n \\t]+/, '');\r\n}\r\n/**\r\n * HTML-safe right trim.\r\n * @param str - String to trim.\r\n * @returns String.\r\n */\r\n\r\nfunction trimRight(str) {\r\n return str.replace(/[\\n \\t]+$/, '');\r\n}\r\n/**\r\n * String to numbers array.\r\n * @param str - Numbers string.\r\n * @returns Numbers array.\r\n */\r\n\r\nfunction toNumbers(str) {\r\n var matches = (str || '').match(/-?(\\d+(?:\\.\\d*(?:[eE][+-]?\\d+)?)?|\\.\\d+)(?=\\D|$)/gm) || [];\r\n return matches.map(parseFloat);\r\n} // Microsoft Edge fix\r\n\r\nvar allUppercase = /^[A-Z-]+$/;\r\n/**\r\n * Normalize attribute name.\r\n * @param name - Attribute name.\r\n * @returns Normalized attribute name.\r\n */\r\n\r\nfunction normalizeAttributeName(name) {\r\n if (allUppercase.test(name)) {\r\n return name.toLowerCase();\r\n }\r\n\r\n return name;\r\n}\r\n/**\r\n * Parse external URL.\r\n * @param url - CSS url string.\r\n * @returns Parsed URL.\r\n */\r\n\r\nfunction parseExternalUrl(url) {\r\n // single quotes [2]\r\n // v double quotes [3]\r\n // v v no quotes [4]\r\n // v v v\r\n var urlMatch = /url\\(('([^']+)'|\"([^\"]+)\"|([^'\")]+))\\)/.exec(url) || [];\r\n return urlMatch[2] || urlMatch[3] || urlMatch[4];\r\n}\r\n/**\r\n * Transform floats to integers in rgb colors.\r\n * @param color - Color to normalize.\r\n * @returns Normalized color.\r\n */\r\n\r\nfunction normalizeColor(color) {\r\n if (!color.startsWith('rgb')) {\r\n return color;\r\n }\r\n\r\n var rgbParts = 3;\r\n var normalizedColor = color.replace(/\\d+(\\.\\d+)?/g, (num, isFloat) => rgbParts-- && isFloat ? String(Math.round(parseFloat(num))) : num);\r\n return normalizedColor;\r\n}\r\n\r\n// slightly modified version of https://github.com/keeganstreet/specificity/blob/master/specificity.js\r\nvar attributeRegex = /(\\[[^\\]]+\\])/g;\r\nvar idRegex = /(#[^\\s+>~.[:]+)/g;\r\nvar classRegex = /(\\.[^\\s+>~.[:]+)/g;\r\nvar pseudoElementRegex = /(::[^\\s+>~.[:]+|:first-line|:first-letter|:before|:after)/gi;\r\nvar pseudoClassWithBracketsRegex = /(:[\\w-]+\\([^)]*\\))/gi;\r\nvar pseudoClassRegex = /(:[^\\s+>~.[:]+)/g;\r\nvar elementRegex = /([^\\s+>~.[:]+)/g;\r\n\r\nfunction findSelectorMatch(selector, regex) {\r\n var matches = regex.exec(selector);\r\n\r\n if (!matches) {\r\n return [selector, 0];\r\n }\r\n\r\n return [selector.replace(regex, ' '), matches.length];\r\n}\r\n/**\r\n * Measure selector specificity.\r\n * @param selector - Selector to measure.\r\n * @returns Specificity.\r\n */\r\n\r\n\r\nfunction getSelectorSpecificity(selector) {\r\n var specificity = [0, 0, 0];\r\n var currentSelector = selector.replace(/:not\\(([^)]*)\\)/g, ' $1 ').replace(/{[\\s\\S]*/gm, ' ');\r\n var delta = 0;\r\n [currentSelector, delta] = findSelectorMatch(currentSelector, attributeRegex);\r\n specificity[1] += delta;\r\n [currentSelector, delta] = findSelectorMatch(currentSelector, idRegex);\r\n specificity[0] += delta;\r\n [currentSelector, delta] = findSelectorMatch(currentSelector, classRegex);\r\n specificity[1] += delta;\r\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoElementRegex);\r\n specificity[2] += delta;\r\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoClassWithBracketsRegex);\r\n specificity[1] += delta;\r\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoClassRegex);\r\n specificity[1] += delta;\r\n currentSelector = currentSelector.replace(/[*\\s+>~]/g, ' ').replace(/[#.]/g, ' ');\r\n [currentSelector, delta] = findSelectorMatch(currentSelector, elementRegex); // lgtm [js/useless-assignment-to-local]\r\n\r\n specificity[2] += delta;\r\n return specificity.join('');\r\n}\r\n\r\nvar PSEUDO_ZERO = .00000001;\r\n/**\r\n * Vector magnitude.\r\n * @param v\r\n * @returns Number result.\r\n */\r\n\r\nfunction vectorMagnitude(v) {\r\n return Math.sqrt(Math.pow(v[0], 2) + Math.pow(v[1], 2));\r\n}\r\n/**\r\n * Ratio between two vectors.\r\n * @param u\r\n * @param v\r\n * @returns Number result.\r\n */\r\n\r\nfunction vectorsRatio(u, v) {\r\n return (u[0] * v[0] + u[1] * v[1]) / (vectorMagnitude(u) * vectorMagnitude(v));\r\n}\r\n/**\r\n * Angle between two vectors.\r\n * @param u\r\n * @param v\r\n * @returns Number result.\r\n */\r\n\r\nfunction vectorsAngle(u, v) {\r\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vectorsRatio(u, v));\r\n}\r\nfunction CB1(t) {\r\n return t * t * t;\r\n}\r\nfunction CB2(t) {\r\n return 3 * t * t * (1 - t);\r\n}\r\nfunction CB3(t) {\r\n return 3 * t * (1 - t) * (1 - t);\r\n}\r\nfunction CB4(t) {\r\n return (1 - t) * (1 - t) * (1 - t);\r\n}\r\nfunction QB1(t) {\r\n return t * t;\r\n}\r\nfunction QB2(t) {\r\n return 2 * t * (1 - t);\r\n}\r\nfunction QB3(t) {\r\n return (1 - t) * (1 - t);\r\n}\r\n\r\nclass Property {\r\n constructor(document, name, value) {\r\n this.document = document;\r\n this.name = name;\r\n this.value = value;\r\n this.isNormalizedColor = false;\r\n }\r\n\r\n static empty(document) {\r\n return new Property(document, 'EMPTY', '');\r\n }\r\n\r\n split() {\r\n var separator = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ' ';\r\n var {\r\n document,\r\n name\r\n } = this;\r\n return compressSpaces(this.getString()).trim().split(separator).map(value => new Property(document, name, value));\r\n }\r\n\r\n hasValue(zeroIsValue) {\r\n var {\r\n value\r\n } = this;\r\n return value !== null && value !== '' && (zeroIsValue || value !== 0) && typeof value !== 'undefined';\r\n }\r\n\r\n isString(regexp) {\r\n var {\r\n value\r\n } = this;\r\n var result = typeof value === 'string';\r\n\r\n if (!result || !regexp) {\r\n return result;\r\n }\r\n\r\n return regexp.test(value);\r\n }\r\n\r\n isUrlDefinition() {\r\n return this.isString(/^url\\(/);\r\n }\r\n\r\n isPixels() {\r\n if (!this.hasValue()) {\r\n return false;\r\n }\r\n\r\n var asString = this.getString();\r\n\r\n switch (true) {\r\n case asString.endsWith('px'):\r\n case /^[0-9]+$/.test(asString):\r\n return true;\r\n\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n setValue(value) {\r\n this.value = value;\r\n return this;\r\n }\r\n\r\n getValue(def) {\r\n if (typeof def === 'undefined' || this.hasValue()) {\r\n return this.value;\r\n }\r\n\r\n return def;\r\n }\r\n\r\n getNumber(def) {\r\n if (!this.hasValue()) {\r\n if (typeof def === 'undefined') {\r\n return 0;\r\n }\r\n\r\n return parseFloat(def);\r\n }\r\n\r\n var {\r\n value\r\n } = this;\r\n var n = parseFloat(value);\r\n\r\n if (this.isString(/%$/)) {\r\n n /= 100.0;\r\n }\r\n\r\n return n;\r\n }\r\n\r\n getString(def) {\r\n if (typeof def === 'undefined' || this.hasValue()) {\r\n return typeof this.value === 'undefined' ? '' : String(this.value);\r\n }\r\n\r\n return String(def);\r\n }\r\n\r\n getColor(def) {\r\n var color = this.getString(def);\r\n\r\n if (this.isNormalizedColor) {\r\n return color;\r\n }\r\n\r\n this.isNormalizedColor = true;\r\n color = normalizeColor(color);\r\n this.value = color;\r\n return color;\r\n }\r\n\r\n getDpi() {\r\n return 96.0; // TODO: compute?\r\n }\r\n\r\n getRem() {\r\n return this.document.rootEmSize;\r\n }\r\n\r\n getEm() {\r\n return this.document.emSize;\r\n }\r\n\r\n getUnits() {\r\n return this.getString().replace(/[0-9.-]/g, '');\r\n }\r\n\r\n getPixels(axisOrIsFontSize) {\r\n var processPercent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\r\n\r\n if (!this.hasValue()) {\r\n return 0;\r\n }\r\n\r\n var [axis, isFontSize] = typeof axisOrIsFontSize === 'boolean' ? [undefined, axisOrIsFontSize] : [axisOrIsFontSize];\r\n var {\r\n viewPort\r\n } = this.document.screen;\r\n\r\n switch (true) {\r\n case this.isString(/vmin$/):\r\n return this.getNumber() / 100.0 * Math.min(viewPort.computeSize('x'), viewPort.computeSize('y'));\r\n\r\n case this.isString(/vmax$/):\r\n return this.getNumber() / 100.0 * Math.max(viewPort.computeSize('x'), viewPort.computeSize('y'));\r\n\r\n case this.isString(/vw$/):\r\n return this.getNumber() / 100.0 * viewPort.computeSize('x');\r\n\r\n case this.isString(/vh$/):\r\n return this.getNumber() / 100.0 * viewPort.computeSize('y');\r\n\r\n case this.isString(/rem$/):\r\n return this.getNumber() * this.getRem();\r\n\r\n case this.isString(/em$/):\r\n return this.getNumber() * this.getEm();\r\n\r\n case this.isString(/ex$/):\r\n return this.getNumber() * this.getEm() / 2.0;\r\n\r\n case this.isString(/px$/):\r\n return this.getNumber();\r\n\r\n case this.isString(/pt$/):\r\n return this.getNumber() * this.getDpi() * (1.0 / 72.0);\r\n\r\n case this.isString(/pc$/):\r\n return this.getNumber() * 15;\r\n\r\n case this.isString(/cm$/):\r\n return this.getNumber() * this.getDpi() / 2.54;\r\n\r\n case this.isString(/mm$/):\r\n return this.getNumber() * this.getDpi() / 25.4;\r\n\r\n case this.isString(/in$/):\r\n return this.getNumber() * this.getDpi();\r\n\r\n case this.isString(/%$/) && isFontSize:\r\n return this.getNumber() * this.getEm();\r\n\r\n case this.isString(/%$/):\r\n return this.getNumber() * viewPort.computeSize(axis);\r\n\r\n default:\r\n {\r\n var n = this.getNumber();\r\n\r\n if (processPercent && n < 1.0) {\r\n return n * viewPort.computeSize(axis);\r\n }\r\n\r\n return n;\r\n }\r\n }\r\n }\r\n\r\n getMilliseconds() {\r\n if (!this.hasValue()) {\r\n return 0;\r\n }\r\n\r\n if (this.isString(/ms$/)) {\r\n return this.getNumber();\r\n }\r\n\r\n return this.getNumber() * 1000;\r\n }\r\n\r\n getRadians() {\r\n if (!this.hasValue()) {\r\n return 0;\r\n }\r\n\r\n switch (true) {\r\n case this.isString(/deg$/):\r\n return this.getNumber() * (Math.PI / 180.0);\r\n\r\n case this.isString(/grad$/):\r\n return this.getNumber() * (Math.PI / 200.0);\r\n\r\n case this.isString(/rad$/):\r\n return this.getNumber();\r\n\r\n default:\r\n return this.getNumber() * (Math.PI / 180.0);\r\n }\r\n }\r\n\r\n getDefinition() {\r\n var asString = this.getString();\r\n var name = /#([^)'\"]+)/.exec(asString);\r\n\r\n if (name) {\r\n name = name[1];\r\n }\r\n\r\n if (!name) {\r\n name = asString;\r\n }\r\n\r\n return this.document.definitions[name];\r\n }\r\n\r\n getFillStyleDefinition(element, opacity) {\r\n var def = this.getDefinition();\r\n\r\n if (!def) {\r\n return null;\r\n } // gradient\r\n\r\n\r\n if (typeof def.createGradient === 'function') {\r\n return def.createGradient(this.document.ctx, element, opacity);\r\n } // pattern\r\n\r\n\r\n if (typeof def.createPattern === 'function') {\r\n if (def.getHrefAttribute().hasValue()) {\r\n var patternTransform = def.getAttribute('patternTransform');\r\n def = def.getHrefAttribute().getDefinition();\r\n\r\n if (patternTransform.hasValue()) {\r\n def.getAttribute('patternTransform', true).setValue(patternTransform.value);\r\n }\r\n }\r\n\r\n return def.createPattern(this.document.ctx, element, opacity);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n getTextBaseline() {\r\n if (!this.hasValue()) {\r\n return null;\r\n }\r\n\r\n return Property.textBaselineMapping[this.getString()];\r\n }\r\n\r\n addOpacity(opacity) {\r\n var value = this.getColor();\r\n var len = value.length;\r\n var commas = 0; // Simulate old RGBColor version, which can't parse rgba.\r\n\r\n for (var i = 0; i < len; i++) {\r\n if (value[i] === ',') {\r\n commas++;\r\n }\r\n\r\n if (commas === 3) {\r\n break;\r\n }\r\n }\r\n\r\n if (opacity.hasValue() && this.isString() && commas !== 3) {\r\n var color = new RGBColor(value);\r\n\r\n if (color.ok) {\r\n color.alpha = opacity.getNumber();\r\n value = color.toRGBA();\r\n }\r\n }\r\n\r\n return new Property(this.document, this.name, value);\r\n }\r\n\r\n}\r\nProperty.textBaselineMapping = {\r\n 'baseline': 'alphabetic',\r\n 'before-edge': 'top',\r\n 'text-before-edge': 'top',\r\n 'middle': 'middle',\r\n 'central': 'middle',\r\n 'after-edge': 'bottom',\r\n 'text-after-edge': 'bottom',\r\n 'ideographic': 'ideographic',\r\n 'alphabetic': 'alphabetic',\r\n 'hanging': 'hanging',\r\n 'mathematical': 'alphabetic'\r\n};\r\n\r\nclass ViewPort {\r\n constructor() {\r\n this.viewPorts = [];\r\n }\r\n\r\n clear() {\r\n this.viewPorts = [];\r\n }\r\n\r\n setCurrent(width, height) {\r\n this.viewPorts.push({\r\n width,\r\n height\r\n });\r\n }\r\n\r\n removeCurrent() {\r\n this.viewPorts.pop();\r\n }\r\n\r\n getCurrent() {\r\n var {\r\n viewPorts\r\n } = this;\r\n return viewPorts[viewPorts.length - 1];\r\n }\r\n\r\n get width() {\r\n return this.getCurrent().width;\r\n }\r\n\r\n get height() {\r\n return this.getCurrent().height;\r\n }\r\n\r\n computeSize(d) {\r\n if (typeof d === 'number') {\r\n return d;\r\n }\r\n\r\n if (d === 'x') {\r\n return this.width;\r\n }\r\n\r\n if (d === 'y') {\r\n return this.height;\r\n }\r\n\r\n return Math.sqrt(Math.pow(this.width, 2) + Math.pow(this.height, 2)) / Math.sqrt(2);\r\n }\r\n\r\n}\r\n\r\nclass Point {\r\n constructor(x, y) {\r\n this.x = x;\r\n this.y = y;\r\n }\r\n\r\n static parse(point) {\r\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\r\n var [x = defaultValue, y = defaultValue] = toNumbers(point);\r\n return new Point(x, y);\r\n }\r\n\r\n static parseScale(scale) {\r\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\r\n var [x = defaultValue, y = x] = toNumbers(scale);\r\n return new Point(x, y);\r\n }\r\n\r\n static parsePath(path) {\r\n var points = toNumbers(path);\r\n var len = points.length;\r\n var pathPoints = [];\r\n\r\n for (var i = 0; i < len; i += 2) {\r\n pathPoints.push(new Point(points[i], points[i + 1]));\r\n }\r\n\r\n return pathPoints;\r\n }\r\n\r\n angleTo(point) {\r\n return Math.atan2(point.y - this.y, point.x - this.x);\r\n }\r\n\r\n applyTransform(transform) {\r\n var {\r\n x,\r\n y\r\n } = this;\r\n var xp = x * transform[0] + y * transform[2] + transform[4];\r\n var yp = x * transform[1] + y * transform[3] + transform[5];\r\n this.x = xp;\r\n this.y = yp;\r\n }\r\n\r\n}\r\n\r\nclass Mouse {\r\n constructor(screen) {\r\n this.screen = screen;\r\n this.working = false;\r\n this.events = [];\r\n this.eventElements = []; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\r\n\r\n this.onClick = this.onClick.bind(this); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\r\n\r\n this.onMouseMove = this.onMouseMove.bind(this);\r\n }\r\n\r\n isWorking() {\r\n return this.working;\r\n }\r\n\r\n start() {\r\n if (this.working) {\r\n return;\r\n }\r\n\r\n var {\r\n screen,\r\n onClick,\r\n onMouseMove\r\n } = this;\r\n var canvas = screen.ctx.canvas;\r\n canvas.onclick = onClick;\r\n canvas.onmousemove = onMouseMove;\r\n this.working = true;\r\n }\r\n\r\n stop() {\r\n if (!this.working) {\r\n return;\r\n }\r\n\r\n var canvas = this.screen.ctx.canvas;\r\n this.working = false;\r\n canvas.onclick = null;\r\n canvas.onmousemove = null;\r\n }\r\n\r\n hasEvents() {\r\n return this.working && this.events.length > 0;\r\n }\r\n\r\n runEvents() {\r\n if (!this.working) {\r\n return;\r\n }\r\n\r\n var {\r\n screen: document,\r\n events,\r\n eventElements\r\n } = this;\r\n var {\r\n style\r\n } = document.ctx.canvas;\r\n\r\n if (style) {\r\n style.cursor = '';\r\n }\r\n\r\n events.forEach((_ref, i) => {\r\n var {\r\n run\r\n } = _ref;\r\n var element = eventElements[i];\r\n\r\n while (element) {\r\n run(element);\r\n element = element.parent;\r\n }\r\n }); // done running, clear\r\n\r\n this.events = [];\r\n this.eventElements = [];\r\n }\r\n\r\n checkPath(element, ctx) {\r\n if (!this.working || !ctx) {\r\n return;\r\n }\r\n\r\n var {\r\n events,\r\n eventElements\r\n } = this;\r\n events.forEach((_ref2, i) => {\r\n var {\r\n x,\r\n y\r\n } = _ref2;\r\n\r\n if (!eventElements[i] && ctx.isPointInPath && ctx.isPointInPath(x, y)) {\r\n eventElements[i] = element;\r\n }\r\n });\r\n }\r\n\r\n checkBoundingBox(element, boundingBox) {\r\n if (!this.working || !boundingBox) {\r\n return;\r\n }\r\n\r\n var {\r\n events,\r\n eventElements\r\n } = this;\r\n events.forEach((_ref3, i) => {\r\n var {\r\n x,\r\n y\r\n } = _ref3;\r\n\r\n if (!eventElements[i] && boundingBox.isPointInBox(x, y)) {\r\n eventElements[i] = element;\r\n }\r\n });\r\n }\r\n\r\n mapXY(x, y) {\r\n var {\r\n window,\r\n ctx\r\n } = this.screen;\r\n var point = new Point(x, y);\r\n var element = ctx.canvas;\r\n\r\n while (element) {\r\n point.x -= element.offsetLeft;\r\n point.y -= element.offsetTop;\r\n element = element.offsetParent;\r\n }\r\n\r\n if (window.scrollX) {\r\n point.x += window.scrollX;\r\n }\r\n\r\n if (window.scrollY) {\r\n point.y += window.scrollY;\r\n }\r\n\r\n return point;\r\n }\r\n\r\n onClick(event) {\r\n var {\r\n x,\r\n y\r\n } = this.mapXY(event.clientX, event.clientY);\r\n this.events.push({\r\n type: 'onclick',\r\n x,\r\n y,\r\n\r\n run(eventTarget) {\r\n if (eventTarget.onClick) {\r\n eventTarget.onClick();\r\n }\r\n }\r\n\r\n });\r\n }\r\n\r\n onMouseMove(event) {\r\n var {\r\n x,\r\n y\r\n } = this.mapXY(event.clientX, event.clientY);\r\n this.events.push({\r\n type: 'onmousemove',\r\n x,\r\n y,\r\n\r\n run(eventTarget) {\r\n if (eventTarget.onMouseMove) {\r\n eventTarget.onMouseMove();\r\n }\r\n }\r\n\r\n });\r\n }\r\n\r\n}\r\n\r\nvar defaultWindow = typeof window !== 'undefined' ? window : null;\r\nvar defaultFetch$1 = typeof fetch !== 'undefined' ? fetch.bind(undefined) // `fetch` depends on context: `someObject.fetch(...)` will throw error.\r\n: null;\r\nclass Screen {\r\n constructor(ctx) {\r\n var {\r\n fetch = defaultFetch$1,\r\n window = defaultWindow\r\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\r\n this.ctx = ctx;\r\n this.FRAMERATE = 30;\r\n this.MAX_VIRTUAL_PIXELS = 30000;\r\n this.CLIENT_WIDTH = 800;\r\n this.CLIENT_HEIGHT = 600;\r\n this.viewPort = new ViewPort();\r\n this.mouse = new Mouse(this);\r\n this.animations = [];\r\n this.waits = [];\r\n this.frameDuration = 0;\r\n this.isReadyLock = false;\r\n this.isFirstRender = true;\r\n this.intervalId = null;\r\n this.window = window;\r\n this.fetch = fetch;\r\n }\r\n\r\n wait(checker) {\r\n this.waits.push(checker);\r\n }\r\n\r\n ready() {\r\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\r\n if (!this.readyPromise) {\r\n return Promise.resolve();\r\n }\r\n\r\n return this.readyPromise;\r\n }\r\n\r\n isReady() {\r\n if (this.isReadyLock) {\r\n return true;\r\n }\r\n\r\n var isReadyLock = this.waits.every(_ => _());\r\n\r\n if (isReadyLock) {\r\n this.waits = [];\r\n\r\n if (this.resolveReady) {\r\n this.resolveReady();\r\n }\r\n }\r\n\r\n this.isReadyLock = isReadyLock;\r\n return isReadyLock;\r\n }\r\n\r\n setDefaults(ctx) {\r\n // initial values and defaults\r\n ctx.strokeStyle = 'rgba(0,0,0,0)';\r\n ctx.lineCap = 'butt';\r\n ctx.lineJoin = 'miter';\r\n ctx.miterLimit = 4;\r\n }\r\n\r\n setViewBox(_ref) {\r\n var {\r\n document,\r\n ctx,\r\n aspectRatio,\r\n width,\r\n desiredWidth,\r\n height,\r\n desiredHeight,\r\n minX = 0,\r\n minY = 0,\r\n refX,\r\n refY,\r\n clip = false,\r\n clipX = 0,\r\n clipY = 0\r\n } = _ref;\r\n // aspect ratio - http://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute\r\n var cleanAspectRatio = compressSpaces(aspectRatio).replace(/^defer\\s/, ''); // ignore defer\r\n\r\n var [aspectRatioAlign, aspectRatioMeetOrSlice] = cleanAspectRatio.split(' ');\r\n var align = aspectRatioAlign || 'xMidYMid';\r\n var meetOrSlice = aspectRatioMeetOrSlice || 'meet'; // calculate scale\r\n\r\n var scaleX = width / desiredWidth;\r\n var scaleY = height / desiredHeight;\r\n var scaleMin = Math.min(scaleX, scaleY);\r\n var scaleMax = Math.max(scaleX, scaleY);\r\n var finalDesiredWidth = desiredWidth;\r\n var finalDesiredHeight = desiredHeight;\r\n\r\n if (meetOrSlice === 'meet') {\r\n finalDesiredWidth *= scaleMin;\r\n finalDesiredHeight *= scaleMin;\r\n }\r\n\r\n if (meetOrSlice === 'slice') {\r\n finalDesiredWidth *= scaleMax;\r\n finalDesiredHeight *= scaleMax;\r\n }\r\n\r\n var refXProp = new Property(document, 'refX', refX);\r\n var refYProp = new Property(document, 'refY', refY);\r\n var hasRefs = refXProp.hasValue() && refYProp.hasValue();\r\n\r\n if (hasRefs) {\r\n ctx.translate(-scaleMin * refXProp.getPixels('x'), -scaleMin * refYProp.getPixels('y'));\r\n }\r\n\r\n if (clip) {\r\n var scaledClipX = scaleMin * clipX;\r\n var scaledClipY = scaleMin * clipY;\r\n ctx.beginPath();\r\n ctx.moveTo(scaledClipX, scaledClipY);\r\n ctx.lineTo(width, scaledClipY);\r\n ctx.lineTo(width, height);\r\n ctx.lineTo(scaledClipX, height);\r\n ctx.closePath();\r\n ctx.clip();\r\n }\r\n\r\n if (!hasRefs) {\r\n var isMeetMinY = meetOrSlice === 'meet' && scaleMin === scaleY;\r\n var isSliceMaxY = meetOrSlice === 'slice' && scaleMax === scaleY;\r\n var isMeetMinX = meetOrSlice === 'meet' && scaleMin === scaleX;\r\n var isSliceMaxX = meetOrSlice === 'slice' && scaleMax === scaleX;\r\n\r\n if (align.startsWith('xMid') && (isMeetMinY || isSliceMaxY)) {\r\n ctx.translate(width / 2.0 - finalDesiredWidth / 2.0, 0);\r\n }\r\n\r\n if (align.endsWith('YMid') && (isMeetMinX || isSliceMaxX)) {\r\n ctx.translate(0, height / 2.0 - finalDesiredHeight / 2.0);\r\n }\r\n\r\n if (align.startsWith('xMax') && (isMeetMinY || isSliceMaxY)) {\r\n ctx.translate(width - finalDesiredWidth, 0);\r\n }\r\n\r\n if (align.endsWith('YMax') && (isMeetMinX || isSliceMaxX)) {\r\n ctx.translate(0, height - finalDesiredHeight);\r\n }\r\n } // scale\r\n\r\n\r\n switch (true) {\r\n case align === 'none':\r\n ctx.scale(scaleX, scaleY);\r\n break;\r\n\r\n case meetOrSlice === 'meet':\r\n ctx.scale(scaleMin, scaleMin);\r\n break;\r\n\r\n case meetOrSlice === 'slice':\r\n ctx.scale(scaleMax, scaleMax);\r\n break;\r\n } // translate\r\n\r\n\r\n ctx.translate(-minX, -minY);\r\n }\r\n\r\n start(element) {\r\n var {\r\n enableRedraw = false,\r\n ignoreMouse = false,\r\n ignoreAnimation = false,\r\n ignoreDimensions = false,\r\n ignoreClear = false,\r\n forceRedraw,\r\n scaleWidth,\r\n scaleHeight,\r\n offsetX,\r\n offsetY\r\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\r\n var {\r\n FRAMERATE,\r\n mouse\r\n } = this;\r\n var frameDuration = 1000 / FRAMERATE;\r\n this.frameDuration = frameDuration;\r\n this.readyPromise = new Promise(resolve => {\r\n this.resolveReady = resolve;\r\n });\r\n\r\n if (this.isReady()) {\r\n this.render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY);\r\n }\r\n\r\n if (!enableRedraw) {\r\n return;\r\n }\r\n\r\n var now = Date.now();\r\n var then = now;\r\n var delta = 0;\r\n\r\n var tick = () => {\r\n now = Date.now();\r\n delta = now - then;\r\n\r\n if (delta >= frameDuration) {\r\n then = now - delta % frameDuration;\r\n\r\n if (this.shouldUpdate(ignoreAnimation, forceRedraw)) {\r\n this.render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY);\r\n mouse.runEvents();\r\n }\r\n }\r\n\r\n this.intervalId = requestAnimationFrame(tick);\r\n };\r\n\r\n if (!ignoreMouse) {\r\n mouse.start();\r\n }\r\n\r\n this.intervalId = requestAnimationFrame(tick);\r\n }\r\n\r\n stop() {\r\n if (this.intervalId) {\r\n requestAnimationFrame.cancel(this.intervalId);\r\n this.intervalId = null;\r\n }\r\n\r\n this.mouse.stop();\r\n }\r\n\r\n shouldUpdate(ignoreAnimation, forceRedraw) {\r\n // need update from animations?\r\n if (!ignoreAnimation) {\r\n var {\r\n frameDuration\r\n } = this;\r\n var shouldUpdate = this.animations.reduce((shouldUpdate, animation) => animation.update(frameDuration) || shouldUpdate, false);\r\n\r\n if (shouldUpdate) {\r\n return true;\r\n }\r\n } // need update from redraw?\r\n\r\n\r\n if (typeof forceRedraw === 'function' && forceRedraw()) {\r\n return true;\r\n }\r\n\r\n if (!this.isReadyLock && this.isReady()) {\r\n return true;\r\n } // need update from mouse events?\r\n\r\n\r\n if (this.mouse.hasEvents()) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY) {\r\n var {\r\n CLIENT_WIDTH,\r\n CLIENT_HEIGHT,\r\n viewPort,\r\n ctx,\r\n isFirstRender\r\n } = this;\r\n var canvas = ctx.canvas;\r\n viewPort.clear();\r\n\r\n if (canvas.width && canvas.height) {\r\n viewPort.setCurrent(canvas.width, canvas.height);\r\n } else {\r\n viewPort.setCurrent(CLIENT_WIDTH, CLIENT_HEIGHT);\r\n }\r\n\r\n var widthStyle = element.getStyle('width');\r\n var heightStyle = element.getStyle('height');\r\n\r\n if (!ignoreDimensions && (isFirstRender || typeof scaleWidth !== 'number' && typeof scaleHeight !== 'number')) {\r\n // set canvas size\r\n if (widthStyle.hasValue()) {\r\n canvas.width = widthStyle.getPixels('x');\r\n\r\n if (canvas.style) {\r\n canvas.style.width = \"\".concat(canvas.width, \"px\");\r\n }\r\n }\r\n\r\n if (heightStyle.hasValue()) {\r\n canvas.height = heightStyle.getPixels('y');\r\n\r\n if (canvas.style) {\r\n canvas.style.height = \"\".concat(canvas.height, \"px\");\r\n }\r\n }\r\n }\r\n\r\n var cWidth = canvas.clientWidth || canvas.width;\r\n var cHeight = canvas.clientHeight || canvas.height;\r\n\r\n if (ignoreDimensions && widthStyle.hasValue() && heightStyle.hasValue()) {\r\n cWidth = widthStyle.getPixels('x');\r\n cHeight = heightStyle.getPixels('y');\r\n }\r\n\r\n viewPort.setCurrent(cWidth, cHeight);\r\n\r\n if (typeof offsetX === 'number') {\r\n element.getAttribute('x', true).setValue(offsetX);\r\n }\r\n\r\n if (typeof offsetY === 'number') {\r\n element.getAttribute('y', true).setValue(offsetY);\r\n }\r\n\r\n if (typeof scaleWidth === 'number' || typeof scaleHeight === 'number') {\r\n var viewBox = toNumbers(element.getAttribute('viewBox').getString());\r\n var xRatio = 0;\r\n var yRatio = 0;\r\n\r\n if (typeof scaleWidth === 'number') {\r\n var _widthStyle = element.getStyle('width');\r\n\r\n if (_widthStyle.hasValue()) {\r\n xRatio = _widthStyle.getPixels('x') / scaleWidth;\r\n } else if (!isNaN(viewBox[2])) {\r\n xRatio = viewBox[2] / scaleWidth;\r\n }\r\n }\r\n\r\n if (typeof scaleHeight === 'number') {\r\n var _heightStyle = element.getStyle('height');\r\n\r\n if (_heightStyle.hasValue()) {\r\n yRatio = _heightStyle.getPixels('y') / scaleHeight;\r\n } else if (!isNaN(viewBox[3])) {\r\n yRatio = viewBox[3] / scaleHeight;\r\n }\r\n }\r\n\r\n if (!xRatio) {\r\n xRatio = yRatio;\r\n }\r\n\r\n if (!yRatio) {\r\n yRatio = xRatio;\r\n }\r\n\r\n element.getAttribute('width', true).setValue(scaleWidth);\r\n element.getAttribute('height', true).setValue(scaleHeight);\r\n var transformStyle = element.getStyle('transform', true, true);\r\n transformStyle.setValue(\"\".concat(transformStyle.getString(), \" scale(\").concat(1.0 / xRatio, \", \").concat(1.0 / yRatio, \")\"));\r\n } // clear and render\r\n\r\n\r\n if (!ignoreClear) {\r\n ctx.clearRect(0, 0, cWidth, cHeight);\r\n }\r\n\r\n element.render(ctx);\r\n\r\n if (isFirstRender) {\r\n this.isFirstRender = false;\r\n }\r\n }\r\n\r\n}\r\nScreen.defaultWindow = defaultWindow;\r\nScreen.defaultFetch = defaultFetch$1;\r\n\r\nvar {\r\n defaultFetch\r\n} = Screen;\r\nvar DefaultDOMParser = typeof DOMParser !== 'undefined' ? DOMParser : null;\r\nclass Parser {\r\n constructor() {\r\n var {\r\n fetch = defaultFetch,\r\n DOMParser = DefaultDOMParser\r\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\r\n this.fetch = fetch;\r\n this.DOMParser = DOMParser;\r\n }\r\n\r\n parse(resource) {\r\n var _this = this;\r\n\r\n return _asyncToGenerator(function* () {\r\n if (resource.startsWith('<')) {\r\n return _this.parseFromString(resource);\r\n }\r\n\r\n return _this.load(resource);\r\n })();\r\n }\r\n\r\n parseFromString(xml) {\r\n var parser = new this.DOMParser();\r\n\r\n try {\r\n return this.checkDocument(parser.parseFromString(xml, 'image/svg+xml'));\r\n } catch (err) {\r\n return this.checkDocument(parser.parseFromString(xml, 'text/xml'));\r\n }\r\n }\r\n\r\n checkDocument(document) {\r\n var parserError = document.getElementsByTagName('parsererror')[0];\r\n\r\n if (parserError) {\r\n throw new Error(parserError.textContent);\r\n }\r\n\r\n return document;\r\n }\r\n\r\n load(url) {\r\n var _this2 = this;\r\n\r\n return _asyncToGenerator(function* () {\r\n var response = yield _this2.fetch(url);\r\n var xml = yield response.text();\r\n return _this2.parseFromString(xml);\r\n })();\r\n }\r\n\r\n}\r\n\r\nclass Translate {\r\n constructor(_, point) {\r\n this.type = 'translate';\r\n this.point = null;\r\n this.point = Point.parse(point);\r\n }\r\n\r\n apply(ctx) {\r\n var {\r\n x,\r\n y\r\n } = this.point;\r\n ctx.translate(x || 0.0, y || 0.0);\r\n }\r\n\r\n unapply(ctx) {\r\n var {\r\n x,\r\n y\r\n } = this.point;\r\n ctx.translate(-1.0 * x || 0.0, -1.0 * y || 0.0);\r\n }\r\n\r\n applyToPoint(point) {\r\n var {\r\n x,\r\n y\r\n } = this.point;\r\n point.applyTransform([1, 0, 0, 1, x || 0.0, y || 0.0]);\r\n }\r\n\r\n}\r\n\r\nclass Rotate {\r\n constructor(document, rotate, transformOrigin) {\r\n this.type = 'rotate';\r\n this.angle = null;\r\n this.originX = null;\r\n this.originY = null;\r\n this.cx = 0;\r\n this.cy = 0;\r\n var numbers = toNumbers(rotate);\r\n this.angle = new Property(document, 'angle', numbers[0]);\r\n this.originX = transformOrigin[0];\r\n this.originY = transformOrigin[1];\r\n this.cx = numbers[1] || 0;\r\n this.cy = numbers[2] || 0;\r\n }\r\n\r\n apply(ctx) {\r\n var {\r\n cx,\r\n cy,\r\n originX,\r\n originY,\r\n angle\r\n } = this;\r\n var tx = cx + originX.getPixels('x');\r\n var ty = cy + originY.getPixels('y');\r\n ctx.translate(tx, ty);\r\n ctx.rotate(angle.getRadians());\r\n ctx.translate(-tx, -ty);\r\n }\r\n\r\n unapply(ctx) {\r\n var {\r\n cx,\r\n cy,\r\n originX,\r\n originY,\r\n angle\r\n } = this;\r\n var tx = cx + originX.getPixels('x');\r\n var ty = cy + originY.getPixels('y');\r\n ctx.translate(tx, ty);\r\n ctx.rotate(-1.0 * angle.getRadians());\r\n ctx.translate(-tx, -ty);\r\n }\r\n\r\n applyToPoint(point) {\r\n var {\r\n cx,\r\n cy,\r\n angle\r\n } = this;\r\n var rad = angle.getRadians();\r\n point.applyTransform([1, 0, 0, 1, cx || 0.0, cy || 0.0 // this.p.y\r\n ]);\r\n point.applyTransform([Math.cos(rad), Math.sin(rad), -Math.sin(rad), Math.cos(rad), 0, 0]);\r\n point.applyTransform([1, 0, 0, 1, -cx || 0.0, -cy || 0.0 // -this.p.y\r\n ]);\r\n }\r\n\r\n}\r\n\r\nclass Scale {\r\n constructor(_, scale, transformOrigin) {\r\n this.type = 'scale';\r\n this.scale = null;\r\n this.originX = null;\r\n this.originY = null;\r\n var scaleSize = Point.parseScale(scale); // Workaround for node-canvas\r\n\r\n if (scaleSize.x === 0 || scaleSize.y === 0) {\r\n scaleSize.x = PSEUDO_ZERO;\r\n scaleSize.y = PSEUDO_ZERO;\r\n }\r\n\r\n this.scale = scaleSize;\r\n this.originX = transformOrigin[0];\r\n this.originY = transformOrigin[1];\r\n }\r\n\r\n apply(ctx) {\r\n var {\r\n scale: {\r\n x,\r\n y\r\n },\r\n originX,\r\n originY\r\n } = this;\r\n var tx = originX.getPixels('x');\r\n var ty = originY.getPixels('y');\r\n ctx.translate(tx, ty);\r\n ctx.scale(x, y || x);\r\n ctx.translate(-tx, -ty);\r\n }\r\n\r\n unapply(ctx) {\r\n var {\r\n scale: {\r\n x,\r\n y\r\n },\r\n originX,\r\n originY\r\n } = this;\r\n var tx = originX.getPixels('x');\r\n var ty = originY.getPixels('y');\r\n ctx.translate(tx, ty);\r\n ctx.scale(1.0 / x, 1.0 / y || x);\r\n ctx.translate(-tx, -ty);\r\n }\r\n\r\n applyToPoint(point) {\r\n var {\r\n x,\r\n y\r\n } = this.scale;\r\n point.applyTransform([x || 0.0, 0, 0, y || 0.0, 0, 0]);\r\n }\r\n\r\n}\r\n\r\nclass Matrix {\r\n constructor(_, matrix, transformOrigin) {\r\n this.type = 'matrix';\r\n this.matrix = [];\r\n this.originX = null;\r\n this.originY = null;\r\n this.matrix = toNumbers(matrix);\r\n this.originX = transformOrigin[0];\r\n this.originY = transformOrigin[1];\r\n }\r\n\r\n apply(ctx) {\r\n var {\r\n originX,\r\n originY,\r\n matrix\r\n } = this;\r\n var tx = originX.getPixels('x');\r\n var ty = originY.getPixels('y');\r\n ctx.translate(tx, ty);\r\n ctx.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\r\n ctx.translate(-tx, -ty);\r\n }\r\n\r\n unapply(ctx) {\r\n var {\r\n originX,\r\n originY,\r\n matrix\r\n } = this;\r\n var a = matrix[0];\r\n var b = matrix[2];\r\n var c = matrix[4];\r\n var d = matrix[1];\r\n var e = matrix[3];\r\n var f = matrix[5];\r\n var g = 0.0;\r\n var h = 0.0;\r\n var i = 1.0;\r\n var det = 1 / (a * (e * i - f * h) - b * (d * i - f * g) + c * (d * h - e * g));\r\n var tx = originX.getPixels('x');\r\n var ty = originY.getPixels('y');\r\n ctx.translate(tx, ty);\r\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));\r\n ctx.translate(-tx, -ty);\r\n }\r\n\r\n applyToPoint(point) {\r\n point.applyTransform(this.matrix);\r\n }\r\n\r\n}\r\n\r\nclass Skew extends Matrix {\r\n constructor(document, skew, transformOrigin) {\r\n super(document, skew, transformOrigin);\r\n this.type = 'skew';\r\n this.angle = null;\r\n this.angle = new Property(document, 'angle', skew);\r\n }\r\n\r\n}\r\n\r\nclass SkewX extends Skew {\r\n constructor(document, skew, transformOrigin) {\r\n super(document, skew, transformOrigin);\r\n this.type = 'skewX';\r\n this.matrix = [1, 0, Math.tan(this.angle.getRadians()), 1, 0, 0];\r\n }\r\n\r\n}\r\n\r\nclass SkewY extends Skew {\r\n constructor(document, skew, transformOrigin) {\r\n super(document, skew, transformOrigin);\r\n this.type = 'skewY';\r\n this.matrix = [1, Math.tan(this.angle.getRadians()), 0, 1, 0, 0];\r\n }\r\n\r\n}\r\n\r\nfunction parseTransforms(transform) {\r\n return compressSpaces(transform).trim().replace(/\\)([a-zA-Z])/g, ') $1').replace(/\\)(\\s?,\\s?)/g, ') ').split(/\\s(?=[a-z])/);\r\n}\r\n\r\nfunction parseTransform(transform) {\r\n var [type, value] = transform.split('(');\r\n return [type.trim(), value.trim().replace(')', '')];\r\n}\r\n\r\nclass Transform {\r\n constructor(document, transform, transformOrigin) {\r\n this.document = document;\r\n this.transforms = [];\r\n var data = parseTransforms(transform);\r\n data.forEach(transform => {\r\n if (transform === 'none') {\r\n return;\r\n }\r\n\r\n var [type, value] = parseTransform(transform);\r\n var TransformType = Transform.transformTypes[type];\r\n\r\n if (typeof TransformType !== 'undefined') {\r\n this.transforms.push(new TransformType(this.document, value, transformOrigin));\r\n }\r\n });\r\n }\r\n\r\n static fromElement(document, element) {\r\n var transformStyle = element.getStyle('transform', false, true);\r\n var [transformOriginXProperty, transformOriginYProperty = transformOriginXProperty] = element.getStyle('transform-origin', false, true).split();\r\n var transformOrigin = [transformOriginXProperty, transformOriginYProperty];\r\n\r\n if (transformStyle.hasValue()) {\r\n return new Transform(document, transformStyle.getString(), transformOrigin);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n apply(ctx) {\r\n var {\r\n transforms\r\n } = this;\r\n var len = transforms.length;\r\n\r\n for (var i = 0; i < len; i++) {\r\n transforms[i].apply(ctx);\r\n }\r\n }\r\n\r\n unapply(ctx) {\r\n var {\r\n transforms\r\n } = this;\r\n var len = transforms.length;\r\n\r\n for (var i = len - 1; i >= 0; i--) {\r\n transforms[i].unapply(ctx);\r\n }\r\n } // TODO: applyToPoint unused ... remove?\r\n\r\n\r\n applyToPoint(point) {\r\n var {\r\n transforms\r\n } = this;\r\n var len = transforms.length;\r\n\r\n for (var i = 0; i < len; i++) {\r\n transforms[i].applyToPoint(point);\r\n }\r\n }\r\n\r\n}\r\nTransform.transformTypes = {\r\n translate: Translate,\r\n rotate: Rotate,\r\n scale: Scale,\r\n matrix: Matrix,\r\n skewX: SkewX,\r\n skewY: SkewY\r\n};\r\n\r\nclass Element {\r\n constructor(document, node) {\r\n var captureTextNodes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\r\n this.document = document;\r\n this.node = node;\r\n this.captureTextNodes = captureTextNodes;\r\n this.attributes = {};\r\n this.styles = {};\r\n this.stylesSpecificity = {};\r\n this.animationFrozen = false;\r\n this.animationFrozenValue = '';\r\n this.parent = null;\r\n this.children = [];\r\n\r\n if (!node || node.nodeType !== 1) {\r\n // ELEMENT_NODE\r\n return;\r\n } // add attributes\r\n\r\n\r\n Array.from(node.attributes).forEach(attribute => {\r\n var nodeName = normalizeAttributeName(attribute.nodeName);\r\n this.attributes[nodeName] = new Property(document, nodeName, attribute.value);\r\n });\r\n this.addStylesFromStyleDefinition(); // add inline styles\r\n\r\n if (this.getAttribute('style').hasValue()) {\r\n var styles = this.getAttribute('style').getString().split(';').map(_ => _.trim());\r\n styles.forEach(style => {\r\n if (!style) {\r\n return;\r\n }\r\n\r\n var [name, value] = style.split(':').map(_ => _.trim());\r\n this.styles[name] = new Property(document, name, value);\r\n });\r\n }\r\n\r\n var {\r\n definitions\r\n } = document;\r\n var id = this.getAttribute('id'); // add id\r\n\r\n if (id.hasValue()) {\r\n if (!definitions[id.getString()]) {\r\n definitions[id.getString()] = this;\r\n }\r\n }\r\n\r\n Array.from(node.childNodes).forEach(childNode => {\r\n if (childNode.nodeType === 1) {\r\n this.addChild(childNode); // ELEMENT_NODE\r\n } else if (captureTextNodes && (childNode.nodeType === 3 || childNode.nodeType === 4)) {\r\n var textNode = document.createTextNode(childNode);\r\n\r\n if (textNode.getText().length > 0) {\r\n this.addChild(textNode); // TEXT_NODE\r\n }\r\n }\r\n });\r\n }\r\n\r\n getAttribute(name) {\r\n var createIfNotExists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\r\n var attr = this.attributes[name];\r\n\r\n if (!attr && createIfNotExists) {\r\n var _attr = new Property(this.document, name, '');\r\n\r\n this.attributes[name] = _attr;\r\n return _attr;\r\n }\r\n\r\n return attr || Property.empty(this.document);\r\n }\r\n\r\n getHrefAttribute() {\r\n for (var key in this.attributes) {\r\n if (key === 'href' || key.endsWith(':href')) {\r\n return this.attributes[key];\r\n }\r\n }\r\n\r\n return Property.empty(this.document);\r\n }\r\n\r\n getStyle(name) {\r\n var createIfNotExists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\r\n var skipAncestors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\r\n var style = this.styles[name];\r\n\r\n if (style) {\r\n return style;\r\n }\r\n\r\n var attr = this.getAttribute(name);\r\n\r\n if (attr !== null && attr !== void 0 && attr.hasValue()) {\r\n this.styles[name] = attr; // move up to me to cache\r\n\r\n return attr;\r\n }\r\n\r\n if (!skipAncestors) {\r\n var {\r\n parent\r\n } = this;\r\n\r\n if (parent) {\r\n var parentStyle = parent.getStyle(name);\r\n\r\n if (parentStyle !== null && parentStyle !== void 0 && parentStyle.hasValue()) {\r\n return parentStyle;\r\n }\r\n }\r\n }\r\n\r\n if (createIfNotExists) {\r\n var _style = new Property(this.document, name, '');\r\n\r\n this.styles[name] = _style;\r\n return _style;\r\n }\r\n\r\n return style || Property.empty(this.document);\r\n }\r\n\r\n render(ctx) {\r\n // don't render display=none\r\n // don't render visibility=hidden\r\n if (this.getStyle('display').getString() === 'none' || this.getStyle('visibility').getString() === 'hidden') {\r\n return;\r\n }\r\n\r\n ctx.save();\r\n\r\n if (this.getStyle('mask').hasValue()) {\r\n // mask\r\n var mask = this.getStyle('mask').getDefinition();\r\n\r\n if (mask) {\r\n this.applyEffects(ctx);\r\n mask.apply(ctx, this);\r\n }\r\n } else if (this.getStyle('filter').getValue('none') !== 'none') {\r\n // filter\r\n var filter = this.getStyle('filter').getDefinition();\r\n\r\n if (filter) {\r\n this.applyEffects(ctx);\r\n filter.apply(ctx, this);\r\n }\r\n } else {\r\n this.setContext(ctx);\r\n this.renderChildren(ctx);\r\n this.clearContext(ctx);\r\n }\r\n\r\n ctx.restore();\r\n }\r\n\r\n setContext(_) {// NO RENDER\r\n }\r\n\r\n applyEffects(ctx) {\r\n // transform\r\n var transform = Transform.fromElement(this.document, this);\r\n\r\n if (transform) {\r\n transform.apply(ctx);\r\n } // clip\r\n\r\n\r\n var clipPathStyleProp = this.getStyle('clip-path', false, true);\r\n\r\n if (clipPathStyleProp.hasValue()) {\r\n var clip = clipPathStyleProp.getDefinition();\r\n\r\n if (clip) {\r\n clip.apply(ctx);\r\n }\r\n }\r\n }\r\n\r\n clearContext(_) {// NO RENDER\r\n }\r\n\r\n renderChildren(ctx) {\r\n this.children.forEach(child => {\r\n child.render(ctx);\r\n });\r\n }\r\n\r\n addChild(childNode) {\r\n var child = childNode instanceof Element ? childNode : this.document.createElement(childNode);\r\n child.parent = this;\r\n\r\n if (!Element.ignoreChildTypes.includes(child.type)) {\r\n this.children.push(child);\r\n }\r\n }\r\n\r\n matchesSelector(selector) {\r\n var {\r\n node\r\n } = this;\r\n\r\n if (typeof node.matches === 'function') {\r\n return node.matches(selector);\r\n }\r\n\r\n var styleClasses = node.getAttribute('class');\r\n\r\n if (!styleClasses || styleClasses === '') {\r\n return false;\r\n }\r\n\r\n return styleClasses.split(' ').some(styleClass => \".\".concat(styleClass) === selector);\r\n }\r\n\r\n addStylesFromStyleDefinition() {\r\n var {\r\n styles,\r\n stylesSpecificity\r\n } = this.document;\r\n\r\n for (var selector in styles) {\r\n if (!selector.startsWith('@') && this.matchesSelector(selector)) {\r\n var style = styles[selector];\r\n var specificity = stylesSpecificity[selector];\r\n\r\n if (style) {\r\n for (var name in style) {\r\n var existingSpecificity = this.stylesSpecificity[name];\r\n\r\n if (typeof existingSpecificity === 'undefined') {\r\n existingSpecificity = '000';\r\n }\r\n\r\n if (specificity >= existingSpecificity) {\r\n this.styles[name] = style[name];\r\n this.stylesSpecificity[name] = specificity;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n removeStyles(element, ignoreStyles) {\r\n var toRestore = ignoreStyles.reduce((toRestore, name) => {\r\n var styleProp = element.getStyle(name);\r\n\r\n if (!styleProp.hasValue()) {\r\n return toRestore;\r\n }\r\n\r\n var value = styleProp.getString();\r\n styleProp.setValue('');\r\n return [...toRestore, [name, value]];\r\n }, []);\r\n return toRestore;\r\n }\r\n\r\n restoreStyles(element, styles) {\r\n styles.forEach((_ref) => {\r\n var [name, value] = _ref;\r\n element.getStyle(name, true).setValue(value);\r\n });\r\n }\r\n\r\n}\r\nElement.ignoreChildTypes = ['title'];\r\n\r\nclass UnknownElement extends Element {\r\n constructor(document, node, captureTextNodes) {\r\n super(document, node, captureTextNodes);\r\n }\r\n\r\n}\r\n\r\nfunction wrapFontFamily(fontFamily) {\r\n var trimmed = fontFamily.trim();\r\n return /^('|\")/.test(trimmed) ? trimmed : \"\\\"\".concat(trimmed, \"\\\"\");\r\n}\r\n\r\nfunction prepareFontFamily(fontFamily) {\r\n return typeof process === 'undefined' ? fontFamily : fontFamily.trim().split(',').map(wrapFontFamily).join(',');\r\n}\r\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 */\r\n\r\n\r\nfunction prepareFontStyle(fontStyle) {\r\n if (!fontStyle) {\r\n return '';\r\n }\r\n\r\n var targetFontStyle = fontStyle.trim().toLowerCase();\r\n\r\n switch (targetFontStyle) {\r\n case 'normal':\r\n case 'italic':\r\n case 'oblique':\r\n case 'inherit':\r\n case 'initial':\r\n case 'unset':\r\n return targetFontStyle;\r\n\r\n default:\r\n if (/^oblique\\s+(-|)\\d+deg$/.test(targetFontStyle)) {\r\n return targetFontStyle;\r\n }\r\n\r\n return '';\r\n }\r\n}\r\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 */\r\n\r\n\r\nfunction prepareFontWeight(fontWeight) {\r\n if (!fontWeight) {\r\n return '';\r\n }\r\n\r\n var targetFontWeight = fontWeight.trim().toLowerCase();\r\n\r\n switch (targetFontWeight) {\r\n case 'normal':\r\n case 'bold':\r\n case 'lighter':\r\n case 'bolder':\r\n case 'inherit':\r\n case 'initial':\r\n case 'unset':\r\n return targetFontWeight;\r\n\r\n default:\r\n if (/^[\\d.]+$/.test(targetFontWeight)) {\r\n return targetFontWeight;\r\n }\r\n\r\n return '';\r\n }\r\n}\r\n\r\nclass Font {\r\n constructor(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit) {\r\n var inheritFont = inherit ? typeof inherit === 'string' ? Font.parse(inherit) : inherit : {};\r\n this.fontFamily = fontFamily || inheritFont.fontFamily;\r\n this.fontSize = fontSize || inheritFont.fontSize;\r\n this.fontStyle = fontStyle || inheritFont.fontStyle;\r\n this.fontWeight = fontWeight || inheritFont.fontWeight;\r\n this.fontVariant = fontVariant || inheritFont.fontVariant;\r\n }\r\n\r\n static parse() {\r\n var font = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\r\n var inherit = arguments.length > 1 ? arguments[1] : undefined;\r\n var fontStyle = '';\r\n var fontVariant = '';\r\n var fontWeight = '';\r\n var fontSize = '';\r\n var fontFamily = '';\r\n var parts = compressSpaces(font).trim().split(' ');\r\n var set = {\r\n fontSize: false,\r\n fontStyle: false,\r\n fontWeight: false,\r\n fontVariant: false\r\n };\r\n parts.forEach(part => {\r\n switch (true) {\r\n case !set.fontStyle && Font.styles.includes(part):\r\n if (part !== 'inherit') {\r\n fontStyle = part;\r\n }\r\n\r\n set.fontStyle = true;\r\n break;\r\n\r\n case !set.fontVariant && Font.variants.includes(part):\r\n if (part !== 'inherit') {\r\n fontVariant = part;\r\n }\r\n\r\n set.fontStyle = true;\r\n set.fontVariant = true;\r\n break;\r\n\r\n case !set.fontWeight && Font.weights.includes(part):\r\n if (part !== 'inherit') {\r\n fontWeight = part;\r\n }\r\n\r\n set.fontStyle = true;\r\n set.fontVariant = true;\r\n set.fontWeight = true;\r\n break;\r\n\r\n case !set.fontSize:\r\n if (part !== 'inherit') {\r\n [fontSize] = part.split('/');\r\n }\r\n\r\n set.fontStyle = true;\r\n set.fontVariant = true;\r\n set.fontWeight = true;\r\n set.fontSize = true;\r\n break;\r\n\r\n default:\r\n if (part !== 'inherit') {\r\n fontFamily += part;\r\n }\r\n\r\n }\r\n });\r\n return new Font(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit);\r\n }\r\n\r\n toString() {\r\n return [prepareFontStyle(this.fontStyle), this.fontVariant, prepareFontWeight(this.fontWeight), this.fontSize, // Wrap fontFamily only on nodejs and only for canvas.ctx\r\n prepareFontFamily(this.fontFamily)].join(' ').trim();\r\n }\r\n\r\n}\r\nFont.styles = 'normal|italic|oblique|inherit';\r\nFont.variants = 'normal|small-caps|inherit';\r\nFont.weights = 'normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit';\r\n\r\nclass BoundingBox {\r\n constructor() {\r\n var x1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Number.NaN;\r\n var y1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.NaN;\r\n var x2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Number.NaN;\r\n var y2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Number.NaN;\r\n this.x1 = x1;\r\n this.y1 = y1;\r\n this.x2 = x2;\r\n this.y2 = y2;\r\n this.addPoint(x1, y1);\r\n this.addPoint(x2, y2);\r\n }\r\n\r\n get x() {\r\n return this.x1;\r\n }\r\n\r\n get y() {\r\n return this.y1;\r\n }\r\n\r\n get width() {\r\n return this.x2 - this.x1;\r\n }\r\n\r\n get height() {\r\n return this.y2 - this.y1;\r\n }\r\n\r\n addPoint(x, y) {\r\n if (typeof x !== 'undefined') {\r\n if (isNaN(this.x1) || isNaN(this.x2)) {\r\n this.x1 = x;\r\n this.x2 = x;\r\n }\r\n\r\n if (x < this.x1) {\r\n this.x1 = x;\r\n }\r\n\r\n if (x > this.x2) {\r\n this.x2 = x;\r\n }\r\n }\r\n\r\n if (typeof y !== 'undefined') {\r\n if (isNaN(this.y1) || isNaN(this.y2)) {\r\n this.y1 = y;\r\n this.y2 = y;\r\n }\r\n\r\n if (y < this.y1) {\r\n this.y1 = y;\r\n }\r\n\r\n if (y > this.y2) {\r\n this.y2 = y;\r\n }\r\n }\r\n }\r\n\r\n addX(x) {\r\n this.addPoint(x, null);\r\n }\r\n\r\n addY(y) {\r\n this.addPoint(null, y);\r\n }\r\n\r\n addBoundingBox(boundingBox) {\r\n if (!boundingBox) {\r\n return;\r\n }\r\n\r\n var {\r\n x1,\r\n y1,\r\n x2,\r\n y2\r\n } = boundingBox;\r\n this.addPoint(x1, y1);\r\n this.addPoint(x2, y2);\r\n }\r\n\r\n sumCubic(t, p0, p1, p2, p3) {\r\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;\r\n }\r\n\r\n bezierCurveAdd(forX, p0, p1, p2, p3) {\r\n var b = 6 * p0 - 12 * p1 + 6 * p2;\r\n var a = -3 * p0 + 9 * p1 - 9 * p2 + 3 * p3;\r\n var c = 3 * p1 - 3 * p0;\r\n\r\n if (a === 0) {\r\n if (b === 0) {\r\n return;\r\n }\r\n\r\n var t = -c / b;\r\n\r\n if (0 < t && t < 1) {\r\n if (forX) {\r\n this.addX(this.sumCubic(t, p0, p1, p2, p3));\r\n } else {\r\n this.addY(this.sumCubic(t, p0, p1, p2, p3));\r\n }\r\n }\r\n\r\n return;\r\n }\r\n\r\n var b2ac = Math.pow(b, 2) - 4 * c * a;\r\n\r\n if (b2ac < 0) {\r\n return;\r\n }\r\n\r\n var t1 = (-b + Math.sqrt(b2ac)) / (2 * a);\r\n\r\n if (0 < t1 && t1 < 1) {\r\n if (forX) {\r\n this.addX(this.sumCubic(t1, p0, p1, p2, p3));\r\n } else {\r\n this.addY(this.sumCubic(t1, p0, p1, p2, p3));\r\n }\r\n }\r\n\r\n var t2 = (-b - Math.sqrt(b2ac)) / (2 * a);\r\n\r\n if (0 < t2 && t2 < 1) {\r\n if (forX) {\r\n this.addX(this.sumCubic(t2, p0, p1, p2, p3));\r\n } else {\r\n this.addY(this.sumCubic(t2, p0, p1, p2, p3));\r\n }\r\n }\r\n } // from http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html\r\n\r\n\r\n addBezierCurve(p0x, p0y, p1x, p1y, p2x, p2y, p3x, p3y) {\r\n this.addPoint(p0x, p0y);\r\n this.addPoint(p3x, p3y);\r\n this.bezierCurveAdd(true, p0x, p1x, p2x, p3x);\r\n this.bezierCurveAdd(false, p0y, p1y, p2y, p3y);\r\n }\r\n\r\n addQuadraticCurve(p0x, p0y, p1x, p1y, p2x, p2y) {\r\n var cp1x = p0x + 2 / 3 * (p1x - p0x); // CP1 = QP0 + 2/3 *(QP1-QP0)\r\n\r\n var cp1y = p0y + 2 / 3 * (p1y - p0y); // CP1 = QP0 + 2/3 *(QP1-QP0)\r\n\r\n var cp2x = cp1x + 1 / 3 * (p2x - p0x); // CP2 = CP1 + 1/3 *(QP2-QP0)\r\n\r\n var cp2y = cp1y + 1 / 3 * (p2y - p0y); // CP2 = CP1 + 1/3 *(QP2-QP0)\r\n\r\n this.addBezierCurve(p0x, p0y, cp1x, cp2x, cp1y, cp2y, p2x, p2y);\r\n }\r\n\r\n isPointInBox(x, y) {\r\n var {\r\n x1,\r\n y1,\r\n x2,\r\n y2\r\n } = this;\r\n return x1 <= x && x <= x2 && y1 <= y && y <= y2;\r\n }\r\n\r\n}\r\n\r\nclass PathParser extends SVGPathData {\r\n constructor(path) {\r\n super(path // Fix spaces after signs.\r\n .replace(/([+\\-.])\\s+/gm, '$1') // Remove invalid part.\r\n .replace(/[^MmZzLlHhVvCcSsQqTtAae\\d\\s.,+-].*/g, ''));\r\n this.control = null;\r\n this.start = null;\r\n this.current = null;\r\n this.command = null;\r\n this.commands = this.commands;\r\n this.i = -1;\r\n this.previousCommand = null;\r\n this.points = [];\r\n this.angles = [];\r\n }\r\n\r\n reset() {\r\n this.i = -1;\r\n this.command = null;\r\n this.previousCommand = null;\r\n this.start = new Point(0, 0);\r\n this.control = new Point(0, 0);\r\n this.current = new Point(0, 0);\r\n this.points = [];\r\n this.angles = [];\r\n }\r\n\r\n isEnd() {\r\n var {\r\n i,\r\n commands\r\n } = this;\r\n return i >= commands.length - 1;\r\n }\r\n\r\n next() {\r\n var command = this.commands[++this.i];\r\n this.previousCommand = this.command;\r\n this.command = command;\r\n return command;\r\n }\r\n\r\n getPoint() {\r\n var xProp = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'x';\r\n var yProp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'y';\r\n var point = new Point(this.command[xProp], this.command[yProp]);\r\n return this.makeAbsolute(point);\r\n }\r\n\r\n getAsControlPoint(xProp, yProp) {\r\n var point = this.getPoint(xProp, yProp);\r\n this.control = point;\r\n return point;\r\n }\r\n\r\n getAsCurrentPoint(xProp, yProp) {\r\n var point = this.getPoint(xProp, yProp);\r\n this.current = point;\r\n return point;\r\n }\r\n\r\n getReflectedControlPoint() {\r\n var previousCommand = this.previousCommand.type;\r\n\r\n if (previousCommand !== SVGPathData.CURVE_TO && previousCommand !== SVGPathData.SMOOTH_CURVE_TO && previousCommand !== SVGPathData.QUAD_TO && previousCommand !== SVGPathData.SMOOTH_QUAD_TO) {\r\n return this.current;\r\n } // reflect point\r\n\r\n\r\n var {\r\n current: {\r\n x: cx,\r\n y: cy\r\n },\r\n control: {\r\n x: ox,\r\n y: oy\r\n }\r\n } = this;\r\n var point = new Point(2 * cx - ox, 2 * cy - oy);\r\n return point;\r\n }\r\n\r\n makeAbsolute(point) {\r\n if (this.command.relative) {\r\n var {\r\n x,\r\n y\r\n } = this.current;\r\n point.x += x;\r\n point.y += y;\r\n }\r\n\r\n return point;\r\n }\r\n\r\n addMarker(point, from, priorTo) {\r\n var {\r\n points,\r\n angles\r\n } = this; // if the last angle isn't filled in because we didn't have this point yet ...\r\n\r\n if (priorTo && angles.length > 0 && !angles[angles.length - 1]) {\r\n angles[angles.length - 1] = points[points.length - 1].angleTo(priorTo);\r\n }\r\n\r\n this.addMarkerAngle(point, from ? from.angleTo(point) : null);\r\n }\r\n\r\n addMarkerAngle(point, angle) {\r\n this.points.push(point);\r\n this.angles.push(angle);\r\n }\r\n\r\n getMarkerPoints() {\r\n return this.points;\r\n }\r\n\r\n getMarkerAngles() {\r\n var {\r\n angles\r\n } = this;\r\n var len = angles.length;\r\n\r\n for (var i = 0; i < len; i++) {\r\n if (!angles[i]) {\r\n for (var j = i + 1; j < len; j++) {\r\n if (angles[j]) {\r\n angles[i] = angles[j];\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return angles;\r\n }\r\n\r\n}\r\n\r\nclass RenderedElement extends Element {\r\n constructor() {\r\n super(...arguments);\r\n this.modifiedEmSizeStack = false;\r\n }\r\n\r\n calculateOpacity() {\r\n var opacity = 1.0; // eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this\r\n\r\n var element = this;\r\n\r\n while (element) {\r\n var opacityStyle = element.getStyle('opacity', false, true); // no ancestors on style call\r\n\r\n if (opacityStyle.hasValue(true)) {\r\n opacity *= opacityStyle.getNumber();\r\n }\r\n\r\n element = element.parent;\r\n }\r\n\r\n return opacity;\r\n }\r\n\r\n setContext(ctx) {\r\n var fromMeasure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\r\n\r\n if (!fromMeasure) {\r\n // causes stack overflow when measuring text with gradients\r\n // fill\r\n var fillStyleProp = this.getStyle('fill');\r\n var fillOpacityStyleProp = this.getStyle('fill-opacity');\r\n var strokeStyleProp = this.getStyle('stroke');\r\n var strokeOpacityProp = this.getStyle('stroke-opacity');\r\n\r\n if (fillStyleProp.isUrlDefinition()) {\r\n var fillStyle = fillStyleProp.getFillStyleDefinition(this, fillOpacityStyleProp);\r\n\r\n if (fillStyle) {\r\n ctx.fillStyle = fillStyle;\r\n }\r\n } else if (fillStyleProp.hasValue()) {\r\n if (fillStyleProp.getString() === 'currentColor') {\r\n fillStyleProp.setValue(this.getStyle('color').getColor());\r\n }\r\n\r\n var _fillStyle = fillStyleProp.getColor();\r\n\r\n if (_fillStyle !== 'inherit') {\r\n ctx.fillStyle = _fillStyle === 'none' ? 'rgba(0,0,0,0)' : _fillStyle;\r\n }\r\n }\r\n\r\n if (fillOpacityStyleProp.hasValue()) {\r\n var _fillStyle2 = new Property(this.document, 'fill', ctx.fillStyle).addOpacity(fillOpacityStyleProp).getColor();\r\n\r\n ctx.fillStyle = _fillStyle2;\r\n } // stroke\r\n\r\n\r\n if (strokeStyleProp.isUrlDefinition()) {\r\n var strokeStyle = strokeStyleProp.getFillStyleDefinition(this, strokeOpacityProp);\r\n\r\n if (strokeStyle) {\r\n ctx.strokeStyle = strokeStyle;\r\n }\r\n } else if (strokeStyleProp.hasValue()) {\r\n if (strokeStyleProp.getString() === 'currentColor') {\r\n strokeStyleProp.setValue(this.getStyle('color').getColor());\r\n }\r\n\r\n var _strokeStyle = strokeStyleProp.getString();\r\n\r\n if (_strokeStyle !== 'inherit') {\r\n ctx.strokeStyle = _strokeStyle === 'none' ? 'rgba(0,0,0,0)' : _strokeStyle;\r\n }\r\n }\r\n\r\n if (strokeOpacityProp.hasValue()) {\r\n var _strokeStyle2 = new Property(this.document, 'stroke', ctx.strokeStyle).addOpacity(strokeOpacityProp).getString();\r\n\r\n ctx.strokeStyle = _strokeStyle2;\r\n }\r\n\r\n var strokeWidthStyleProp = this.getStyle('stroke-width');\r\n\r\n if (strokeWidthStyleProp.hasValue()) {\r\n var newLineWidth = strokeWidthStyleProp.getPixels();\r\n ctx.lineWidth = !newLineWidth ? PSEUDO_ZERO // browsers don't respect 0 (or node-canvas? :-)\r\n : newLineWidth;\r\n }\r\n\r\n var strokeLinecapStyleProp = this.getStyle('stroke-linecap');\r\n var strokeLinejoinStyleProp = this.getStyle('stroke-linejoin');\r\n var strokeMiterlimitProp = this.getStyle('stroke-miterlimit'); // NEED TEST\r\n // const pointOrderStyleProp = this.getStyle('paint-order');\r\n\r\n var strokeDasharrayStyleProp = this.getStyle('stroke-dasharray');\r\n var strokeDashoffsetProp = this.getStyle('stroke-dashoffset');\r\n\r\n if (strokeLinecapStyleProp.hasValue()) {\r\n ctx.lineCap = strokeLinecapStyleProp.getString();\r\n }\r\n\r\n if (strokeLinejoinStyleProp.hasValue()) {\r\n ctx.lineJoin = strokeLinejoinStyleProp.getString();\r\n }\r\n\r\n if (strokeMiterlimitProp.hasValue()) {\r\n ctx.miterLimit = strokeMiterlimitProp.getNumber();\r\n } // NEED TEST\r\n // if (pointOrderStyleProp.hasValue()) {\r\n // \t// ?\r\n // \tctx.paintOrder = pointOrderStyleProp.getValue();\r\n // }\r\n\r\n\r\n if (strokeDasharrayStyleProp.hasValue() && strokeDasharrayStyleProp.getString() !== 'none') {\r\n var gaps = toNumbers(strokeDasharrayStyleProp.getString());\r\n\r\n if (typeof ctx.setLineDash !== 'undefined') {\r\n ctx.setLineDash(gaps);\r\n } else // @ts-expect-error Handle browser prefix.\r\n if (typeof ctx.webkitLineDash !== 'undefined') {\r\n // @ts-expect-error Handle browser prefix.\r\n ctx.webkitLineDash = gaps;\r\n } else // @ts-expect-error Handle browser prefix.\r\n if (typeof ctx.mozDash !== 'undefined' && !(gaps.length === 1 && gaps[0] === 0)) {\r\n // @ts-expect-error Handle browser prefix.\r\n ctx.mozDash = gaps;\r\n }\r\n\r\n var offset = strokeDashoffsetProp.getPixels();\r\n\r\n if (typeof ctx.lineDashOffset !== 'undefined') {\r\n ctx.lineDashOffset = offset;\r\n } else // @ts-expect-error Handle browser prefix.\r\n if (typeof ctx.webkitLineDashOffset !== 'undefined') {\r\n // @ts-expect-error Handle browser prefix.\r\n ctx.webkitLineDashOffset = offset;\r\n } else // @ts-expect-error Handle browser prefix.\r\n if (typeof ctx.mozDashOffset !== 'undefined') {\r\n // @ts-expect-error Handle browser prefix.\r\n ctx.mozDashOffset = offset;\r\n }\r\n }\r\n } // font\r\n\r\n\r\n this.modifiedEmSizeStack = false;\r\n\r\n if (typeof ctx.font !== 'undefined') {\r\n var fontStyleProp = this.getStyle('font');\r\n var fontStyleStyleProp = this.getStyle('font-style');\r\n var fontVariantStyleProp = this.getStyle('font-variant');\r\n var fontWeightStyleProp = this.getStyle('font-weight');\r\n var fontSizeStyleProp = this.getStyle('font-size');\r\n var fontFamilyStyleProp = this.getStyle('font-family');\r\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));\r\n fontStyleStyleProp.setValue(font.fontStyle);\r\n fontVariantStyleProp.setValue(font.fontVariant);\r\n fontWeightStyleProp.setValue(font.fontWeight);\r\n fontSizeStyleProp.setValue(font.fontSize);\r\n fontFamilyStyleProp.setValue(font.fontFamily);\r\n ctx.font = font.toString();\r\n\r\n if (fontSizeStyleProp.isPixels()) {\r\n this.document.emSize = fontSizeStyleProp.getPixels();\r\n this.modifiedEmSizeStack = true;\r\n }\r\n }\r\n\r\n if (!fromMeasure) {\r\n // effects\r\n this.applyEffects(ctx); // opacity\r\n\r\n ctx.globalAlpha = this.calculateOpacity();\r\n }\r\n }\r\n\r\n clearContext(ctx) {\r\n super.clearContext(ctx);\r\n\r\n if (this.modifiedEmSizeStack) {\r\n this.document.popEmSize();\r\n }\r\n }\r\n\r\n}\r\n\r\nclass PathElement extends RenderedElement {\r\n constructor(document, node, captureTextNodes) {\r\n super(document, node, captureTextNodes);\r\n this.type = 'path';\r\n this.pathParser = null;\r\n this.pathParser = new PathParser(this.getAttribute('d').getString());\r\n }\r\n\r\n path(ctx) {\r\n var {\r\n pathParser\r\n } = this;\r\n var boundingBox = new BoundingBox();\r\n pathParser.reset();\r\n\r\n if (ctx) {\r\n ctx.beginPath();\r\n }\r\n\r\n while (!pathParser.isEnd()) {\r\n switch (pathParser.next().type) {\r\n case PathParser.MOVE_TO:\r\n this.pathM(ctx, boundingBox);\r\n break;\r\n\r\n case PathParser.LINE_TO:\r\n this.pathL(ctx, boundingBox);\r\n break;\r\n\r\n case PathParser.HORIZ_LINE_TO:\r\n this.pathH(ctx, boundingBox);\r\n break;\r\n\r\n case PathParser.VERT_LINE_TO:\r\n this.pathV(ctx, boundingBox);\r\n break;\r\n\r\n case PathParser.CURVE_TO:\r\n this.pathC(ctx, boundingBox);\r\n break;\r\n\r\n case PathParser.SMOOTH_CURVE_TO:\r\n this.pathS(ctx, boundingBox);\r\n break;\r\n\r\n case PathParser.QUAD_TO:\r\n this.pathQ(ctx, boundingBox);\r\n break;\r\n\r\n case PathParser.SMOOTH_QUAD_TO:\r\n this.pathT(ctx, boundingBox);\r\n break;\r\n\r\n case PathParser.ARC:\r\n this.pathA(ctx, boundingBox);\r\n break;\r\n\r\n case PathParser.CLOSE_PATH:\r\n this.pathZ(ctx, boundingBox);\r\n break;\r\n }\r\n }\r\n\r\n return boundingBox;\r\n }\r\n\r\n getBoundingBox(_) {\r\n return this.path();\r\n }\r\n\r\n getMarkers() {\r\n var {\r\n pathParser\r\n } = this;\r\n var points = pathParser.getMarkerPoints();\r\n var angles = pathParser.getMarkerAngles();\r\n var markers = points.map((point, i) => [point, angles[i]]);\r\n return markers;\r\n }\r\n\r\n renderChildren(ctx) {\r\n this.path(ctx);\r\n this.document.screen.mouse.checkPath(this, ctx);\r\n var fillRuleStyleProp = this.getStyle('fill-rule');\r\n\r\n if (ctx.fillStyle !== '') {\r\n if (fillRuleStyleProp.getString('inherit') !== 'inherit') {\r\n ctx.fill(fillRuleStyleProp.getString());\r\n } else {\r\n ctx.fill();\r\n }\r\n }\r\n\r\n if (ctx.strokeStyle !== '') {\r\n if (this.getAttribute('vector-effect').getString() === 'non-scaling-stroke') {\r\n ctx.save();\r\n ctx.setTransform(1, 0, 0, 1, 0, 0);\r\n ctx.stroke();\r\n ctx.restore();\r\n } else {\r\n ctx.stroke();\r\n }\r\n }\r\n\r\n var markers = this.getMarkers();\r\n\r\n if (markers) {\r\n var markersLastIndex = markers.length - 1;\r\n var markerStartStyleProp = this.getStyle('marker-start');\r\n var markerMidStyleProp = this.getStyle('marker-mid');\r\n var markerEndStyleProp = this.getStyle('marker-end');\r\n\r\n if (markerStartStyleProp.isUrlDefinition()) {\r\n var marker = markerStartStyleProp.getDefinition();\r\n var [point, angle] = markers[0];\r\n marker.render(ctx, point, angle);\r\n }\r\n\r\n if (markerMidStyleProp.isUrlDefinition()) {\r\n var _marker = markerMidStyleProp.getDefinition();\r\n\r\n for (var i = 1; i < markersLastIndex; i++) {\r\n var [_point, _angle] = markers[i];\r\n\r\n _marker.render(ctx, _point, _angle);\r\n }\r\n }\r\n\r\n if (markerEndStyleProp.isUrlDefinition()) {\r\n var _marker2 = markerEndStyleProp.getDefinition();\r\n\r\n var [_point2, _angle2] = markers[markersLastIndex];\r\n\r\n _marker2.render(ctx, _point2, _angle2);\r\n }\r\n }\r\n }\r\n\r\n static pathM(pathParser) {\r\n var point = pathParser.getAsCurrentPoint();\r\n pathParser.start = pathParser.current;\r\n return {\r\n point\r\n };\r\n }\r\n\r\n pathM(ctx, boundingBox) {\r\n var {\r\n pathParser\r\n } = this;\r\n var {\r\n point\r\n } = PathElement.pathM(pathParser);\r\n var {\r\n x,\r\n y\r\n } = point;\r\n pathParser.addMarker(point);\r\n boundingBox.addPoint(x, y);\r\n\r\n if (ctx) {\r\n ctx.moveTo(x, y);\r\n }\r\n }\r\n\r\n static pathL(pathParser) {\r\n var {\r\n current\r\n } = pathParser;\r\n var point = pathParser.getAsCurrentPoint();\r\n return {\r\n current,\r\n point\r\n };\r\n }\r\n\r\n pathL(ctx, boundingBox) {\r\n var {\r\n pathParser\r\n } = this;\r\n var {\r\n current,\r\n point\r\n } = PathElement.pathL(pathParser);\r\n var {\r\n x,\r\n y\r\n } = point;\r\n pathParser.addMarker(point, current);\r\n boundingBox.addPoint(x, y);\r\n\r\n if (ctx) {\r\n ctx.lineTo(x, y);\r\n }\r\n }\r\n\r\n static pathH(pathParser) {\r\n var {\r\n current,\r\n command\r\n } = pathParser;\r\n var point = new Point((command.relative ? current.x : 0) + command.x, current.y);\r\n pathParser.current = point;\r\n return {\r\n current,\r\n point\r\n };\r\n }\r\n\r\n pathH(ctx, boundingBox) {\r\n var {\r\n pathParser\r\n } = this;\r\n var {\r\n current,\r\n point\r\n } = PathElement.pathH(pathParser);\r\n var {\r\n x,\r\n y\r\n } = point;\r\n pathParser.addMarker(point, current);\r\n boundingBox.addPoint(x, y);\r\n\r\n if (ctx) {\r\n ctx.lineTo(x, y);\r\n }\r\n }\r\n\r\n static pathV(pathParser) {\r\n var {\r\n current,\r\n command\r\n } = pathParser;\r\n var point = new Point(current.x, (command.relative ? current.y : 0) + command.y);\r\n pathParser.current = point;\r\n return {\r\n current,\r\n point\r\n };\r\n }\r\n\r\n pathV(ctx, boundingBox) {\r\n var {\r\n pathParser\r\n } = this;\r\n var {\r\n current,\r\n point\r\n } = PathElement.pathV(pathParser);\r\n var {\r\n x,\r\n y\r\n } = point;\r\n pathParser.addMarker(point, current);\r\n boundingBox.addPoint(x, y);\r\n\r\n if (ctx) {\r\n ctx.lineTo(x, y);\r\n }\r\n }\r\n\r\n static pathC(pathParser) {\r\n var {\r\n current\r\n } = pathParser;\r\n var point = pathParser.getPoint('x1', 'y1');\r\n var controlPoint = pathParser.getAsControlPoint('x2', 'y2');\r\n var currentPoint = pathParser.getAsCurrentPoint();\r\n return {\r\n current,\r\n point,\r\n controlPoint,\r\n currentPoint\r\n };\r\n }\r\n\r\n pathC(ctx, boundingBox) {\r\n var {\r\n pathParser\r\n } = this;\r\n var {\r\n current,\r\n point,\r\n controlPoint,\r\n currentPoint\r\n } = PathElement.pathC(pathParser);\r\n pathParser.addMarker(currentPoint, controlPoint, point);\r\n boundingBox.addBezierCurve(current.x, current.y, point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\r\n\r\n if (ctx) {\r\n ctx.bezierCurveTo(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\r\n }\r\n }\r\n\r\n static pathS(pathParser) {\r\n var {\r\n current\r\n } = pathParser;\r\n var point = pathParser.getReflectedControlPoint();\r\n var controlPoint = pathParser.getAsControlPoint('x2', 'y2');\r\n var currentPoint = pathParser.getAsCurrentPoint();\r\n return {\r\n current,\r\n point,\r\n controlPoint,\r\n currentPoint\r\n };\r\n }\r\n\r\n pathS(ctx, boundingBox) {\r\n var {\r\n pathParser\r\n } = this;\r\n var {\r\n current,\r\n point,\r\n controlPoint,\r\n currentPoint\r\n } = PathElement.pathS(pathParser);\r\n pathParser.addMarker(currentPoint, controlPoint, point);\r\n boundingBox.addBezierCurve(current.x, current.y, point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\r\n\r\n if (ctx) {\r\n ctx.bezierCurveTo(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\r\n }\r\n }\r\n\r\n static pathQ(pathParser) {\r\n var {\r\n current\r\n } = pathParser;\r\n var controlPoint = pathParser.getAsControlPoint('x1', 'y1');\r\n var currentPoint = pathParser.getAsCurrentPoint();\r\n return {\r\n current,\r\n controlPoint,\r\n currentPoint\r\n };\r\n }\r\n\r\n pathQ(ctx, boundingBox) {\r\n var {\r\n pathParser\r\n } = this;\r\n var {\r\n current,\r\n controlPoint,\r\n currentPoint\r\n } = PathElement.pathQ(pathParser);\r\n pathParser.addMarker(currentPoint, controlPoint, controlPoint);\r\n boundingBox.addQuadraticCurve(current.x, current.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\r\n\r\n if (ctx) {\r\n ctx.quadraticCurveTo(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\r\n }\r\n }\r\n\r\n static pathT(pathParser) {\r\n var {\r\n current\r\n } = pathParser;\r\n var controlPoint = pathParser.getReflectedControlPoint();\r\n pathParser.control = controlPoint;\r\n var currentPoint = pathParser.getAsCurrentPoint();\r\n return {\r\n current,\r\n controlPoint,\r\n currentPoint\r\n };\r\n }\r\n\r\n pathT(ctx, boundingBox) {\r\n var {\r\n pathParser\r\n } = this;\r\n var {\r\n current,\r\n controlPoint,\r\n currentPoint\r\n } = PathElement.pathT(pathParser);\r\n pathParser.addMarker(currentPoint, controlPoint, controlPoint);\r\n boundingBox.addQuadraticCurve(current.x, current.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\r\n\r\n if (ctx) {\r\n ctx.quadraticCurveTo(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\r\n }\r\n }\r\n\r\n static pathA(pathParser) {\r\n var {\r\n current,\r\n command\r\n } = pathParser;\r\n var {\r\n rX,\r\n rY,\r\n xRot,\r\n lArcFlag,\r\n sweepFlag\r\n } = command;\r\n var xAxisRotation = xRot * (Math.PI / 180.0);\r\n var currentPoint = pathParser.getAsCurrentPoint(); // Conversion from endpoint to center parameterization\r\n // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\r\n // x1', y1'\r\n\r\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\r\n\r\n var l = Math.pow(currp.x, 2) / Math.pow(rX, 2) + Math.pow(currp.y, 2) / Math.pow(rY, 2);\r\n\r\n if (l > 1) {\r\n rX *= Math.sqrt(l);\r\n rY *= Math.sqrt(l);\r\n } // cx', cy'\r\n\r\n\r\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)));\r\n\r\n if (isNaN(s)) {\r\n s = 0;\r\n }\r\n\r\n var cpp = new Point(s * rX * currp.y / rY, s * -rY * currp.x / rX); // cx, cy\r\n\r\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\r\n\r\n var a1 = vectorsAngle([1, 0], [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY]); // θ1\r\n // angle delta\r\n\r\n var u = [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY];\r\n var v = [(-currp.x - cpp.x) / rX, (-currp.y - cpp.y) / rY];\r\n var ad = vectorsAngle(u, v); // Δθ\r\n\r\n if (vectorsRatio(u, v) <= -1) {\r\n ad = Math.PI;\r\n }\r\n\r\n if (vectorsRatio(u, v) >= 1) {\r\n ad = 0;\r\n }\r\n\r\n return {\r\n currentPoint,\r\n rX,\r\n rY,\r\n sweepFlag,\r\n xAxisRotation,\r\n centp,\r\n a1,\r\n ad\r\n };\r\n }\r\n\r\n pathA(ctx, boundingBox) {\r\n var {\r\n pathParser\r\n } = this;\r\n var {\r\n currentPoint,\r\n rX,\r\n rY,\r\n sweepFlag,\r\n xAxisRotation,\r\n centp,\r\n a1,\r\n ad\r\n } = PathElement.pathA(pathParser); // for markers\r\n\r\n var dir = 1 - sweepFlag ? 1.0 : -1.0;\r\n var ah = a1 + dir * (ad / 2.0);\r\n var halfWay = new Point(centp.x + rX * Math.cos(ah), centp.y + rY * Math.sin(ah));\r\n pathParser.addMarkerAngle(halfWay, ah - dir * Math.PI / 2);\r\n pathParser.addMarkerAngle(currentPoint, ah - dir * Math.PI);\r\n boundingBox.addPoint(currentPoint.x, currentPoint.y); // TODO: this is too naive, make it better\r\n\r\n if (ctx && !isNaN(a1) && !isNaN(ad)) {\r\n var r = rX > rY ? rX : rY;\r\n var sx = rX > rY ? 1 : rX / rY;\r\n var sy = rX > rY ? rY / rX : 1;\r\n ctx.translate(centp.x, centp.y);\r\n ctx.rotate(xAxisRotation);\r\n ctx.scale(sx, sy);\r\n ctx.arc(0, 0, r, a1, a1 + ad, Boolean(1 - sweepFlag));\r\n ctx.scale(1 / sx, 1 / sy);\r\n ctx.rotate(-xAxisRotation);\r\n ctx.translate(-centp.x, -centp.y);\r\n }\r\n }\r\n\r\n static pathZ(pathParser) {\r\n pathParser.current = pathParser.start;\r\n }\r\n\r\n pathZ(ctx, boundingBox) {\r\n PathElement.pathZ(this.pathParser);\r\n\r\n if (ctx) {\r\n // only close path if it is not a straight line\r\n if (boundingBox.x1 !== boundingBox.x2 && boundingBox.y1 !== boundingBox.y2) {\r\n ctx.closePath();\r\n }\r\n }\r\n }\r\n\r\n}\r\n\r\nclass GlyphElement extends PathElement {\r\n constructor(document, node, captureTextNodes) {\r\n super(document, node, captureTextNodes);\r\n this.type = 'glyph';\r\n this.horizAdvX = this.getAttribute('horiz-adv-x').getNumber();\r\n this.unicode = this.getAttribute('unicode').getString();\r\n this.arabicForm = this.getAttribute('arabic-form').getString();\r\n }\r\n\r\n}\r\n\r\nclass TextElement extends RenderedElement {\r\n constructor(document, node, captureTextNodes) {\r\n super(document, node, new.target === TextElement ? true : captureTextNodes);\r\n this.type = 'text';\r\n this.x = 0;\r\n this.y = 0;\r\n this.measureCache = -1;\r\n }\r\n\r\n setContext(ctx) {\r\n var fromMeasure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\r\n super.setContext(ctx, fromMeasure);\r\n var textBaseline = this.getStyle('dominant-baseline').getTextBaseline() || this.getStyle('alignment-baseline').getTextBaseline();\r\n\r\n if (textBaseline) {\r\n ctx.textBaseline = textBaseline;\r\n }\r\n }\r\n\r\n initializeCoordinates(ctx) {\r\n this.x = this.getAttribute('x').getPixels('x');\r\n this.y = this.getAttribute('y').getPixels('y');\r\n var dxAttr = this.getAttribute('dx');\r\n var dyAttr = this.getAttribute('dy');\r\n\r\n if (dxAttr.hasValue()) {\r\n this.x += dxAttr.getPixels('x');\r\n }\r\n\r\n if (dyAttr.hasValue()) {\r\n this.y += dyAttr.getPixels('y');\r\n }\r\n\r\n this.x += this.getAnchorDelta(ctx, this, 0);\r\n }\r\n\r\n getBoundingBox(ctx) {\r\n if (this.type !== 'text') {\r\n return this.getTElementBoundingBox(ctx);\r\n }\r\n\r\n this.initializeCoordinates(ctx);\r\n var boundingBox = null;\r\n this.children.forEach((_, i) => {\r\n var childBoundingBox = this.getChildBoundingBox(ctx, this, this, i);\r\n\r\n if (!boundingBox) {\r\n boundingBox = childBoundingBox;\r\n } else {\r\n boundingBox.addBoundingBox(childBoundingBox);\r\n }\r\n });\r\n return boundingBox;\r\n }\r\n\r\n getFontSize() {\r\n var {\r\n document,\r\n parent\r\n } = this;\r\n var inheritFontSize = Font.parse(document.ctx.font).fontSize;\r\n var fontSize = parent.getStyle('font-size').getNumber(inheritFontSize);\r\n return fontSize;\r\n }\r\n\r\n getTElementBoundingBox(ctx) {\r\n var fontSize = this.getFontSize();\r\n return new BoundingBox(this.x, this.y - fontSize, this.x + this.measureText(ctx), this.y);\r\n }\r\n\r\n getGlyph(font, text, i) {\r\n var char = text[i];\r\n var glyph = null;\r\n\r\n if (font.isArabic) {\r\n var len = text.length;\r\n var prevChar = text[i - 1];\r\n var nextChar = text[i + 1];\r\n var arabicForm = 'isolated';\r\n\r\n if ((i === 0 || prevChar === ' ') && i < len - 2 && nextChar !== ' ') {\r\n arabicForm = 'terminal';\r\n }\r\n\r\n if (i > 0 && prevChar !== ' ' && i < len - 2 && nextChar !== ' ') {\r\n arabicForm = 'medial';\r\n }\r\n\r\n if (i > 0 && prevChar !== ' ' && (i === len - 1 || nextChar === ' ')) {\r\n arabicForm = 'initial';\r\n }\r\n\r\n if (typeof font.glyphs[char] !== 'undefined') {\r\n // NEED TEST\r\n var maybeGlyph = font.glyphs[char];\r\n glyph = maybeGlyph instanceof GlyphElement ? maybeGlyph : maybeGlyph[arabicForm];\r\n }\r\n } else {\r\n glyph = font.glyphs[char];\r\n }\r\n\r\n if (!glyph) {\r\n glyph = font.missingGlyph;\r\n }\r\n\r\n return glyph;\r\n }\r\n\r\n getText() {\r\n return '';\r\n }\r\n\r\n getTextFromNode(node) {\r\n var textNode = node || this.node;\r\n var childNodes = Array.from(textNode.parentNode.childNodes);\r\n var index = childNodes.indexOf(textNode);\r\n var lastIndex = childNodes.length - 1;\r\n var text = compressSpaces( // textNode.value\r\n // || textNode.text\r\n textNode.textContent || '');\r\n\r\n if (index === 0) {\r\n text = trimLeft(text);\r\n }\r\n\r\n if (index === lastIndex) {\r\n text = trimRight(text);\r\n }\r\n\r\n return text;\r\n }\r\n\r\n renderChildren(ctx) {\r\n if (this.type !== 'text') {\r\n this.renderTElementChildren(ctx);\r\n return;\r\n }\r\n\r\n this.initializeCoordinates(ctx);\r\n this.children.forEach((_, i) => {\r\n this.renderChild(ctx, this, this, i);\r\n });\r\n var {\r\n mouse\r\n } = this.document.screen; // Do not calc bounding box if mouse is not working.\r\n\r\n if (mouse.isWorking()) {\r\n mouse.checkBoundingBox(this, this.getBoundingBox(ctx));\r\n }\r\n }\r\n\r\n renderTElementChildren(ctx) {\r\n var {\r\n document,\r\n parent\r\n } = this;\r\n var renderText = this.getText();\r\n var customFont = parent.getStyle('font-family').getDefinition();\r\n\r\n if (customFont) {\r\n var {\r\n unitsPerEm\r\n } = customFont.fontFace;\r\n var ctxFont = Font.parse(document.ctx.font);\r\n var fontSize = parent.getStyle('font-size').getNumber(ctxFont.fontSize);\r\n var fontStyle = parent.getStyle('font-style').getString(ctxFont.fontStyle);\r\n var scale = fontSize / unitsPerEm;\r\n var text = customFont.isRTL ? renderText.split('').reverse().join('') : renderText;\r\n var dx = toNumbers(parent.getAttribute('dx').getString());\r\n var len = text.length;\r\n\r\n for (var i = 0; i < len; i++) {\r\n var glyph = this.getGlyph(customFont, text, i);\r\n ctx.translate(this.x, this.y);\r\n ctx.scale(scale, -scale);\r\n var lw = ctx.lineWidth;\r\n ctx.lineWidth = ctx.lineWidth * unitsPerEm / fontSize;\r\n\r\n if (fontStyle === 'italic') {\r\n ctx.transform(1, 0, .4, 1, 0, 0);\r\n }\r\n\r\n glyph.render(ctx);\r\n\r\n if (fontStyle === 'italic') {\r\n ctx.transform(1, 0, -.4, 1, 0, 0);\r\n }\r\n\r\n ctx.lineWidth = lw;\r\n ctx.scale(1 / scale, -1 / scale);\r\n ctx.translate(-this.x, -this.y);\r\n this.x += fontSize * (glyph.horizAdvX || customFont.horizAdvX) / unitsPerEm;\r\n\r\n if (typeof dx[i] !== 'undefined' && !isNaN(dx[i])) {\r\n this.x += dx[i];\r\n }\r\n }\r\n\r\n return;\r\n }\r\n\r\n var {\r\n x,\r\n y\r\n } = this; // NEED TEST\r\n // if (ctx.paintOrder === 'stroke') {\r\n // \tif (ctx.strokeStyle) {\r\n // \t\tctx.strokeText(renderText, x, y);\r\n // \t}\r\n // \tif (ctx.fillStyle) {\r\n // \t\tctx.fillText(renderText, x, y);\r\n // \t}\r\n // } else {\r\n\r\n if (ctx.fillStyle) {\r\n ctx.fillText(renderText, x, y);\r\n }\r\n\r\n if (ctx.strokeStyle) {\r\n ctx.strokeText(renderText, x, y);\r\n } // }\r\n\r\n }\r\n\r\n getAnchorDelta(ctx, parent, startI) {\r\n var textAnchor = this.getStyle('text-anchor').getString('start');\r\n\r\n if (textAnchor !== 'start') {\r\n var {\r\n children\r\n } = parent;\r\n var len = children.length;\r\n var child = null;\r\n var width = 0;\r\n\r\n for (var i = startI; i < len; i++) {\r\n child = children[i];\r\n\r\n if (i > startI && child.getAttribute('x').hasValue() || child.getAttribute('text-anchor').hasValue()) {\r\n break; // new group\r\n }\r\n\r\n width += child.measureTextRecursive(ctx);\r\n }\r\n\r\n return -1 * (textAnchor === 'end' ? width : width / 2.0);\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n adjustChildCoordinates(ctx, textParent, parent, i) {\r\n var child = parent.children[i];\r\n\r\n if (typeof child.measureText !== 'function') {\r\n return child;\r\n }\r\n\r\n ctx.save();\r\n child.setContext(ctx, true);\r\n var xAttr = child.getAttribute('x');\r\n var yAttr = child.getAttribute('y');\r\n var dxAttr = child.getAttribute('dx');\r\n var dyAttr = child.getAttribute('dy');\r\n var textAnchor = child.getAttribute('text-anchor').getString('start');\r\n\r\n if (i === 0 && child.type !== 'textNode') {\r\n if (!xAttr.hasValue()) {\r\n xAttr.setValue(textParent.getAttribute('x').getValue('0'));\r\n }\r\n\r\n if (!yAttr.hasValue()) {\r\n yAttr.setValue(textParent.getAttribute('y').getValue('0'));\r\n }\r\n\r\n if (!dxAttr.hasValue()) {\r\n dxAttr.setValue(textParent.getAttribute('dx').getValue('0'));\r\n }\r\n\r\n if (!dyAttr.hasValue()) {\r\n dyAttr.setValue(textParent.getAttribute('dy').getValue('0'));\r\n }\r\n }\r\n\r\n if (xAttr.hasValue()) {\r\n child.x = xAttr.getPixels('x') + textParent.getAnchorDelta(ctx, parent, i);\r\n\r\n if (textAnchor !== 'start') {\r\n var width = child.measureTextRecursive(ctx);\r\n child.x += -1 * (textAnchor === 'end' ? width : width / 2.0);\r\n }\r\n\r\n if (dxAttr.hasValue()) {\r\n child.x += dxAttr.getPixels('x');\r\n }\r\n } else {\r\n if (textAnchor !== 'start') {\r\n var _width = child.measureTextRecursive(ctx);\r\n\r\n textParent.x += -1 * (textAnchor === 'end' ? _width : _width / 2.0);\r\n }\r\n\r\n if (dxAttr.hasValue()) {\r\n textParent.x += dxAttr.getPixels('x');\r\n }\r\n\r\n child.x = textParent.x;\r\n }\r\n\r\n textParent.x = child.x + child.measureText(ctx);\r\n\r\n if (yAttr.hasValue()) {\r\n child.y = yAttr.getPixels('y');\r\n\r\n if (dyAttr.hasValue()) {\r\n child.y += dyAttr.getPixels('y');\r\n }\r\n } else {\r\n if (dyAttr.hasValue()) {\r\n textParent.y += dyAttr.getPixels('y');\r\n }\r\n\r\n child.y = textParent.y;\r\n }\r\n\r\n textParent.y = child.y;\r\n child.clearContext(ctx);\r\n ctx.restore();\r\n return child;\r\n }\r\n\r\n getChildBoundingBox(ctx, textParent, parent, i) {\r\n var child = this.adjustChildCoordinates(ctx, textParent, parent, i); // not a text node?\r\n\r\n if (typeof child.getBoundingBox !== 'function') {\r\n return null;\r\n }\r\n\r\n var boundingBox = child.getBoundingBox(ctx);\r\n\r\n if (!boundingBox) {\r\n return null;\r\n }\r\n\r\n child.children.forEach((_, i) => {\r\n var childBoundingBox = textParent.getChildBoundingBox(ctx, textParent, child, i);\r\n boundingBox.addBoundingBox(childBoundingBox);\r\n });\r\n return boundingBox;\r\n }\r\n\r\n renderChild(ctx, textParent, parent, i) {\r\n var child = this.adjustChildCoordinates(ctx, textParent, parent, i);\r\n child.render(ctx);\r\n child.children.forEach((_, i) => {\r\n textParent.renderChild(ctx, textParent, child, i);\r\n });\r\n }\r\n\r\n measureTextRecursive(ctx) {\r\n var width = this.children.reduce((width, child) => width + child.measureTextRecursive(ctx), this.measureText(ctx));\r\n return width;\r\n }\r\n\r\n measureText(ctx) {\r\n var {\r\n measureCache\r\n } = this;\r\n\r\n if (~measureCache) {\r\n return measureCache;\r\n }\r\n\r\n var renderText = this.getText();\r\n var measure = this.measureTargetText(ctx, renderText);\r\n this.measureCache = measure;\r\n return measure;\r\n }\r\n\r\n measureTargetText(ctx, targetText) {\r\n if (!targetText.length) {\r\n return 0;\r\n }\r\n\r\n var {\r\n parent\r\n } = this;\r\n var customFont = parent.getStyle('font-family').getDefinition();\r\n\r\n if (customFont) {\r\n var fontSize = this.getFontSize();\r\n var text = customFont.isRTL ? targetText.split('').reverse().join('') : targetText;\r\n var dx = toNumbers(parent.getAttribute('dx').getString());\r\n var len = text.length;\r\n var _measure = 0;\r\n\r\n for (var i = 0; i < len; i++) {\r\n var glyph = this.getGlyph(customFont, text, i);\r\n _measure += (glyph.horizAdvX || customFont.horizAdvX) * fontSize / customFont.fontFace.unitsPerEm;\r\n\r\n if (typeof dx[i] !== 'undefined' && !isNaN(dx[i])) {\r\n _measure += dx[i];\r\n }\r\n }\r\n\r\n return _measure;\r\n }\r\n\r\n if (!ctx.measureText) {\r\n return targetText.length * 10;\r\n }\r\n\r\n ctx.save();\r\n this.setContext(ctx, true);\r\n var {\r\n width: measure\r\n } = ctx.measureText(targetText);\r\n this.clearContext(ctx);\r\n ctx.restore();\r\n return measure;\r\n }\r\n\r\n}\r\n\r\nclass TSpanElement extends TextElement {\r\n constructor(document, node, captureTextNodes) {\r\n super(document, node, new.target === TSpanElement ? true : captureTextNodes);\r\n this.type = 'tspan'; // if this node has children, then they own the text\r\n\r\n this.text = this.children.length > 0 ? '' : this.getTextFromNode();\r\n }\r\n\r\n getText() {\r\n return this.text;\r\n }\r\n\r\n}\r\n\r\nclass TextNode extends TSpanElement {\r\n constructor() {\r\n super(...arguments);\r\n this.type = 'textNode';\r\n }\r\n\r\n}\r\n\r\nclass SVGElement extends RenderedElement {\r\n constructor() {\r\n super(...arguments);\r\n this.type = 'svg';\r\n this.root = false;\r\n }\r\n\r\n setContext(ctx) {\r\n var _this$node$parentNode;\r\n\r\n var {\r\n document\r\n } = this;\r\n var {\r\n screen,\r\n window\r\n } = document;\r\n var canvas = ctx.canvas;\r\n screen.setDefaults(ctx);\r\n\r\n if (canvas.style && typeof ctx.font !== 'undefined' && window && typeof window.getComputedStyle !== 'undefined') {\r\n ctx.font = window.getComputedStyle(canvas).getPropertyValue('font');\r\n var fontSizeProp = new Property(document, 'fontSize', Font.parse(ctx.font).fontSize);\r\n\r\n if (fontSizeProp.hasValue()) {\r\n document.rootEmSize = fontSizeProp.getPixels('y');\r\n document.emSize = document.rootEmSize;\r\n }\r\n } // create new view port\r\n\r\n\r\n if (!this.getAttribute('x').hasValue()) {\r\n this.getAttribute('x', true).setValue(0);\r\n }\r\n\r\n if (!this.getAttribute('y').hasValue()) {\r\n this.getAttribute('y', true).setValue(0);\r\n }\r\n\r\n var {\r\n width,\r\n height\r\n } = screen.viewPort;\r\n\r\n if (!this.getStyle('width').hasValue()) {\r\n this.getStyle('width', true).setValue('100%');\r\n }\r\n\r\n if (!this.getStyle('height').hasValue()) {\r\n this.getStyle('height', true).setValue('100%');\r\n }\r\n\r\n if (!this.getStyle('color').hasValue()) {\r\n this.getStyle('color', true).setValue('black');\r\n }\r\n\r\n var refXAttr = this.getAttribute('refX');\r\n var refYAttr = this.getAttribute('refY');\r\n var viewBoxAttr = this.getAttribute('viewBox');\r\n var viewBox = viewBoxAttr.hasValue() ? toNumbers(viewBoxAttr.getString()) : null;\r\n var clip = !this.root && this.getStyle('overflow').getValue('hidden') !== 'visible';\r\n var minX = 0;\r\n var minY = 0;\r\n var clipX = 0;\r\n var clipY = 0;\r\n\r\n if (viewBox) {\r\n minX = viewBox[0];\r\n minY = viewBox[1];\r\n }\r\n\r\n if (!this.root) {\r\n width = this.getStyle('width').getPixels('x');\r\n height = this.getStyle('height').getPixels('y');\r\n\r\n if (this.type === 'marker') {\r\n clipX = minX;\r\n clipY = minY;\r\n minX = 0;\r\n minY = 0;\r\n }\r\n }\r\n\r\n screen.viewPort.setCurrent(width, height); // Default value of transform-origin is center only for root SVG elements\r\n // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/transform-origin\r\n\r\n if (this.node // is not temporary SVGElement\r\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()) {\r\n this.getStyle('transform-origin', true, true).setValue('50% 50%');\r\n }\r\n\r\n super.setContext(ctx);\r\n ctx.translate(this.getAttribute('x').getPixels('x'), this.getAttribute('y').getPixels('y'));\r\n\r\n if (viewBox) {\r\n width = viewBox[2];\r\n height = viewBox[3];\r\n }\r\n\r\n document.setViewBox({\r\n ctx,\r\n aspectRatio: this.getAttribute('preserveAspectRatio').getString(),\r\n width: screen.viewPort.width,\r\n desiredWidth: width,\r\n height: screen.viewPort.height,\r\n desiredHeight: height,\r\n minX,\r\n minY,\r\n refX: refXAttr.getValue(),\r\n refY: refYAttr.getValue(),\r\n clip,\r\n clipX,\r\n clipY\r\n });\r\n\r\n if (viewBox) {\r\n screen.viewPort.removeCurrent();\r\n screen.viewPort.setCurrent(width, height);\r\n }\r\n }\r\n\r\n clearContext(ctx) {\r\n super.clearContext(ctx);\r\n this.document.screen.viewPort.removeCurrent();\r\n }\r\n /**\r\n * Resize SVG to fit in given size.\r\n * @param width\r\n * @param height\r\n * @param preserveAspectRatio\r\n */\r\n\r\n\r\n resize(width) {\r\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : width;\r\n var preserveAspectRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\r\n var widthAttr = this.getAttribute('width', true);\r\n var heightAttr = this.getAttribute('height', true);\r\n var viewBoxAttr = this.getAttribute('viewBox');\r\n var styleAttr = this.getAttribute('style');\r\n var originWidth = widthAttr.getNumber(0);\r\n var originHeight = heightAttr.getNumber(0);\r\n\r\n if (preserveAspectRatio) {\r\n if (typeof preserveAspectRatio === 'string') {\r\n this.getAttribute('preserveAspectRatio', true).setValue(preserveAspectRatio);\r\n } else {\r\n var preserveAspectRatioAttr = this.getAttribute('preserveAspectRatio');\r\n\r\n if (preserveAspectRatioAttr.hasValue()) {\r\n preserveAspectRatioAttr.setValue(preserveAspectRatioAttr.getString().replace(/^\\s*(\\S.*\\S)\\s*$/, '$1'));\r\n }\r\n }\r\n }\r\n\r\n widthAttr.setValue(width);\r\n heightAttr.setValue(height);\r\n\r\n if (!viewBoxAttr.hasValue()) {\r\n viewBoxAttr.setValue(\"0 0 \".concat(originWidth || width, \" \").concat(originHeight || height));\r\n }\r\n\r\n if (styleAttr.hasValue()) {\r\n var widthStyle = this.getStyle('width');\r\n var heightStyle = this.getStyle('height');\r\n\r\n if (widthStyle.hasValue()) {\r\n widthStyle.setValue(\"\".concat(width, \"px\"));\r\n }\r\n\r\n if (heightStyle.hasValue()) {\r\n heightStyle.setValue(\"\".concat(height, \"px\"));\r\n }\r\n }\r\n }\r\n\r\n}\r\n\r\nclass RectElement extends PathElement {\r\n constructor() {\r\n super(...arguments);\r\n this.type = 'rect';\r\n }\r\n\r\n path(ctx) {\r\n var x = this.getAttribute('x').getPixels('x');\r\n var y = this.getAttribute('y').getPixels('y');\r\n var width = this.getStyle('width', false, true).getPixels('x');\r\n var height = this.getStyle('height', false, true).getPixels('y');\r\n var rxAttr = this.getAttribute('rx');\r\n var ryAttr = this.getAttribute('ry');\r\n var rx = rxAttr.getPixels('x');\r\n var ry = ryAttr.getPixels('y');\r\n\r\n if (rxAttr.hasValue() && !ryAttr.hasValue()) {\r\n ry = rx;\r\n }\r\n\r\n if (ryAttr.hasValue() && !rxAttr.hasValue()) {\r\n rx = ry;\r\n }\r\n\r\n rx = Math.min(rx, width / 2.0);\r\n ry = Math.min(ry, height / 2.0);\r\n\r\n if (ctx) {\r\n var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);\r\n ctx.beginPath(); // always start the path so we don't fill prior paths\r\n\r\n if (height > 0 && width > 0) {\r\n ctx.moveTo(x + rx, y);\r\n ctx.lineTo(x + width - rx, y);\r\n ctx.bezierCurveTo(x + width - rx + KAPPA * rx, y, x + width, y + ry - KAPPA * ry, x + width, y + ry);\r\n ctx.lineTo(x + width, y + height - ry);\r\n ctx.bezierCurveTo(x + width, y + height - ry + KAPPA * ry, x + width - rx + KAPPA * rx, y + height, x + width - rx, y + height);\r\n ctx.lineTo(x + rx, y + height);\r\n ctx.bezierCurveTo(x + rx - KAPPA * rx, y + height, x, y + height - ry + KAPPA * ry, x, y + height - ry);\r\n ctx.lineTo(x, y + ry);\r\n ctx.bezierCurveTo(x, y + ry - KAPPA * ry, x + rx - KAPPA * rx, y, x + rx, y);\r\n ctx.closePath();\r\n }\r\n }\r\n\r\n return new BoundingBox(x, y, x + width, y + height);\r\n }\r\n\r\n getMarkers() {\r\n return null;\r\n }\r\n\r\n}\r\n\r\nclass CircleElement extends PathElement {\r\n constructor() {\r\n super(...arguments);\r\n this.type = 'circle';\r\n }\r\n\r\n path(ctx) {\r\n var cx = this.getAttribute('cx').getPixels('x');\r\n var cy = this.getAttribute('cy').getPixels('y');\r\n var r = this.getAttribute('r').getPixels();\r\n\r\n if (ctx && r > 0) {\r\n ctx.beginPath();\r\n ctx.arc(cx, cy, r, 0, Math.PI * 2, false);\r\n ctx.closePath();\r\n }\r\n\r\n return new BoundingBox(cx - r, cy - r, cx + r, cy + r);\r\n }\r\n\r\n getMarkers() {\r\n return null;\r\n }\r\n\r\n}\r\n\r\nclass EllipseElement extends PathElement {\r\n constructor() {\r\n super(...arguments);\r\n this.type = 'ellipse';\r\n }\r\n\r\n path(ctx) {\r\n var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);\r\n var rx = this.getAttribute('rx').getPixels('x');\r\n var ry = this.getAttribute('ry').getPixels('y');\r\n var cx = this.getAttribute('cx').getPixels('x');\r\n var cy = this.getAttribute('cy').getPixels('y');\r\n\r\n if (ctx && rx > 0 && ry > 0) {\r\n ctx.beginPath();\r\n ctx.moveTo(cx + rx, cy);\r\n ctx.bezierCurveTo(cx + rx, cy + KAPPA * ry, cx + KAPPA * rx, cy + ry, cx, cy + ry);\r\n ctx.bezierCurveTo(cx - KAPPA * rx, cy + ry, cx - rx, cy + KAPPA * ry, cx - rx, cy);\r\n ctx.bezierCurveTo(cx - rx, cy - KAPPA * ry, cx - KAPPA * rx, cy - ry, cx, cy - ry);\r\n ctx.bezierCurveTo(cx + KAPPA * rx, cy - ry, cx + rx, cy - KAPPA * ry, cx + rx, cy);\r\n ctx.closePath();\r\n }\r\n\r\n return new BoundingBox(cx - rx, cy - ry, cx + rx, cy + ry);\r\n }\r\n\r\n getMarkers() {\r\n return null;\r\n }\r\n\r\n}\r\n\r\nclass LineElement extends PathElement {\r\n constructor() {\r\n super(...arguments);\r\n this.type = 'line';\r\n }\r\n\r\n getPoints() {\r\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'))];\r\n }\r\n\r\n path(ctx) {\r\n var [{\r\n x: x0,\r\n y: y0\r\n }, {\r\n x: x1,\r\n y: y1\r\n }] = this.getPoints();\r\n\r\n if (ctx) {\r\n ctx.beginPath();\r\n ctx.moveTo(x0, y0);\r\n ctx.lineTo(x1, y1);\r\n }\r\n\r\n return new BoundingBox(x0, y0, x1, y1);\r\n }\r\n\r\n getMarkers() {\r\n var [p0, p1] = this.getPoints();\r\n var a = p0.angleTo(p1);\r\n return [[p0, a], [p1, a]];\r\n }\r\n\r\n}\r\n\r\nclass PolylineElement extends PathElement {\r\n constructor(document, node, captureTextNodes) {\r\n super(document, node, captureTextNodes);\r\n this.type = 'polyline';\r\n this.points = [];\r\n this.points = Point.parsePath(this.getAttribute('points').getString());\r\n }\r\n\r\n path(ctx) {\r\n var {\r\n points\r\n } = this;\r\n var [{\r\n x: x0,\r\n y: y0\r\n }] = points;\r\n var boundingBox = new BoundingBox(x0, y0);\r\n\r\n if (ctx) {\r\n ctx.beginPath();\r\n ctx.moveTo(x0, y0);\r\n }\r\n\r\n points.forEach((_ref) => {\r\n var {\r\n x,\r\n y\r\n } = _ref;\r\n boundingBox.addPoint(x, y);\r\n\r\n if (ctx) {\r\n ctx.lineTo(x, y);\r\n }\r\n });\r\n return boundingBox;\r\n }\r\n\r\n getMarkers() {\r\n var {\r\n points\r\n } = this;\r\n var lastIndex = points.length - 1;\r\n var markers = [];\r\n points.forEach((point, i) => {\r\n if (i === lastIndex) {\r\n return;\r\n }\r\n\r\n markers.push([point, point.angleTo(points[i + 1])]);\r\n });\r\n\r\n if (markers.length > 0) {\r\n markers.push([points[points.length - 1], markers[markers.length - 1][1]]);\r\n }\r\n\r\n return markers;\r\n }\r\n\r\n}\r\n\r\nclass PolygonElement extends PolylineElement {\r\n constructor() {\r\n super(...arguments);\r\n this.type = 'polygon';\r\n }\r\n\r\n path(ctx) {\r\n var boundingBox = super.path(ctx);\r\n var [{\r\n x,\r\n y\r\n }] = this.points;\r\n\r\n if (ctx) {\r\n ctx.lineTo(x, y);\r\n ctx.closePath();\r\n }\r\n\r\n return boundingBox;\r\n }\r\n\r\n}\r\n\r\nclass PatternElement extends Element {\r\n constructor() {\r\n super(...arguments);\r\n this.type = 'pattern';\r\n }\r\n\r\n createPattern(ctx, _, parentOpacityProp) {\r\n var width = this.getStyle('width').getPixels('x', true);\r\n var height = this.getStyle('height').getPixels('y', true); // render me using a temporary svg element\r\n\r\n var patternSvg = new SVGElement(this.document, null);\r\n patternSvg.attributes.viewBox = new Property(this.document, 'viewBox', this.getAttribute('viewBox').getValue());\r\n patternSvg.attributes.width = new Property(this.document, 'width', \"\".concat(width, \"px\"));\r\n patternSvg.attributes.height = new Property(this.document, 'height', \"\".concat(height, \"px\"));\r\n patternSvg.attributes.transform = new Property(this.document, 'transform', this.getAttribute('patternTransform').getValue());\r\n patternSvg.children = this.children;\r\n var patternCanvas = this.document.createCanvas(width, height);\r\n var patternCtx = patternCanvas.getContext('2d');\r\n var xAttr = this.getAttribute('x');\r\n var yAttr = this.getAttribute('y');\r\n\r\n if (xAttr.hasValue() && yAttr.hasValue()) {\r\n patternCtx.translate(xAttr.getPixels('x', true), yAttr.getPixels('y', true));\r\n }\r\n\r\n if (parentOpacityProp.hasValue()) {\r\n this.styles['fill-opacity'] = parentOpacityProp;\r\n } else {\r\n Reflect.deleteProperty(this.styles, 'fill-opacity');\r\n } // render 3x3 grid so when we transform there's no white space on edges\r\n\r\n\r\n for (var x = -1; x <= 1; x++) {\r\n for (var y = -1; y <= 1; y++) {\r\n patternCtx.save();\r\n patternSvg.attributes.x = new Property(this.document, 'x', x * patternCanvas.width);\r\n patternSvg.attributes.y = new Property(this.document, 'y', y * patternCanvas.height);\r\n patternSvg.render(patternCtx);\r\n patternCtx.restore();\r\n }\r\n }\r\n\r\n var pattern = ctx.createPattern(patternCanvas, 'repeat');\r\n return pattern;\r\n }\r\n\r\n}\r\n\r\nclass MarkerElement extends Element {\r\n constructor() {\r\n super(...arguments);\r\n this.type = 'marker';\r\n }\r\n\r\n render(ctx, point, angle) {\r\n if (!point) {\r\n return;\r\n }\r\n\r\n var {\r\n x,\r\n y\r\n } = point;\r\n var orient = this.getAttribute('orient').getString('auto');\r\n var markerUnits = this.getAttribute('markerUnits').getString('strokeWidth');\r\n ctx.translate(x, y);\r\n\r\n if (orient === 'auto') {\r\n ctx.rotate(angle);\r\n }\r\n\r\n if (markerUnits === 'strokeWidth') {\r\n ctx.scale(ctx.lineWidth, ctx.lineWidth);\r\n }\r\n\r\n ctx.save(); // render me using a temporary svg element\r\n\r\n var markerSvg = new SVGElement(this.document, null);\r\n markerSvg.type = this.type;\r\n markerSvg.attributes.viewBox = new Property(this.document, 'viewBox', this.getAttribute('viewBox').getValue());\r\n markerSvg.attributes.refX = new Property(this.document, 'refX', this.getAttribute('refX').getValue());\r\n markerSvg.attributes.refY = new Property(this.document, 'refY', this.getAttribute('refY').getValue());\r\n markerSvg.attributes.width = new Property(this.document, 'width', this.getAttribute('markerWidth').getValue());\r\n markerSvg.attributes.height = new Property(this.document, 'height', this.getAttribute('markerHeight').getValue());\r\n markerSvg.attributes.overflow = new Property(this.document, 'overflow', this.getAttribute('overflow').getValue());\r\n markerSvg.attributes.fill = new Property(this.document, 'fill', this.getAttribute('fill').getColor('black'));\r\n markerSvg.attributes.stroke = new Property(this.document, 'stroke', this.getAttribute('stroke').getValue('none'));\r\n markerSvg.children = this.children;\r\n markerSvg.render(ctx);\r\n ctx.restore();\r\n\r\n if (markerUnits === 'strokeWidth') {\r\n ctx.scale(1 / ctx.lineWidth, 1 / ctx.lineWidth);\r\n }\r\n\r\n if (orient === 'auto') {\r\n ctx.rotate(-angle);\r\n }\r\n\r\n ctx.translate(-x, -y);\r\n }\r\n\r\n}\r\n\r\nclass DefsElement extends Element {\r\n constructor() {\r\n super(...arguments);\r\n this.type = 'defs';\r\n }\r\n\r\n render() {// NOOP\r\n }\r\n\r\n}\r\n\r\nclass GElement extends RenderedElement {\r\n constructor() {\r\n super(...arguments);\r\n this.type = 'g';\r\n }\r\n\r\n getBoundingBox(ctx) {\r\n var boundingBox = new BoundingBox();\r\n this.children.forEach(child => {\r\n boundingBox.addBoundingBox(child.getBoundingBox(ctx));\r\n });\r\n return boundingBox;\r\n }\r\n\r\n}\r\n\r\nclass GradientElement extends Element {\r\n constructor(document, node, captureTextNodes) {\r\n super(document, node, captureTextNodes);\r\n this.attributesToInherit = ['gradientUnits'];\r\n this.stops = [];\r\n var {\r\n stops,\r\n children\r\n } = this;\r\n children.forEach(child => {\r\n if (child.type === 'stop') {\r\n stops.push(child);\r\n }\r\n });\r\n }\r\n\r\n getGradientUnits() {\r\n return this.getAttribute('gradientUnits').getString('objectBoundingBox');\r\n }\r\n\r\n createGradient(ctx, element, parentOpacityProp) {\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this\r\n var stopsContainer = this;\r\n\r\n if (this.getHrefAttribute().hasValue()) {\r\n stopsContainer = this.getHrefAttribute().getDefinition();\r\n this.inheritStopContainer(stopsContainer);\r\n }\r\n\r\n var {\r\n stops\r\n } = stopsContainer;\r\n var gradient = this.getGradient(ctx, element);\r\n\r\n if (!gradient) {\r\n return this.addParentOpacity(parentOpacityProp, stops[stops.length - 1].color);\r\n }\r\n\r\n stops.forEach(stop => {\r\n gradient.addColorStop(stop.offset, this.addParentOpacity(parentOpacityProp, stop.color));\r\n });\r\n\r\n if (this.getAttribute('gradientTransform').hasValue()) {\r\n // render as transformed pattern on temporary canvas\r\n var {\r\n document\r\n } = this;\r\n var {\r\n MAX_VIRTUAL_PIXELS,\r\n viewPort\r\n } = document.screen;\r\n var [rootView] = viewPort.viewPorts;\r\n var rect = new RectElement(document, null);\r\n rect.attributes.x = new Property(document, 'x', -MAX_VIRTUAL_PIXELS / 3.0);\r\n rect.attributes.y = new Property(document, 'y', -MAX_VIRTUAL_PIXELS / 3.0);\r\n rect.attributes.width = new Property(document, 'width', MAX_VIRTUAL_PIXELS);\r\n rect.attributes.height = new Property(document, 'height', MAX_VIRTUAL_PIXELS);\r\n var group = new GElement(document, null);\r\n group.attributes.transform = new Property(document, 'transform', this.getAttribute('gradientTransform').getValue());\r\n group.children = [rect];\r\n var patternSvg = new SVGElement(document, null);\r\n patternSvg.attributes.x = new Property(document, 'x', 0);\r\n patternSvg.attributes.y = new Property(document, 'y', 0);\r\n patternSvg.attributes.width = new Property(document, 'width', rootView.width);\r\n patternSvg.attributes.height = new Property(document, 'height', rootView.height);\r\n patternSvg.children = [group];\r\n var patternCanvas = document.createCanvas(rootView.width, rootView.height);\r\n var patternCtx = patternCanvas.getContext('2d');\r\n patternCtx.fillStyle = gradient;\r\n patternSvg.render(patternCtx);\r\n return patternCtx.createPattern(patternCanvas, 'no-repeat');\r\n }\r\n\r\n return gradient;\r\n }\r\n\r\n inheritStopContainer(stopsContainer) {\r\n this.attributesToInherit.forEach(attributeToInherit => {\r\n if (!this.getAttribute(attributeToInherit).hasValue() && stopsContainer.getAttribute(attributeToInherit).hasValue()) {\r\n this.getAttribute(attributeToInherit, true).setValue(stopsContainer.getAttribute(attributeToInherit).getValue());\r\n }\r\n });\r\n }\r\n\r\n addParentOpacity(parentOpacityProp, color) {\r\n if (parentOpacityProp.hasValue()) {\r\n var colorProp = new Property(this.document, 'color', color);\r\n return colorProp.addOpacity(parentOpacityProp).getColor();\r\n }\r\n\r\n return color;\r\n }\r\n\r\n}\r\n\r\nclass LinearGradientElement extends GradientElement {\r\n constructor(document, node, captureTextNodes) {\r\n super(document, node, captureTextNodes);\r\n this.type = 'linearGradient';\r\n this.attributesToInherit.push('x1', 'y1', 'x2', 'y2');\r\n }\r\n\r\n getGradient(ctx, element) {\r\n var isBoundingBoxUnits = this.getGradientUnits() === 'objectBoundingBox';\r\n var boundingBox = isBoundingBoxUnits ? element.getBoundingBox(ctx) : null;\r\n\r\n if (isBoundingBoxUnits && !boundingBox) {\r\n return null;\r\n }\r\n\r\n if (!this.getAttribute('x1').hasValue() && !this.getAttribute('y1').hasValue() && !this.getAttribute('x2').hasValue() && !this.getAttribute('y2').hasValue()) {\r\n this.getAttribute('x1', true).setValue(0);\r\n this.getAttribute('y1', true).setValue(0);\r\n this.getAttribute('x2', true).setValue(1);\r\n this.getAttribute('y2', true).setValue(0);\r\n }\r\n\r\n var x1 = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('x1').getNumber() : this.getAttribute('x1').getPixels('x');\r\n var y1 = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('y1').getNumber() : this.getAttribute('y1').getPixels('y');\r\n var x2 = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('x2').getNumber() : this.getAttribute('x2').getPixels('x');\r\n var y2 = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('y2').getNumber() : this.getAttribute('y2').getPixels('y');\r\n\r\n if (x1 === x2 && y1 === y2) {\r\n return null;\r\n }\r\n\r\n return ctx.createLinearGradient(x1, y1, x2, y2);\r\n }\r\n\r\n}\r\n\r\nclass RadialGradientElement extends GradientElement {\r\n constructor(document, node, captureTextNodes) {\r\n super(document, node, captureTextNodes);\r\n this.type = 'radialGradient';\r\n this.attributesToInherit.push('cx', 'cy', 'r', 'fx', 'fy', 'fr');\r\n }\r\n\r\n getGradient(ctx, element) {\r\n var isBoundingBoxUnits = this.getGradientUnits() === 'objectBoundingBox';\r\n var boundingBox = element.getBoundingBox(ctx);\r\n\r\n if (isBoundingBoxUnits && !boundingBox) {\r\n return null;\r\n }\r\n\r\n if (!this.getAttribute('cx').hasValue()) {\r\n this.getAttribute('cx', true).setValue('50%');\r\n }\r\n\r\n if (!this.getAttribute('cy').hasValue()) {\r\n this.getAttribute('cy', true).setValue('50%');\r\n }\r\n\r\n if (!this.getAttribute('r').hasValue()) {\r\n this.getAttribute('r', true).setValue('50%');\r\n }\r\n\r\n var cx = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('cx').getNumber() : this.getAttribute('cx').getPixels('x');\r\n var cy = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('cy').getNumber() : this.getAttribute('cy').getPixels('y');\r\n var fx = cx;\r\n var fy = cy;\r\n\r\n if (this.getAttribute('fx').hasValue()) {\r\n fx = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('fx').getNumber() : this.getAttribute('fx').getPixels('x');\r\n }\r\n\r\n if (this.getAttribute('fy').hasValue()) {\r\n fy = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('fy').getNumber() : this.getAttribute('fy').getPixels('y');\r\n }\r\n\r\n var r = isBoundingBoxUnits ? (boundingBox.width + boundingBox.height) / 2.0 * this.getAttribute('r').getNumber() : this.getAttribute('r').getPixels();\r\n var fr = this.getAttribute('fr').getPixels();\r\n return ctx.createRadialGradient(fx, fy, fr, cx, cy, r);\r\n }\r\n\r\n}\r\n\r\nclass StopElement extends Element {\r\n constructor(document, node, captureTextNodes) {\r\n super(document, node, captureTextNodes);\r\n this.type = 'stop';\r\n var offset = Math.max(0, Math.min(1, this.getAttribute('offset').getNumber()));\r\n var stopOpacity = this.getStyle('stop-opacity');\r\n var stopColor = this.getStyle('stop-color', true);\r\n\r\n if (stopColor.getString() === '') {\r\n stopColor.setValue('#000');\r\n }\r\n\r\n if (stopOpacity.hasValue()) {\r\n stopColor = stopColor.addOpacity(stopOpacity);\r\n }\r\n\r\n this.offset = offset;\r\n this.color = stopColor.getColor();\r\n }\r\n\r\n}\r\n\r\nclass AnimateElement extends Element {\r\n constructor(document, node, captureTextNodes) {\r\n super(document, node, captureTextNodes);\r\n this.type = 'animate';\r\n this.duration = 0;\r\n this.initialValue = null;\r\n this.initialUnits = '';\r\n this.removed = false;\r\n this.frozen = false;\r\n document.screen.animations.push(this);\r\n this.begin = this.getAttribute('begin').getMilliseconds();\r\n this.maxDuration = this.begin + this.getAttribute('dur').getMilliseconds();\r\n this.from = this.getAttribute('from');\r\n this.to = this.getAttribute('to');\r\n this.values = new Property(document, 'values', null);\r\n var valuesAttr = this.getAttribute('values');\r\n\r\n if (valuesAttr.hasValue()) {\r\n this.values.setValue(valuesAttr.getString().split(';'));\r\n }\r\n }\r\n\r\n getProperty() {\r\n var attributeType = this.getAttribute('attributeType').getString();\r\n var attributeName = this.getAttribute('attributeName').getString();\r\n\r\n if (attributeType === 'CSS') {\r\n return this.parent.getStyle(attributeName, true);\r\n }\r\n\r\n return this.parent.getAttribute(attributeName, true);\r\n }\r\n\r\n calcValue() {\r\n var {\r\n initialUnits\r\n } = this;\r\n var {\r\n progress,\r\n from,\r\n to\r\n } = this.getProgress(); // tween value linearly\r\n\r\n var newValue = from.getNumber() + (to.getNumber() - from.getNumber()) * progress;\r\n\r\n if (initialUnits === '%') {\r\n newValue *= 100.0; // numValue() returns 0-1 whereas properties are 0-100\r\n }\r\n\r\n return \"\".concat(newValue).concat(initialUnits);\r\n }\r\n\r\n update(delta) {\r\n var {\r\n parent\r\n } = this;\r\n var prop = this.getProperty(); // set initial value\r\n\r\n if (!this.initialValue) {\r\n this.initialValue = prop.getString();\r\n this.initialUnits = prop.getUnits();\r\n } // if we're past the end time\r\n\r\n\r\n if (this.duration > this.maxDuration) {\r\n var fill = this.getAttribute('fill').getString('remove'); // loop for indefinitely repeating animations\r\n\r\n if (this.getAttribute('repeatCount').getString() === 'indefinite' || this.getAttribute('repeatDur').getString() === 'indefinite') {\r\n this.duration = 0;\r\n } else if (fill === 'freeze' && !this.frozen) {\r\n this.frozen = true;\r\n parent.animationFrozen = true;\r\n parent.animationFrozenValue = prop.getString();\r\n } else if (fill === 'remove' && !this.removed) {\r\n this.removed = true;\r\n prop.setValue(parent.animationFrozen ? parent.animationFrozenValue : this.initialValue);\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n this.duration += delta; // if we're past the begin time\r\n\r\n var updated = false;\r\n\r\n if (this.begin < this.duration) {\r\n var newValue = this.calcValue(); // tween\r\n\r\n var typeAttr = this.getAttribute('type');\r\n\r\n if (typeAttr.hasValue()) {\r\n // for transform, etc.\r\n var type = typeAttr.getString();\r\n newValue = \"\".concat(type, \"(\").concat(newValue, \")\");\r\n }\r\n\r\n prop.setValue(newValue);\r\n updated = true;\r\n }\r\n\r\n return updated;\r\n }\r\n\r\n getProgress() {\r\n var {\r\n document,\r\n values\r\n } = this;\r\n var result = {\r\n progress: (this.duration - this.begin) / (this.maxDuration - this.begin)\r\n };\r\n\r\n if (values.hasValue()) {\r\n var p = result.progress * (values.getValue().length - 1);\r\n var lb = Math.floor(p);\r\n var ub = Math.ceil(p);\r\n result.from = new Property(document, 'from', parseFloat(values.getValue()[lb]));\r\n result.to = new Property(document, 'to', parseFloat(values.getValue()[ub]));\r\n result.progress = (p - lb) / (ub - lb);\r\n } else {\r\n result.from = this.from;\r\n result.to = this.to;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n}\r\n\r\nclass AnimateColorElement extends AnimateElement {\r\n constructor() {\r\n super(...arguments);\r\n this.type = 'animateColor';\r\n }\r\n\r\n calcValue() {\r\n var {\r\n progress,\r\n from,\r\n to\r\n } = this.getProgress();\r\n var colorFrom = new RGBColor(from.getColor());\r\n var colorTo = new RGBColor(to.getColor());\r\n\r\n if (colorFrom.ok && colorTo.ok) {\r\n // tween color linearly\r\n var r = colorFrom.r + (colorTo.r - colorFrom.r) * progress;\r\n var g = colorFrom.g + (colorTo.g - colorFrom.g) * progress;\r\n var b = colorFrom.b + (colorTo.b - colorFrom.b) * progress; // ? alpha\r\n\r\n return \"rgb(\".concat(Math.floor(r), \", \").concat(Math.floor(g), \", \").concat(Math.floor(b), \")\");\r\n }\r\n\r\n return this.getAttribute('from').getColor();\r\n }\r\n\r\n}\r\n\r\nclass AnimateTransformElement extends AnimateElement {\r\n constructor() {\r\n super(...arguments);\r\n this.type = 'animateTransform';\r\n }\r\n\r\n calcValue() {\r\n var {\r\n progress,\r\n from,\r\n to\r\n } = this.getProgress(); // tween value linearly\r\n\r\n var transformFrom = toNumbers(from.getString());\r\n var transformTo = toNumbers(to.getString());\r\n var newValue = transformFrom.map((from, i) => {\r\n var to = transformTo[i];\r\n return from + (to - from) * progress;\r\n }).join(' ');\r\n return newValue;\r\n }\r\n\r\n}\r\n\r\nclass FontElement extends Element {\r\n constructor(document, node, captureTextNodes) {\r\n super(document, node, captureTextNodes);\r\n this.type = 'font';\r\n this.glyphs = {};\r\n this.horizAdvX = this.getAttribute('horiz-adv-x').getNumber();\r\n var {\r\n definitions\r\n } = document;\r\n var {\r\n children\r\n } = this;\r\n\r\n for (var child of children) {\r\n switch (child.type) {\r\n case 'font-face':\r\n {\r\n this.fontFace = child;\r\n var fontFamilyStyle = child.getStyle('font-family');\r\n\r\n if (fontFamilyStyle.hasValue()) {\r\n definitions[fontFamilyStyle.getString()] = this;\r\n }\r\n\r\n break;\r\n }\r\n\r\n case 'missing-glyph':\r\n this.missingGlyph = child;\r\n break;\r\n\r\n case 'glyph':\r\n {\r\n var glyph = child;\r\n\r\n if (glyph.arabicForm) {\r\n this.isRTL = true;\r\n this.isArabic = true;\r\n\r\n if (typeof this.glyphs[glyph.unicode] === 'undefined') {\r\n this.glyphs[glyph.unicode] = {};\r\n }\r\n\r\n this.glyphs[glyph.unicode][glyph.arabicForm] = glyph;\r\n } else {\r\n this.glyphs[glyph.unicode] = glyph;\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n render() {// NO RENDER\r\n }\r\n\r\n}\r\n\r\nclass FontFaceElement extends Element {\r\n constructor(document, node, captureTextNodes) {\r\n super(document, node, captureTextNodes);\r\n this.type = 'font-face';\r\n this.ascent = this.getAttribute('ascent').getNumber();\r\n this.descent = this.getAttribute('descent').getNumber();\r\n this.unitsPerEm = this.getAttribute('units-per-em').getNumber();\r\n }\r\n\r\n}\r\n\r\nclass MissingGlyphElement extends PathElement {\r\n constructor() {\r\n super(...arguments);\r\n this.type = 'missing-glyph';\r\n this.horizAdvX = 0;\r\n }\r\n\r\n}\r\n\r\nclass TRefElement extends TextElement {\r\n constructor() {\r\n super(...arguments);\r\n this.type = 'tref';\r\n }\r\n\r\n getText() {\r\n var element = this.getHrefAttribute().getDefinition();\r\n\r\n if (element) {\r\n var firstChild = element.children[0];\r\n\r\n if (firstChild) {\r\n return firstChild.getText();\r\n }\r\n }\r\n\r\n return '';\r\n }\r\n\r\n}\r\n\r\nclass AElement extends TextElement {\r\n constructor(document, node, captureTextNodes) {\r\n super(document, node, captureTextNodes);\r\n this.type = 'a';\r\n var {\r\n childNodes\r\n } = node;\r\n var firstChild = childNodes[0];\r\n var hasText = childNodes.length > 0 && Array.from(childNodes).every(node => node.nodeType === 3);\r\n this.hasText = hasText;\r\n this.text = hasText ? this.getTextFromNode(firstChild) : '';\r\n }\r\n\r\n getText() {\r\n return this.text;\r\n }\r\n\r\n renderChildren(ctx) {\r\n if (this.hasText) {\r\n // render as text element\r\n super.renderChildren(ctx);\r\n var {\r\n document,\r\n x,\r\n y\r\n } = this;\r\n var {\r\n mouse\r\n } = document.screen;\r\n var fontSize = new Property(document, 'fontSize', Font.parse(document.ctx.font).fontSize); // Do not calc bounding box if mouse is not working.\r\n\r\n if (mouse.isWorking()) {\r\n mouse.checkBoundingBox(this, new BoundingBox(x, y - fontSize.getPixels('y'), x + this.measureText(ctx), y));\r\n }\r\n } else if (this.children.length > 0) {\r\n // render as temporary group\r\n var g = new GElement(this.document, null);\r\n g.children = this.children;\r\n g.parent = this;\r\n g.render(ctx);\r\n }\r\n }\r\n\r\n onClick() {\r\n var {\r\n window\r\n } = this.document;\r\n\r\n if (window) {\r\n window.open(this.getHrefAttribute().getString());\r\n }\r\n }\r\n\r\n onMouseMove() {\r\n var ctx = this.document.ctx;\r\n ctx.canvas.style.cursor = 'pointer';\r\n }\r\n\r\n}\r\n\r\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; }\r\n\r\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; }\r\nclass TextPathElement extends TextElement {\r\n constructor(document, node, captureTextNodes) {\r\n super(document, node, captureTextNodes);\r\n this.type = 'textPath';\r\n this.textWidth = 0;\r\n this.textHeight = 0;\r\n this.pathLength = -1;\r\n this.glyphInfo = null;\r\n this.letterSpacingCache = [];\r\n this.measuresCache = new Map([['', 0]]);\r\n var pathElement = this.getHrefAttribute().getDefinition();\r\n this.text = this.getTextFromNode();\r\n this.dataArray = this.parsePathData(pathElement);\r\n }\r\n\r\n getText() {\r\n return this.text;\r\n }\r\n\r\n path(ctx) {\r\n var {\r\n dataArray\r\n } = this;\r\n\r\n if (ctx) {\r\n ctx.beginPath();\r\n }\r\n\r\n dataArray.forEach((_ref) => {\r\n var {\r\n type,\r\n points\r\n } = _ref;\r\n\r\n switch (type) {\r\n case PathParser.LINE_TO:\r\n if (ctx) {\r\n ctx.lineTo(points[0], points[1]);\r\n }\r\n\r\n break;\r\n\r\n case PathParser.MOVE_TO:\r\n if (ctx) {\r\n ctx.moveTo(points[0], points[1]);\r\n }\r\n\r\n break;\r\n\r\n case PathParser.CURVE_TO:\r\n if (ctx) {\r\n ctx.bezierCurveTo(points[0], points[1], points[2], points[3], points[4], points[5]);\r\n }\r\n\r\n break;\r\n\r\n case PathParser.QUAD_TO:\r\n if (ctx) {\r\n ctx.quadraticCurveTo(points[0], points[1], points[2], points[3]);\r\n }\r\n\r\n break;\r\n\r\n case PathParser.ARC:\r\n {\r\n var [cx, cy, rx, ry, theta, dTheta, psi, fs] = points;\r\n var r = rx > ry ? rx : ry;\r\n var scaleX = rx > ry ? 1 : rx / ry;\r\n var scaleY = rx > ry ? ry / rx : 1;\r\n\r\n if (ctx) {\r\n ctx.translate(cx, cy);\r\n ctx.rotate(psi);\r\n ctx.scale(scaleX, scaleY);\r\n ctx.arc(0, 0, r, theta, theta + dTheta, Boolean(1 - fs));\r\n ctx.scale(1 / scaleX, 1 / scaleY);\r\n ctx.rotate(-psi);\r\n ctx.translate(-cx, -cy);\r\n }\r\n\r\n break;\r\n }\r\n\r\n case PathParser.CLOSE_PATH:\r\n if (ctx) {\r\n ctx.closePath();\r\n }\r\n\r\n break;\r\n }\r\n });\r\n }\r\n\r\n renderChildren(ctx) {\r\n this.setTextData(ctx);\r\n ctx.save();\r\n var textDecoration = this.parent.getStyle('text-decoration').getString();\r\n var fontSize = this.getFontSize();\r\n var {\r\n glyphInfo\r\n } = this;\r\n var fill = ctx.fillStyle;\r\n\r\n if (textDecoration === 'underline') {\r\n ctx.beginPath();\r\n }\r\n\r\n glyphInfo.forEach((glyph, i) => {\r\n var {\r\n p0,\r\n p1,\r\n rotation,\r\n text: partialText\r\n } = glyph;\r\n ctx.save();\r\n ctx.translate(p0.x, p0.y);\r\n ctx.rotate(rotation);\r\n\r\n if (ctx.fillStyle) {\r\n ctx.fillText(partialText, 0, 0);\r\n }\r\n\r\n if (ctx.strokeStyle) {\r\n ctx.strokeText(partialText, 0, 0);\r\n }\r\n\r\n ctx.restore();\r\n\r\n if (textDecoration === 'underline') {\r\n if (i === 0) {\r\n ctx.moveTo(p0.x, p0.y + fontSize / 8);\r\n }\r\n\r\n ctx.lineTo(p1.x, p1.y + fontSize / 5);\r\n } // // To assist with debugging visually, uncomment following\r\n //\r\n // ctx.beginPath();\r\n // if (i % 2)\r\n // \tctx.strokeStyle = 'red';\r\n // else\r\n // \tctx.strokeStyle = 'green';\r\n // ctx.moveTo(p0.x, p0.y);\r\n // ctx.lineTo(p1.x, p1.y);\r\n // ctx.stroke();\r\n // ctx.closePath();\r\n\r\n });\r\n\r\n if (textDecoration === 'underline') {\r\n ctx.lineWidth = fontSize / 20;\r\n ctx.strokeStyle = fill;\r\n ctx.stroke();\r\n ctx.closePath();\r\n }\r\n\r\n ctx.restore();\r\n }\r\n\r\n getLetterSpacingAt() {\r\n var idx = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\r\n return this.letterSpacingCache[idx] || 0;\r\n }\r\n\r\n findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, inputOffset, dy, c, charI) {\r\n var offset = inputOffset;\r\n var glyphWidth = this.measureText(ctx, c);\r\n\r\n if (c === ' ' && anchor === 'justify' && textFullWidth < fullPathWidth) {\r\n glyphWidth += (fullPathWidth - textFullWidth) / spacesNumber;\r\n }\r\n\r\n if (charI > -1) {\r\n offset += this.getLetterSpacingAt(charI);\r\n }\r\n\r\n var splineStep = this.textHeight / 20;\r\n var p0 = this.getEquidistantPointOnPath(offset, splineStep, 0);\r\n var p1 = this.getEquidistantPointOnPath(offset + glyphWidth, splineStep, 0);\r\n var segment = {\r\n p0,\r\n p1\r\n };\r\n var rotation = p0 && p1 ? Math.atan2(p1.y - p0.y, p1.x - p0.x) : 0;\r\n\r\n if (dy) {\r\n var dyX = Math.cos(Math.PI / 2 + rotation) * dy;\r\n var dyY = Math.cos(-rotation) * dy;\r\n segment.p0 = _objectSpread$2(_objectSpread$2({}, p0), {}, {\r\n x: p0.x + dyX,\r\n y: p0.y + dyY\r\n });\r\n segment.p1 = _objectSpread$2(_objectSpread$2({}, p1), {}, {\r\n x: p1.x + dyX,\r\n y: p1.y + dyY\r\n });\r\n }\r\n\r\n offset += glyphWidth;\r\n return {\r\n offset,\r\n segment,\r\n rotation\r\n };\r\n }\r\n\r\n measureText(ctx, text) {\r\n var {\r\n measuresCache\r\n } = this;\r\n var targetText = text || this.getText();\r\n\r\n if (measuresCache.has(targetText)) {\r\n return measuresCache.get(targetText);\r\n }\r\n\r\n var measure = this.measureTargetText(ctx, targetText);\r\n measuresCache.set(targetText, measure);\r\n return measure;\r\n } // This method supposes what all custom fonts already loaded.\r\n // If some font will be loaded after this method call, will not be rendered correctly.\r\n // You need to call this method manually to update glyphs cache.\r\n\r\n\r\n setTextData(ctx) {\r\n if (this.glyphInfo) {\r\n return;\r\n }\r\n\r\n var renderText = this.getText();\r\n var chars = renderText.split('');\r\n var spacesNumber = renderText.split(' ').length - 1;\r\n var dx = this.parent.getAttribute('dx').split().map(_ => _.getPixels('x'));\r\n var dy = this.parent.getAttribute('dy').getPixels('y');\r\n var anchor = this.parent.getStyle('text-anchor').getString('start');\r\n var thisSpacing = this.getStyle('letter-spacing');\r\n var parentSpacing = this.parent.getStyle('letter-spacing');\r\n var letterSpacing = 0;\r\n\r\n if (!thisSpacing.hasValue() || thisSpacing.getValue() === 'inherit') {\r\n letterSpacing = parentSpacing.getPixels();\r\n } else if (thisSpacing.hasValue()) {\r\n if (thisSpacing.getValue() !== 'initial' && thisSpacing.getValue() !== 'unset') {\r\n letterSpacing = thisSpacing.getPixels();\r\n }\r\n } // fill letter-spacing cache\r\n\r\n\r\n var letterSpacingCache = [];\r\n var textLen = renderText.length;\r\n this.letterSpacingCache = letterSpacingCache;\r\n\r\n for (var i = 0; i < textLen; i++) {\r\n letterSpacingCache.push(typeof dx[i] !== 'undefined' ? dx[i] : letterSpacing);\r\n }\r\n\r\n var dxSum = letterSpacingCache.reduce((acc, cur, i) => i === 0 ? 0 : acc + cur || 0, 0);\r\n var textWidth = this.measureText(ctx);\r\n var textFullWidth = Math.max(textWidth + dxSum, 0);\r\n this.textWidth = textWidth;\r\n this.textHeight = this.getFontSize();\r\n this.glyphInfo = [];\r\n var fullPathWidth = this.getPathLength();\r\n var startOffset = this.getStyle('startOffset').getNumber(0) * fullPathWidth;\r\n var offset = 0;\r\n\r\n if (anchor === 'middle' || anchor === 'center') {\r\n offset = -textFullWidth / 2;\r\n }\r\n\r\n if (anchor === 'end' || anchor === 'right') {\r\n offset = -textFullWidth;\r\n }\r\n\r\n offset += startOffset;\r\n chars.forEach((char, i) => {\r\n // Find such segment what distance between p0 and p1 is approx. width of glyph\r\n var {\r\n offset: nextOffset,\r\n segment,\r\n rotation\r\n } = this.findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, offset, dy, char, i);\r\n offset = nextOffset;\r\n\r\n if (!segment.p0 || !segment.p1) {\r\n return;\r\n } // const width = this.getLineLength(\r\n // \tsegment.p0.x,\r\n // \tsegment.p0.y,\r\n // \tsegment.p1.x,\r\n // \tsegment.p1.y\r\n // );\r\n // Note: Since glyphs are rendered one at a time, any kerning pair data built into the font will not be used.\r\n // Can foresee having a rough pair table built in that the developer can override as needed.\r\n // Or use \"dx\" attribute of the node as a naive replacement\r\n // const kern = 0;\r\n // placeholder for future implementation\r\n // const midpoint = this.getPointOnLine(\r\n // \tkern + width / 2.0,\r\n // \tsegment.p0.x, segment.p0.y, segment.p1.x, segment.p1.y\r\n // );\r\n\r\n\r\n this.glyphInfo.push({\r\n // transposeX: midpoint.x,\r\n // transposeY: midpoint.y,\r\n text: chars[i],\r\n p0: segment.p0,\r\n p1: segment.p1,\r\n rotation\r\n });\r\n });\r\n }\r\n\r\n parsePathData(path) {\r\n this.pathLength = -1; // reset path length\r\n\r\n if (!path) {\r\n return [];\r\n }\r\n\r\n var pathCommands = [];\r\n var {\r\n pathParser\r\n } = path;\r\n pathParser.reset(); // convert l, H, h, V, and v to L\r\n\r\n while (!pathParser.isEnd()) {\r\n var {\r\n current\r\n } = pathParser;\r\n var startX = current ? current.x : 0;\r\n var startY = current ? current.y : 0;\r\n var command = pathParser.next();\r\n var nextCommandType = command.type;\r\n var points = [];\r\n\r\n switch (command.type) {\r\n case PathParser.MOVE_TO:\r\n this.pathM(pathParser, points);\r\n break;\r\n\r\n case PathParser.LINE_TO:\r\n nextCommandType = this.pathL(pathParser, points);\r\n break;\r\n\r\n case PathParser.HORIZ_LINE_TO:\r\n nextCommandType = this.pathH(pathParser, points);\r\n break;\r\n\r\n case PathParser.VERT_LINE_TO:\r\n nextCommandType = this.pathV(pathParser, points);\r\n break;\r\n\r\n case PathParser.CURVE_TO:\r\n this.pathC(pathParser, points);\r\n break;\r\n\r\n case PathParser.SMOOTH_CURVE_TO:\r\n nextCommandType = this.pathS(pathParser, points);\r\n break;\r\n\r\n case PathParser.QUAD_TO:\r\n this.pathQ(pathParser, points);\r\n break;\r\n\r\n case PathParser.SMOOTH_QUAD_TO:\r\n nextCommandType = this.pathT(pathParser, points);\r\n break;\r\n\r\n case PathParser.ARC:\r\n points = this.pathA(pathParser);\r\n break;\r\n\r\n case PathParser.CLOSE_PATH:\r\n PathElement.pathZ(pathParser);\r\n break;\r\n }\r\n\r\n if (command.type !== PathParser.CLOSE_PATH) {\r\n pathCommands.push({\r\n type: nextCommandType,\r\n points,\r\n start: {\r\n x: startX,\r\n y: startY\r\n },\r\n pathLength: this.calcLength(startX, startY, nextCommandType, points)\r\n });\r\n } else {\r\n pathCommands.push({\r\n type: PathParser.CLOSE_PATH,\r\n points: [],\r\n pathLength: 0\r\n });\r\n }\r\n }\r\n\r\n return pathCommands;\r\n }\r\n\r\n pathM(pathParser, points) {\r\n var {\r\n x,\r\n y\r\n } = PathElement.pathM(pathParser).point;\r\n points.push(x, y);\r\n }\r\n\r\n pathL(pathParser, points) {\r\n var {\r\n x,\r\n y\r\n } = PathElement.pathL(pathParser).point;\r\n points.push(x, y);\r\n return PathParser.LINE_TO;\r\n }\r\n\r\n pathH(pathParser, points) {\r\n var {\r\n x,\r\n y\r\n } = PathElement.pathH(pathParser).point;\r\n points.push(x, y);\r\n return PathParser.LINE_TO;\r\n }\r\n\r\n pathV(pathParser, points) {\r\n var {\r\n x,\r\n y\r\n } = PathElement.pathV(pathParser).point;\r\n points.push(x, y);\r\n return PathParser.LINE_TO;\r\n }\r\n\r\n pathC(pathParser, points) {\r\n var {\r\n point,\r\n controlPoint,\r\n currentPoint\r\n } = PathElement.pathC(pathParser);\r\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\r\n }\r\n\r\n pathS(pathParser, points) {\r\n var {\r\n point,\r\n controlPoint,\r\n currentPoint\r\n } = PathElement.pathS(pathParser);\r\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\r\n return PathParser.CURVE_TO;\r\n }\r\n\r\n pathQ(pathParser, points) {\r\n var {\r\n controlPoint,\r\n currentPoint\r\n } = PathElement.pathQ(pathParser);\r\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\r\n }\r\n\r\n pathT(pathParser, points) {\r\n var {\r\n controlPoint,\r\n currentPoint\r\n } = PathElement.pathT(pathParser);\r\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\r\n return PathParser.QUAD_TO;\r\n }\r\n\r\n pathA(pathParser) {\r\n var {\r\n rX,\r\n rY,\r\n sweepFlag,\r\n xAxisRotation,\r\n centp,\r\n a1,\r\n ad\r\n } = PathElement.pathA(pathParser);\r\n\r\n if (sweepFlag === 0 && ad > 0) {\r\n ad -= 2 * Math.PI;\r\n }\r\n\r\n if (sweepFlag === 1 && ad < 0) {\r\n ad += 2 * Math.PI;\r\n }\r\n\r\n return [centp.x, centp.y, rX, rY, a1, ad, xAxisRotation, sweepFlag];\r\n }\r\n\r\n calcLength(x, y, commandType, points) {\r\n var len = 0;\r\n var p1 = null;\r\n var p2 = null;\r\n var t = 0;\r\n\r\n switch (commandType) {\r\n case PathParser.LINE_TO:\r\n return this.getLineLength(x, y, points[0], points[1]);\r\n\r\n case PathParser.CURVE_TO:\r\n // Approximates by breaking curve into 100 line segments\r\n len = 0.0;\r\n p1 = this.getPointOnCubicBezier(0, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\r\n\r\n for (t = 0.01; t <= 1; t += 0.01) {\r\n p2 = this.getPointOnCubicBezier(t, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\r\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\r\n p1 = p2;\r\n }\r\n\r\n return len;\r\n\r\n case PathParser.QUAD_TO:\r\n // Approximates by breaking curve into 100 line segments\r\n len = 0.0;\r\n p1 = this.getPointOnQuadraticBezier(0, x, y, points[0], points[1], points[2], points[3]);\r\n\r\n for (t = 0.01; t <= 1; t += 0.01) {\r\n p2 = this.getPointOnQuadraticBezier(t, x, y, points[0], points[1], points[2], points[3]);\r\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\r\n p1 = p2;\r\n }\r\n\r\n return len;\r\n\r\n case PathParser.ARC:\r\n {\r\n // Approximates by breaking curve into line segments\r\n len = 0.0;\r\n var start = points[4]; // 4 = theta\r\n\r\n var dTheta = points[5]; // 5 = dTheta\r\n\r\n var end = points[4] + dTheta;\r\n var inc = Math.PI / 180.0; // 1 degree resolution\r\n\r\n if (Math.abs(start - end) < inc) {\r\n inc = Math.abs(start - end);\r\n } // Note: for purpose of calculating arc length, not going to worry about rotating X-axis by angle psi\r\n\r\n\r\n p1 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], start, 0);\r\n\r\n if (dTheta < 0) {\r\n // clockwise\r\n for (t = start - inc; t > end; t -= inc) {\r\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\r\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\r\n p1 = p2;\r\n }\r\n } else {\r\n // counter-clockwise\r\n for (t = start + inc; t < end; t += inc) {\r\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\r\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\r\n p1 = p2;\r\n }\r\n }\r\n\r\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], end, 0);\r\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\r\n return len;\r\n }\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n getPointOnLine(dist, p1x, p1y, p2x, p2y) {\r\n var fromX = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : p1x;\r\n var fromY = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : p1y;\r\n var m = (p2y - p1y) / (p2x - p1x + PSEUDO_ZERO);\r\n var run = Math.sqrt(dist * dist / (1 + m * m));\r\n\r\n if (p2x < p1x) {\r\n run *= -1;\r\n }\r\n\r\n var rise = m * run;\r\n var pt = null;\r\n\r\n if (p2x === p1x) {\r\n // vertical line\r\n pt = {\r\n x: fromX,\r\n y: fromY + rise\r\n };\r\n } else if ((fromY - p1y) / (fromX - p1x + PSEUDO_ZERO) === m) {\r\n pt = {\r\n x: fromX + run,\r\n y: fromY + rise\r\n };\r\n } else {\r\n var ix = 0;\r\n var iy = 0;\r\n var len = this.getLineLength(p1x, p1y, p2x, p2y);\r\n\r\n if (len < PSEUDO_ZERO) {\r\n return null;\r\n }\r\n\r\n var u = (fromX - p1x) * (p2x - p1x) + (fromY - p1y) * (p2y - p1y);\r\n u /= len * len;\r\n ix = p1x + u * (p2x - p1x);\r\n iy = p1y + u * (p2y - p1y);\r\n var pRise = this.getLineLength(fromX, fromY, ix, iy);\r\n var pRun = Math.sqrt(dist * dist - pRise * pRise);\r\n run = Math.sqrt(pRun * pRun / (1 + m * m));\r\n\r\n if (p2x < p1x) {\r\n run *= -1;\r\n }\r\n\r\n rise = m * run;\r\n pt = {\r\n x: ix + run,\r\n y: iy + rise\r\n };\r\n }\r\n\r\n return pt;\r\n }\r\n\r\n getPointOnPath(distance) {\r\n var fullLen = this.getPathLength();\r\n var cumulativePathLength = 0;\r\n var p = null;\r\n\r\n if (distance < -0.00005 || distance - 0.00005 > fullLen) {\r\n return null;\r\n }\r\n\r\n var {\r\n dataArray\r\n } = this;\r\n\r\n for (var command of dataArray) {\r\n if (command && (command.pathLength < 0.00005 || cumulativePathLength + command.pathLength + 0.00005 < distance)) {\r\n cumulativePathLength += command.pathLength;\r\n continue;\r\n }\r\n\r\n var delta = distance - cumulativePathLength;\r\n var currentT = 0;\r\n\r\n switch (command.type) {\r\n case PathParser.LINE_TO:\r\n p = this.getPointOnLine(delta, command.start.x, command.start.y, command.points[0], command.points[1], command.start.x, command.start.y);\r\n break;\r\n\r\n case PathParser.ARC:\r\n {\r\n var start = command.points[4]; // 4 = theta\r\n\r\n var dTheta = command.points[5]; // 5 = dTheta\r\n\r\n var end = command.points[4] + dTheta;\r\n currentT = start + delta / command.pathLength * dTheta;\r\n\r\n if (dTheta < 0 && currentT < end || dTheta >= 0 && currentT > end) {\r\n break;\r\n }\r\n\r\n p = this.getPointOnEllipticalArc(command.points[0], command.points[1], command.points[2], command.points[3], currentT, command.points[6]);\r\n break;\r\n }\r\n\r\n case PathParser.CURVE_TO:\r\n currentT = delta / command.pathLength;\r\n\r\n if (currentT > 1) {\r\n currentT = 1;\r\n }\r\n\r\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]);\r\n break;\r\n\r\n case PathParser.QUAD_TO:\r\n currentT = delta / command.pathLength;\r\n\r\n if (currentT > 1) {\r\n currentT = 1;\r\n }\r\n\r\n p = this.getPointOnQuadraticBezier(currentT, command.start.x, command.start.y, command.points[0], command.points[1], command.points[2], command.points[3]);\r\n break;\r\n }\r\n\r\n if (p) {\r\n return p;\r\n }\r\n\r\n break;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n getLineLength(x1, y1, x2, y2) {\r\n return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\r\n }\r\n\r\n getPathLength() {\r\n if (this.pathLength === -1) {\r\n this.pathLength = this.dataArray.reduce((length, command) => command.pathLength > 0 ? length + command.pathLength : length, 0);\r\n }\r\n\r\n return this.pathLength;\r\n }\r\n\r\n getPointOnCubicBezier(pct, p1x, p1y, p2x, p2y, p3x, p3y, p4x, p4y) {\r\n var x = p4x * CB1(pct) + p3x * CB2(pct) + p2x * CB3(pct) + p1x * CB4(pct);\r\n var y = p4y * CB1(pct) + p3y * CB2(pct) + p2y * CB3(pct) + p1y * CB4(pct);\r\n return {\r\n x,\r\n y\r\n };\r\n }\r\n\r\n getPointOnQuadraticBezier(pct, p1x, p1y, p2x, p2y, p3x, p3y) {\r\n var x = p3x * QB1(pct) + p2x * QB2(pct) + p1x * QB3(pct);\r\n var y = p3y * QB1(pct) + p2y * QB2(pct) + p1y * QB3(pct);\r\n return {\r\n x,\r\n y\r\n };\r\n }\r\n\r\n getPointOnEllipticalArc(cx, cy, rx, ry, theta, psi) {\r\n var cosPsi = Math.cos(psi);\r\n var sinPsi = Math.sin(psi);\r\n var pt = {\r\n x: rx * Math.cos(theta),\r\n y: ry * Math.sin(theta)\r\n };\r\n return {\r\n x: cx + (pt.x * cosPsi - pt.y * sinPsi),\r\n y: cy + (pt.x * sinPsi + pt.y * cosPsi)\r\n };\r\n } // TODO need some optimisations. possibly build cache only for curved segments?\r\n\r\n\r\n buildEquidistantCache(inputStep, inputPrecision) {\r\n var fullLen = this.getPathLength();\r\n var precision = inputPrecision || 0.25; // accuracy vs performance\r\n\r\n var step = inputStep || fullLen / 100;\r\n\r\n if (!this.equidistantCache || this.equidistantCache.step !== step || this.equidistantCache.precision !== precision) {\r\n // Prepare cache\r\n this.equidistantCache = {\r\n step,\r\n precision,\r\n points: []\r\n }; // Calculate points\r\n\r\n var s = 0;\r\n\r\n for (var l = 0; l <= fullLen; l += precision) {\r\n var p0 = this.getPointOnPath(l);\r\n var p1 = this.getPointOnPath(l + precision);\r\n\r\n if (!p0 || !p1) {\r\n continue;\r\n }\r\n\r\n s += this.getLineLength(p0.x, p0.y, p1.x, p1.y);\r\n\r\n if (s >= step) {\r\n this.equidistantCache.points.push({\r\n x: p0.x,\r\n y: p0.y,\r\n distance: l\r\n });\r\n s -= step;\r\n }\r\n }\r\n }\r\n }\r\n\r\n getEquidistantPointOnPath(targetDistance, step, precision) {\r\n this.buildEquidistantCache(step, precision);\r\n\r\n if (targetDistance < 0 || targetDistance - this.getPathLength() > 0.00005) {\r\n return null;\r\n }\r\n\r\n var idx = Math.round(targetDistance / this.getPathLength() * (this.equidistantCache.points.length - 1));\r\n return this.equidistantCache.points[idx] || null;\r\n }\r\n\r\n}\r\n\r\nvar dataUriRegex = /^\\s*data:(([^/,;]+\\/[^/,;]+)(?:;([^,;=]+=[^,;=]+))?)?(?:;(base64))?,(.*)$/i;\r\nclass ImageElement extends RenderedElement {\r\n constructor(document, node, captureTextNodes) {\r\n super(document, node, captureTextNodes);\r\n this.type = 'image';\r\n this.loaded = false;\r\n var href = this.getHrefAttribute().getString();\r\n\r\n if (!href) {\r\n return;\r\n }\r\n\r\n var isSvg = href.endsWith('.svg') || /^\\s*data:image\\/svg\\+xml/i.test(href);\r\n document.images.push(this);\r\n\r\n if (!isSvg) {\r\n void this.loadImage(href);\r\n } else {\r\n void this.loadSvg(href);\r\n }\r\n\r\n this.isSvg = isSvg;\r\n }\r\n\r\n loadImage(href) {\r\n var _this = this;\r\n\r\n return _asyncToGenerator(function* () {\r\n try {\r\n var image = yield _this.document.createImage(href);\r\n _this.image = image;\r\n } catch (err) {\r\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), err);\r\n }\r\n\r\n _this.loaded = true;\r\n })();\r\n }\r\n\r\n loadSvg(href) {\r\n var _this2 = this;\r\n\r\n return _asyncToGenerator(function* () {\r\n var match = dataUriRegex.exec(href);\r\n\r\n if (match) {\r\n var data = match[5];\r\n\r\n if (match[4] === 'base64') {\r\n _this2.image = atob(data);\r\n } else {\r\n _this2.image = decodeURIComponent(data);\r\n }\r\n } else {\r\n try {\r\n var response = yield _this2.document.fetch(href);\r\n var svg = yield response.text();\r\n _this2.image = svg;\r\n } catch (err) {\r\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), err);\r\n }\r\n }\r\n\r\n _this2.loaded = true;\r\n })();\r\n }\r\n\r\n renderChildren(ctx) {\r\n var {\r\n document,\r\n image,\r\n loaded\r\n } = this;\r\n var x = this.getAttribute('x').getPixels('x');\r\n var y = this.getAttribute('y').getPixels('y');\r\n var width = this.getStyle('width').getPixels('x');\r\n var height = this.getStyle('height').getPixels('y');\r\n\r\n if (!loaded || !image || !width || !height) {\r\n return;\r\n }\r\n\r\n ctx.save();\r\n ctx.translate(x, y);\r\n\r\n if (this.isSvg) {\r\n var subDocument = document.canvg.forkString(ctx, this.image, {\r\n ignoreMouse: true,\r\n ignoreAnimation: true,\r\n ignoreDimensions: true,\r\n ignoreClear: true,\r\n offsetX: 0,\r\n offsetY: 0,\r\n scaleWidth: width,\r\n scaleHeight: height\r\n });\r\n subDocument.document.documentElement.parent = this;\r\n void subDocument.render();\r\n } else {\r\n var _image = this.image;\r\n document.setViewBox({\r\n ctx,\r\n aspectRatio: this.getAttribute('preserveAspectRatio').getString(),\r\n width,\r\n desiredWidth: _image.width,\r\n height,\r\n desiredHeight: _image.height\r\n });\r\n\r\n if (this.loaded) {\r\n if (typeof _image.complete === 'undefined' || _image.complete) {\r\n ctx.drawImage(_image, 0, 0);\r\n }\r\n }\r\n }\r\n\r\n ctx.restore();\r\n }\r\n\r\n getBoundingBox() {\r\n var x = this.getAttribute('x').getPixels('x');\r\n var y = this.getAttribute('y').getPixels('y');\r\n var width = this.getStyle('width').getPixels('x');\r\n var height = this.getStyle('height').getPixels('y');\r\n return new BoundingBox(x, y, x + width, y + height);\r\n }\r\n\r\n}\r\n\r\nclass SymbolElement extends RenderedElement {\r\n constructor() {\r\n super(...arguments);\r\n this.type = 'symbol';\r\n }\r\n\r\n render(_) {// NO RENDER\r\n }\r\n\r\n}\r\n\r\nclass SVGFontLoader {\r\n constructor(document) {\r\n this.document = document;\r\n this.loaded = false;\r\n document.fonts.push(this);\r\n }\r\n\r\n load(fontFamily, url) {\r\n var _this = this;\r\n\r\n return _asyncToGenerator(function* () {\r\n try {\r\n var {\r\n document\r\n } = _this;\r\n var svgDocument = yield document.canvg.parser.load(url);\r\n var fonts = svgDocument.getElementsByTagName('font');\r\n Array.from(fonts).forEach(fontNode => {\r\n var font = document.createElement(fontNode);\r\n document.definitions[fontFamily] = font;\r\n });\r\n } catch (err) {\r\n console.error(\"Error while loading font \\\"\".concat(url, \"\\\":\"), err);\r\n }\r\n\r\n _this.loaded = true;\r\n })();\r\n }\r\n\r\n}\r\n\r\nclass StyleElement extends Element {\r\n constructor(document, node, captureTextNodes) {\r\n super(document, node, captureTextNodes);\r\n this.type = 'style';\r\n var css = compressSpaces(Array.from(node.childNodes) // NEED TEST\r\n .map(_ => _.textContent).join('').replace(/(\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+\\/)|(^[\\s]*\\/\\/.*)/gm, '') // remove comments\r\n .replace(/@import.*;/g, '') // remove imports\r\n );\r\n var cssDefs = css.split('}');\r\n cssDefs.forEach(_ => {\r\n var def = _.trim();\r\n\r\n if (!def) {\r\n return;\r\n }\r\n\r\n var cssParts = def.split('{');\r\n var cssClasses = cssParts[0].split(',');\r\n var cssProps = cssParts[1].split(';');\r\n cssClasses.forEach(_ => {\r\n var cssClass = _.trim();\r\n\r\n if (!cssClass) {\r\n return;\r\n }\r\n\r\n var props = document.styles[cssClass] || {};\r\n cssProps.forEach(cssProp => {\r\n var prop = cssProp.indexOf(':');\r\n var name = cssProp.substr(0, prop).trim();\r\n var value = cssProp.substr(prop + 1, cssProp.length - prop).trim();\r\n\r\n if (name && value) {\r\n props[name] = new Property(document, name, value);\r\n }\r\n });\r\n document.styles[cssClass] = props;\r\n document.stylesSpecificity[cssClass] = getSelectorSpecificity(cssClass);\r\n\r\n if (cssClass === '@font-face') {\r\n // && !nodeEnv\r\n var fontFamily = props['font-family'].getString().replace(/\"|'/g, '');\r\n var srcs = props.src.getString().split(',');\r\n srcs.forEach(src => {\r\n if (src.indexOf('format(\"svg\")') > 0) {\r\n var url = parseExternalUrl(src);\r\n\r\n if (url) {\r\n void new SVGFontLoader(document).load(fontFamily, url);\r\n }\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n}\r\nStyleElement.parseExternalUrl = parseExternalUrl;\r\n\r\nclass UseElement extends RenderedElement {\r\n constructor() {\r\n super(...arguments);\r\n this.type = 'use';\r\n }\r\n\r\n setContext(ctx) {\r\n super.setContext(ctx);\r\n var xAttr = this.getAttribute('x');\r\n var yAttr = this.getAttribute('y');\r\n\r\n if (xAttr.hasValue()) {\r\n ctx.translate(xAttr.getPixels('x'), 0);\r\n }\r\n\r\n if (yAttr.hasValue()) {\r\n ctx.translate(0, yAttr.getPixels('y'));\r\n }\r\n }\r\n\r\n path(ctx) {\r\n var {\r\n element\r\n } = this;\r\n\r\n if (element) {\r\n element.path(ctx);\r\n }\r\n }\r\n\r\n renderChildren(ctx) {\r\n var {\r\n document,\r\n element\r\n } = this;\r\n\r\n if (element) {\r\n var tempSvg = element;\r\n\r\n if (element.type === 'symbol') {\r\n // render me using a temporary svg element in symbol cases (http://www.w3.org/TR/SVG/struct.html#UseElement)\r\n tempSvg = new SVGElement(document, null);\r\n tempSvg.attributes.viewBox = new Property(document, 'viewBox', element.getAttribute('viewBox').getString());\r\n tempSvg.attributes.preserveAspectRatio = new Property(document, 'preserveAspectRatio', element.getAttribute('preserveAspectRatio').getString());\r\n tempSvg.attributes.overflow = new Property(document, 'overflow', element.getAttribute('overflow').getString());\r\n tempSvg.children = element.children; // element is still the parent of the children\r\n\r\n element.styles.opacity = new Property(document, 'opacity', this.calculateOpacity());\r\n }\r\n\r\n if (tempSvg.type === 'svg') {\r\n var widthStyle = this.getStyle('width', false, true);\r\n var heightStyle = this.getStyle('height', false, true); // if symbol or svg, inherit width/height from me\r\n\r\n if (widthStyle.hasValue()) {\r\n tempSvg.attributes.width = new Property(document, 'width', widthStyle.getString());\r\n }\r\n\r\n if (heightStyle.hasValue()) {\r\n tempSvg.attributes.height = new Property(document, 'height', heightStyle.getString());\r\n }\r\n }\r\n\r\n var oldParent = tempSvg.parent;\r\n tempSvg.parent = this;\r\n tempSvg.render(ctx);\r\n tempSvg.parent = oldParent;\r\n }\r\n }\r\n\r\n getBoundingBox(ctx) {\r\n var {\r\n element\r\n } = this;\r\n\r\n if (element) {\r\n return element.getBoundingBox(ctx);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n elementTransform() {\r\n var {\r\n document,\r\n element\r\n } = this;\r\n return Transform.fromElement(document, element);\r\n }\r\n\r\n get element() {\r\n if (!this.cachedElement) {\r\n this.cachedElement = this.getHrefAttribute().getDefinition();\r\n }\r\n\r\n return this.cachedElement;\r\n }\r\n\r\n}\r\n\r\nfunction imGet(img, x, y, width, _height, rgba) {\r\n return img[y * width * 4 + x * 4 + rgba];\r\n}\r\n\r\nfunction imSet(img, x, y, width, _height, rgba, val) {\r\n img[y * width * 4 + x * 4 + rgba] = val;\r\n}\r\n\r\nfunction m(matrix, i, v) {\r\n var mi = matrix[i];\r\n return mi * v;\r\n}\r\n\r\nfunction c(a, m1, m2, m3) {\r\n return m1 + Math.cos(a) * m2 + Math.sin(a) * m3;\r\n}\r\n\r\nclass FeColorMatrixElement extends Element {\r\n constructor(document, node, captureTextNodes) {\r\n super(document, node, captureTextNodes);\r\n this.type = 'feColorMatrix';\r\n var matrix = toNumbers(this.getAttribute('values').getString());\r\n\r\n switch (this.getAttribute('type').getString('matrix')) {\r\n // http://www.w3.org/TR/SVG/filters.html#feColorMatrixElement\r\n case 'saturate':\r\n {\r\n var s = matrix[0];\r\n /* eslint-disable array-element-newline */\r\n\r\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];\r\n /* eslint-enable array-element-newline */\r\n\r\n break;\r\n }\r\n\r\n case 'hueRotate':\r\n {\r\n var a = matrix[0] * Math.PI / 180.0;\r\n /* eslint-disable array-element-newline */\r\n\r\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];\r\n /* eslint-enable array-element-newline */\r\n\r\n break;\r\n }\r\n\r\n case 'luminanceToAlpha':\r\n /* eslint-disable array-element-newline */\r\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];\r\n /* eslint-enable array-element-newline */\r\n\r\n break;\r\n }\r\n\r\n this.matrix = matrix;\r\n this.includeOpacity = this.getAttribute('includeOpacity').hasValue();\r\n }\r\n\r\n apply(ctx, _x, _y, width, height) {\r\n // assuming x==0 && y==0 for now\r\n var {\r\n includeOpacity,\r\n matrix\r\n } = this;\r\n var srcData = ctx.getImageData(0, 0, width, height);\r\n\r\n for (var y = 0; y < height; y++) {\r\n for (var x = 0; x < width; x++) {\r\n var r = imGet(srcData.data, x, y, width, height, 0);\r\n var g = imGet(srcData.data, x, y, width, height, 1);\r\n var b = imGet(srcData.data, x, y, width, height, 2);\r\n var a = imGet(srcData.data, x, y, width, height, 3);\r\n var nr = m(matrix, 0, r) + m(matrix, 1, g) + m(matrix, 2, b) + m(matrix, 3, a) + m(matrix, 4, 1);\r\n var ng = m(matrix, 5, r) + m(matrix, 6, g) + m(matrix, 7, b) + m(matrix, 8, a) + m(matrix, 9, 1);\r\n var nb = m(matrix, 10, r) + m(matrix, 11, g) + m(matrix, 12, b) + m(matrix, 13, a) + m(matrix, 14, 1);\r\n var na = m(matrix, 15, r) + m(matrix, 16, g) + m(matrix, 17, b) + m(matrix, 18, a) + m(matrix, 19, 1);\r\n\r\n if (includeOpacity) {\r\n nr = 0;\r\n ng = 0;\r\n nb = 0;\r\n na *= a / 255;\r\n }\r\n\r\n imSet(srcData.data, x, y, width, height, 0, nr);\r\n imSet(srcData.data, x, y, width, height, 1, ng);\r\n imSet(srcData.data, x, y, width, height, 2, nb);\r\n imSet(srcData.data, x, y, width, height, 3, na);\r\n }\r\n }\r\n\r\n ctx.clearRect(0, 0, width, height);\r\n ctx.putImageData(srcData, 0, 0);\r\n }\r\n\r\n}\r\n\r\nclass MaskElement extends Element {\r\n constructor() {\r\n super(...arguments);\r\n this.type = 'mask';\r\n }\r\n\r\n apply(ctx, element) {\r\n var {\r\n document\r\n } = this; // render as temp svg\r\n\r\n var x = this.getAttribute('x').getPixels('x');\r\n var y = this.getAttribute('y').getPixels('y');\r\n var width = this.getStyle('width').getPixels('x');\r\n var height = this.getStyle('height').getPixels('y');\r\n\r\n if (!width && !height) {\r\n var boundingBox = new BoundingBox();\r\n this.children.forEach(child => {\r\n boundingBox.addBoundingBox(child.getBoundingBox(ctx));\r\n });\r\n x = Math.floor(boundingBox.x1);\r\n y = Math.floor(boundingBox.y1);\r\n width = Math.floor(boundingBox.width);\r\n height = Math.floor(boundingBox.height);\r\n }\r\n\r\n var ignoredStyles = this.removeStyles(element, MaskElement.ignoreStyles);\r\n var maskCanvas = document.createCanvas(x + width, y + height);\r\n var maskCtx = maskCanvas.getContext('2d');\r\n document.screen.setDefaults(maskCtx);\r\n this.renderChildren(maskCtx); // convert mask to alpha with a fake node\r\n // TODO: refactor out apply from feColorMatrix\r\n\r\n new FeColorMatrixElement(document, {\r\n nodeType: 1,\r\n childNodes: [],\r\n attributes: [{\r\n nodeName: 'type',\r\n value: 'luminanceToAlpha'\r\n }, {\r\n nodeName: 'includeOpacity',\r\n value: 'true'\r\n }]\r\n }).apply(maskCtx, 0, 0, x + width, y + height);\r\n var tmpCanvas = document.createCanvas(x + width, y + height);\r\n var tmpCtx = tmpCanvas.getContext('2d');\r\n document.screen.setDefaults(tmpCtx);\r\n element.render(tmpCtx);\r\n tmpCtx.globalCompositeOperation = 'destination-in';\r\n tmpCtx.fillStyle = maskCtx.createPattern(maskCanvas, 'no-repeat');\r\n tmpCtx.fillRect(0, 0, x + width, y + height);\r\n ctx.fillStyle = tmpCtx.createPattern(tmpCanvas, 'no-repeat');\r\n ctx.fillRect(0, 0, x + width, y + height); // reassign mask\r\n\r\n this.restoreStyles(element, ignoredStyles);\r\n }\r\n\r\n render(_) {// NO RENDER\r\n }\r\n\r\n}\r\nMaskElement.ignoreStyles = ['mask', 'transform', 'clip-path'];\r\n\r\nvar noop = () => {// NOOP\r\n};\r\n\r\nclass ClipPathElement extends Element {\r\n constructor() {\r\n super(...arguments);\r\n this.type = 'clipPath';\r\n }\r\n\r\n apply(ctx) {\r\n var {\r\n document\r\n } = this;\r\n var contextProto = Reflect.getPrototypeOf(ctx);\r\n var {\r\n beginPath,\r\n closePath\r\n } = ctx;\r\n\r\n if (contextProto) {\r\n contextProto.beginPath = noop;\r\n contextProto.closePath = noop;\r\n }\r\n\r\n Reflect.apply(beginPath, ctx, []);\r\n this.children.forEach(child => {\r\n if (typeof child.path === 'undefined') {\r\n return;\r\n }\r\n\r\n var transform = typeof child.elementTransform !== 'undefined' ? child.elementTransform() : null; // handle \r\n\r\n if (!transform) {\r\n transform = Transform.fromElement(document, child);\r\n }\r\n\r\n if (transform) {\r\n transform.apply(ctx);\r\n }\r\n\r\n child.path(ctx);\r\n\r\n if (contextProto) {\r\n contextProto.closePath = closePath;\r\n }\r\n\r\n if (transform) {\r\n transform.unapply(ctx);\r\n }\r\n });\r\n Reflect.apply(closePath, ctx, []);\r\n ctx.clip();\r\n\r\n if (contextProto) {\r\n contextProto.beginPath = beginPath;\r\n contextProto.closePath = closePath;\r\n }\r\n }\r\n\r\n render(_) {// NO RENDER\r\n }\r\n\r\n}\r\n\r\nclass FilterElement extends Element {\r\n constructor() {\r\n super(...arguments);\r\n this.type = 'filter';\r\n }\r\n\r\n apply(ctx, element) {\r\n // render as temp svg\r\n var {\r\n document,\r\n children\r\n } = this;\r\n var boundingBox = element.getBoundingBox(ctx);\r\n\r\n if (!boundingBox) {\r\n return;\r\n }\r\n\r\n var px = 0;\r\n var py = 0;\r\n children.forEach(child => {\r\n var efd = child.extraFilterDistance || 0;\r\n px = Math.max(px, efd);\r\n py = Math.max(py, efd);\r\n });\r\n var width = Math.floor(boundingBox.width);\r\n var height = Math.floor(boundingBox.height);\r\n var tmpCanvasWidth = width + 2 * px;\r\n var tmpCanvasHeight = height + 2 * py;\r\n\r\n if (tmpCanvasWidth < 1 || tmpCanvasHeight < 1) {\r\n return;\r\n }\r\n\r\n var x = Math.floor(boundingBox.x);\r\n var y = Math.floor(boundingBox.y);\r\n var ignoredStyles = this.removeStyles(element, FilterElement.ignoreStyles);\r\n var tmpCanvas = document.createCanvas(tmpCanvasWidth, tmpCanvasHeight);\r\n var tmpCtx = tmpCanvas.getContext('2d');\r\n document.screen.setDefaults(tmpCtx);\r\n tmpCtx.translate(-x + px, -y + py);\r\n element.render(tmpCtx); // apply filters\r\n\r\n children.forEach(child => {\r\n if (typeof child.apply === 'function') {\r\n child.apply(tmpCtx, 0, 0, tmpCanvasWidth, tmpCanvasHeight);\r\n }\r\n }); // render on me\r\n\r\n ctx.drawImage(tmpCanvas, 0, 0, tmpCanvasWidth, tmpCanvasHeight, x - px, y - py, tmpCanvasWidth, tmpCanvasHeight);\r\n this.restoreStyles(element, ignoredStyles);\r\n }\r\n\r\n render(_) {// NO RENDER\r\n }\r\n\r\n}\r\nFilterElement.ignoreStyles = ['filter', 'transform', 'clip-path'];\r\n\r\nclass FeDropShadowElement extends Element {\r\n constructor(document, node, captureTextNodes) {\r\n super(document, node, captureTextNodes);\r\n this.type = 'feDropShadow';\r\n this.addStylesFromStyleDefinition();\r\n }\r\n\r\n apply(_, _x, _y, _width, _height) {// TODO: implement\r\n }\r\n\r\n}\r\n\r\nclass FeMorphologyElement extends Element {\r\n constructor() {\r\n super(...arguments);\r\n this.type = 'feMorphology';\r\n }\r\n\r\n apply(_, _x, _y, _width, _height) {// TODO: implement\r\n }\r\n\r\n}\r\n\r\nclass FeCompositeElement extends Element {\r\n constructor() {\r\n super(...arguments);\r\n this.type = 'feComposite';\r\n }\r\n\r\n apply(_, _x, _y, _width, _height) {// TODO: implement\r\n }\r\n\r\n}\r\n\r\nclass FeGaussianBlurElement extends Element {\r\n constructor(document, node, captureTextNodes) {\r\n super(document, node, captureTextNodes);\r\n this.type = 'feGaussianBlur';\r\n this.blurRadius = Math.floor(this.getAttribute('stdDeviation').getNumber());\r\n this.extraFilterDistance = this.blurRadius;\r\n }\r\n\r\n apply(ctx, x, y, width, height) {\r\n var {\r\n document,\r\n blurRadius\r\n } = this;\r\n var body = document.window ? document.window.document.body : null;\r\n var canvas = ctx.canvas; // StackBlur requires canvas be on document\r\n\r\n canvas.id = document.getUniqueId();\r\n\r\n if (body) {\r\n canvas.style.display = 'none';\r\n body.appendChild(canvas);\r\n }\r\n\r\n canvasRGBA(canvas, x, y, width, height, blurRadius);\r\n\r\n if (body) {\r\n body.removeChild(canvas);\r\n }\r\n }\r\n\r\n}\r\n\r\nclass TitleElement extends Element {\r\n constructor() {\r\n super(...arguments);\r\n this.type = 'title';\r\n }\r\n\r\n}\r\n\r\nclass DescElement extends Element {\r\n constructor() {\r\n super(...arguments);\r\n this.type = 'desc';\r\n }\r\n\r\n}\r\n\r\nvar elements = {\r\n 'svg': SVGElement,\r\n 'rect': RectElement,\r\n 'circle': CircleElement,\r\n 'ellipse': EllipseElement,\r\n 'line': LineElement,\r\n 'polyline': PolylineElement,\r\n 'polygon': PolygonElement,\r\n 'path': PathElement,\r\n 'pattern': PatternElement,\r\n 'marker': MarkerElement,\r\n 'defs': DefsElement,\r\n 'linearGradient': LinearGradientElement,\r\n 'radialGradient': RadialGradientElement,\r\n 'stop': StopElement,\r\n 'animate': AnimateElement,\r\n 'animateColor': AnimateColorElement,\r\n 'animateTransform': AnimateTransformElement,\r\n 'font': FontElement,\r\n 'font-face': FontFaceElement,\r\n 'missing-glyph': MissingGlyphElement,\r\n 'glyph': GlyphElement,\r\n 'text': TextElement,\r\n 'tspan': TSpanElement,\r\n 'tref': TRefElement,\r\n 'a': AElement,\r\n 'textPath': TextPathElement,\r\n 'image': ImageElement,\r\n 'g': GElement,\r\n 'symbol': SymbolElement,\r\n 'style': StyleElement,\r\n 'use': UseElement,\r\n 'mask': MaskElement,\r\n 'clipPath': ClipPathElement,\r\n 'filter': FilterElement,\r\n 'feDropShadow': FeDropShadowElement,\r\n 'feMorphology': FeMorphologyElement,\r\n 'feComposite': FeCompositeElement,\r\n 'feColorMatrix': FeColorMatrixElement,\r\n 'feGaussianBlur': FeGaussianBlurElement,\r\n 'title': TitleElement,\r\n 'desc': DescElement\r\n};\r\n\r\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; }\r\n\r\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; }\r\n\r\nfunction createCanvas(width, height) {\r\n var canvas = document.createElement('canvas');\r\n canvas.width = width;\r\n canvas.height = height;\r\n return canvas;\r\n}\r\n\r\nfunction createImage(_x) {\r\n return _createImage.apply(this, arguments);\r\n}\r\n\r\nfunction _createImage() {\r\n _createImage = _asyncToGenerator(function* (src) {\r\n var anonymousCrossOrigin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\r\n var image = document.createElement('img');\r\n\r\n if (anonymousCrossOrigin) {\r\n image.crossOrigin = 'Anonymous';\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n image.onload = () => {\r\n resolve(image);\r\n };\r\n\r\n image.onerror = (_event, _source, _lineno, _colno, error) => {\r\n reject(error);\r\n };\r\n\r\n image.src = src;\r\n });\r\n });\r\n return _createImage.apply(this, arguments);\r\n}\r\n\r\nclass Document {\r\n constructor(canvg) {\r\n var {\r\n rootEmSize = 12,\r\n emSize = 12,\r\n createCanvas = Document.createCanvas,\r\n createImage = Document.createImage,\r\n anonymousCrossOrigin\r\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\r\n this.canvg = canvg;\r\n this.definitions = {};\r\n this.styles = {};\r\n this.stylesSpecificity = {};\r\n this.images = [];\r\n this.fonts = [];\r\n this.emSizeStack = [];\r\n this.uniqueId = 0;\r\n this.screen = canvg.screen;\r\n this.rootEmSize = rootEmSize;\r\n this.emSize = emSize;\r\n this.createCanvas = createCanvas;\r\n this.createImage = this.bindCreateImage(createImage, anonymousCrossOrigin);\r\n this.screen.wait(this.isImagesLoaded.bind(this));\r\n this.screen.wait(this.isFontsLoaded.bind(this));\r\n }\r\n\r\n bindCreateImage(createImage, anonymousCrossOrigin) {\r\n if (typeof anonymousCrossOrigin === 'boolean') {\r\n return (source, forceAnonymousCrossOrigin) => createImage(source, typeof forceAnonymousCrossOrigin === 'boolean' ? forceAnonymousCrossOrigin : anonymousCrossOrigin);\r\n }\r\n\r\n return createImage;\r\n }\r\n\r\n get window() {\r\n return this.screen.window;\r\n }\r\n\r\n get fetch() {\r\n return this.screen.fetch;\r\n }\r\n\r\n get ctx() {\r\n return this.screen.ctx;\r\n }\r\n\r\n get emSize() {\r\n var {\r\n emSizeStack\r\n } = this;\r\n return emSizeStack[emSizeStack.length - 1];\r\n }\r\n\r\n set emSize(value) {\r\n var {\r\n emSizeStack\r\n } = this;\r\n emSizeStack.push(value);\r\n }\r\n\r\n popEmSize() {\r\n var {\r\n emSizeStack\r\n } = this;\r\n emSizeStack.pop();\r\n }\r\n\r\n getUniqueId() {\r\n return \"canvg\".concat(++this.uniqueId);\r\n }\r\n\r\n isImagesLoaded() {\r\n return this.images.every(_ => _.loaded);\r\n }\r\n\r\n isFontsLoaded() {\r\n return this.fonts.every(_ => _.loaded);\r\n }\r\n\r\n createDocumentElement(document) {\r\n var documentElement = this.createElement(document.documentElement);\r\n documentElement.root = true;\r\n documentElement.addStylesFromStyleDefinition();\r\n this.documentElement = documentElement;\r\n return documentElement;\r\n }\r\n\r\n createElement(node) {\r\n var elementType = node.nodeName.replace(/^[^:]+:/, '');\r\n var ElementType = Document.elementTypes[elementType];\r\n\r\n if (typeof ElementType !== 'undefined') {\r\n return new ElementType(this, node);\r\n }\r\n\r\n return new UnknownElement(this, node);\r\n }\r\n\r\n createTextNode(node) {\r\n return new TextNode(this, node);\r\n }\r\n\r\n setViewBox(config) {\r\n this.screen.setViewBox(_objectSpread$1({\r\n document: this\r\n }, config));\r\n }\r\n\r\n}\r\nDocument.createCanvas = createCanvas;\r\nDocument.createImage = createImage;\r\nDocument.elementTypes = elements;\r\n\r\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; }\r\n\r\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; }\r\n/**\r\n * SVG renderer on canvas.\r\n */\r\n\r\nclass Canvg {\r\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 */\r\n constructor(ctx, svg) {\r\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\r\n this.parser = new Parser(options);\r\n this.screen = new Screen(ctx, options);\r\n this.options = options;\r\n var document = new Document(this, options);\r\n var documentElement = document.createDocumentElement(svg);\r\n this.document = document;\r\n this.documentElement = documentElement;\r\n }\r\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 */\r\n\r\n\r\n static from(ctx, svg) {\r\n var _arguments = arguments;\r\n return _asyncToGenerator(function* () {\r\n var options = _arguments.length > 2 && _arguments[2] !== undefined ? _arguments[2] : {};\r\n var parser = new Parser(options);\r\n var svgDocument = yield parser.parse(svg);\r\n return new Canvg(ctx, svgDocument, options);\r\n })();\r\n }\r\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 */\r\n\r\n\r\n static fromString(ctx, svg) {\r\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\r\n var parser = new Parser(options);\r\n var svgDocument = parser.parseFromString(svg);\r\n return new Canvg(ctx, svgDocument, options);\r\n }\r\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 */\r\n\r\n\r\n fork(ctx, svg) {\r\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\r\n return Canvg.from(ctx, svg, _objectSpread(_objectSpread({}, this.options), options));\r\n }\r\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 */\r\n\r\n\r\n forkString(ctx, svg) {\r\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\r\n return Canvg.fromString(ctx, svg, _objectSpread(_objectSpread({}, this.options), options));\r\n }\r\n /**\r\n * Document is ready promise.\r\n * @returns Ready promise.\r\n */\r\n\r\n\r\n ready() {\r\n return this.screen.ready();\r\n }\r\n /**\r\n * Document is ready value.\r\n * @returns Is ready or not.\r\n */\r\n\r\n\r\n isReady() {\r\n return this.screen.isReady();\r\n }\r\n /**\r\n * Render only first frame, ignoring animations and mouse.\r\n * @param options - Rendering options.\r\n */\r\n\r\n\r\n render() {\r\n var _arguments2 = arguments,\r\n _this = this;\r\n\r\n return _asyncToGenerator(function* () {\r\n var options = _arguments2.length > 0 && _arguments2[0] !== undefined ? _arguments2[0] : {};\r\n\r\n _this.start(_objectSpread({\r\n enableRedraw: true,\r\n ignoreAnimation: true,\r\n ignoreMouse: true\r\n }, options));\r\n\r\n yield _this.ready();\r\n\r\n _this.stop();\r\n })();\r\n }\r\n /**\r\n * Start rendering.\r\n * @param options - Render options.\r\n */\r\n\r\n\r\n start() {\r\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\r\n var {\r\n documentElement,\r\n screen,\r\n options: baseOptions\r\n } = this;\r\n screen.start(documentElement, _objectSpread(_objectSpread({\r\n enableRedraw: true\r\n }, baseOptions), options));\r\n }\r\n /**\r\n * Stop rendering.\r\n */\r\n\r\n\r\n stop() {\r\n this.screen.stop();\r\n }\r\n /**\r\n * Resize SVG to fit in given size.\r\n * @param width\r\n * @param height\r\n * @param preserveAspectRatio\r\n */\r\n\r\n\r\n resize(width) {\r\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : width;\r\n var preserveAspectRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\r\n this.documentElement.resize(width, height, preserveAspectRatio);\r\n }\r\n\r\n}\r\n\r\nexport default Canvg;\r\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, getSelectorSpecificity, normalizeAttributeName, normalizeColor, parseExternalUrl, index as presets, toNumbers, trimLeft, trimRight, vectorMagnitude, vectorsAngle, vectorsRatio };\r\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZXMuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==\r\n","var global = require('../internals/global');\r\nvar isConstructor = require('../internals/is-constructor');\r\nvar tryToString = require('../internals/try-to-string');\r\n\r\nvar TypeError = global.TypeError;\r\n\r\n// `Assert: IsConstructor(argument) is true`\r\nmodule.exports = function (argument) {\r\n if (isConstructor(argument)) return argument;\r\n throw TypeError(tryToString(argument) + ' is not a constructor');\r\n};\r\n","// iterable DOM collections\r\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\r\nmodule.exports = {\r\n CSSRuleList: 0,\r\n CSSStyleDeclaration: 0,\r\n CSSValueList: 0,\r\n ClientRectList: 0,\r\n DOMRectList: 0,\r\n DOMStringList: 0,\r\n DOMTokenList: 1,\r\n DataTransferItemList: 0,\r\n FileList: 0,\r\n HTMLAllCollection: 0,\r\n HTMLCollection: 0,\r\n HTMLFormElement: 0,\r\n HTMLSelectElement: 0,\r\n MediaList: 0,\r\n MimeTypeArray: 0,\r\n NamedNodeMap: 0,\r\n NodeList: 1,\r\n PaintRequestList: 0,\r\n Plugin: 0,\r\n PluginArray: 0,\r\n SVGLengthList: 0,\r\n SVGNumberList: 0,\r\n SVGPathSegList: 0,\r\n SVGPointList: 0,\r\n SVGStringList: 0,\r\n SVGTransformList: 0,\r\n SourceBufferList: 0,\r\n StyleSheetList: 0,\r\n TextTrackCueList: 0,\r\n TextTrackList: 0,\r\n TouchList: 0\r\n};\r\n","var global = require('../internals/global');\r\nvar aCallable = require('../internals/a-callable');\r\nvar toObject = require('../internals/to-object');\r\nvar IndexedObject = require('../internals/indexed-object');\r\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\r\n\r\nvar TypeError = global.TypeError;\r\n\r\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\r\nvar createMethod = function (IS_RIGHT) {\r\n return function (that, callbackfn, argumentsLength, memo) {\r\n aCallable(callbackfn);\r\n var O = toObject(that);\r\n var self = IndexedObject(O);\r\n var length = lengthOfArrayLike(O);\r\n var index = IS_RIGHT ? length - 1 : 0;\r\n var i = IS_RIGHT ? -1 : 1;\r\n if (argumentsLength < 2) while (true) {\r\n if (index in self) {\r\n memo = self[index];\r\n index += i;\r\n break;\r\n }\r\n index += i;\r\n if (IS_RIGHT ? index < 0 : length <= index) {\r\n throw TypeError('Reduce of empty array with no initial value');\r\n }\r\n }\r\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\r\n memo = callbackfn(memo, self[index], index, O);\r\n }\r\n return memo;\r\n };\r\n};\r\n\r\nmodule.exports = {\r\n // `Array.prototype.reduce` method\r\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\r\n left: createMethod(false),\r\n // `Array.prototype.reduceRight` method\r\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\r\n right: createMethod(true)\r\n};\r\n","var DESCRIPTORS = require('../internals/descriptors');\r\nvar fails = require('../internals/fails');\r\n\r\n// V8 ~ Chrome 36-\r\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\r\nmodule.exports = DESCRIPTORS && fails(function () {\r\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\r\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\r\n value: 42,\r\n writable: false\r\n }).prototype != 42;\r\n});\r\n","var global = require('../internals/global');\r\nvar DESCRIPTORS = require('../internals/descriptors');\r\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\r\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\r\nvar anObject = require('../internals/an-object');\r\nvar toPropertyKey = require('../internals/to-property-key');\r\n\r\nvar TypeError = global.TypeError;\r\n// eslint-disable-next-line es/no-object-defineproperty -- safe\r\nvar $defineProperty = Object.defineProperty;\r\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\r\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\r\nvar ENUMERABLE = 'enumerable';\r\nvar CONFIGURABLE = 'configurable';\r\nvar WRITABLE = 'writable';\r\n\r\n// `Object.defineProperty` method\r\n// https://tc39.es/ecma262/#sec-object.defineproperty\r\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\r\n anObject(O);\r\n P = toPropertyKey(P);\r\n anObject(Attributes);\r\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\r\n var current = $getOwnPropertyDescriptor(O, P);\r\n if (current && current[WRITABLE]) {\r\n O[P] = Attributes.value;\r\n Attributes = {\r\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\r\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\r\n writable: false\r\n };\r\n }\r\n } return $defineProperty(O, P, Attributes);\r\n} : $defineProperty : function defineProperty(O, P, Attributes) {\r\n anObject(O);\r\n P = toPropertyKey(P);\r\n anObject(Attributes);\r\n if (IE8_DOM_DEFINE) try {\r\n return $defineProperty(O, P, Attributes);\r\n } catch (error) { /* empty */ }\r\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\r\n if ('value' in Attributes) O[P] = Attributes.value;\r\n return O;\r\n};\r\n","var userAgent = require('../internals/engine-user-agent');\r\nvar global = require('../internals/global');\r\n\r\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined;\r\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\r\nvar documentCreateElement = require('../internals/document-create-element');\r\n\r\nvar classList = documentCreateElement('span').classList;\r\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\r\n\r\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\r\n","var toPrimitive = require('../internals/to-primitive');\r\nvar isSymbol = require('../internals/is-symbol');\r\n\r\n// `ToPropertyKey` abstract operation\r\n// https://tc39.es/ecma262/#sec-topropertykey\r\nmodule.exports = function (argument) {\r\n var key = toPrimitive(argument, 'string');\r\n return isSymbol(key) ? key : key + '';\r\n};\r\n","'use strict';\r\nvar $ = require('../internals/export');\r\nvar uncurryThis = require('../internals/function-uncurry-this');\r\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\r\nvar toLength = require('../internals/to-length');\r\nvar toString = require('../internals/to-string');\r\nvar notARegExp = require('../internals/not-a-regexp');\r\nvar requireObjectCoercible = require('../internals/require-object-coercible');\r\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\r\nvar IS_PURE = require('../internals/is-pure');\r\n\r\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\r\nvar un$EndsWith = uncurryThis(''.endsWith);\r\nvar slice = uncurryThis(''.slice);\r\nvar min = Math.min;\r\n\r\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\r\n// https://github.com/zloirock/core-js/pull/702\r\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\r\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\r\n return descriptor && !descriptor.writable;\r\n}();\r\n\r\n// `String.prototype.endsWith` method\r\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\r\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\r\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\r\n var that = toString(requireObjectCoercible(this));\r\n notARegExp(searchString);\r\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\r\n var len = that.length;\r\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\r\n var search = toString(searchString);\r\n return un$EndsWith\r\n ? un$EndsWith(that, search, end)\r\n : slice(that, end - search.length, end) === search;\r\n }\r\n});\r\n","var userAgent = require('../internals/engine-user-agent');\r\n\r\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\r\n","var fails = require('../internals/fails');\r\n\r\nmodule.exports = !fails(function () {\r\n function F() { /* empty */ }\r\n F.prototype.constructor = null;\r\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\r\n return Object.getPrototypeOf(new F()) !== F.prototype;\r\n});\r\n","var wellKnownSymbol = require('../internals/well-known-symbol');\r\nvar create = require('../internals/object-create');\r\nvar definePropertyModule = require('../internals/object-define-property');\r\n\r\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\r\nvar ArrayPrototype = Array.prototype;\r\n\r\n// Array.prototype[@@unscopables]\r\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\r\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\r\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\r\n configurable: true,\r\n value: create(null)\r\n });\r\n}\r\n\r\n// add a key to Array.prototype[@@unscopables]\r\nmodule.exports = function (key) {\r\n ArrayPrototype[UNSCOPABLES][key] = true;\r\n};\r\n","'use strict';\r\nvar anObject = require('../internals/an-object');\r\n\r\n// `RegExp.prototype.flags` getter implementation\r\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\r\nmodule.exports = function () {\r\n var that = anObject(this);\r\n var result = '';\r\n if (that.global) result += 'g';\r\n if (that.ignoreCase) result += 'i';\r\n if (that.multiline) result += 'm';\r\n if (that.dotAll) result += 's';\r\n if (that.unicode) result += 'u';\r\n if (that.sticky) result += 'y';\r\n return result;\r\n};\r\n","var classof = require('../internals/classof-raw');\r\nvar global = require('../internals/global');\r\n\r\nmodule.exports = classof(global.process) == 'process';\r\n","var global = require('../internals/global');\r\n\r\nvar String = global.String;\r\n\r\nmodule.exports = function (argument) {\r\n try {\r\n return String(argument);\r\n } catch (error) {\r\n return 'Object';\r\n }\r\n};\r\n","/* eslint-disable no-proto -- safe */\r\nvar uncurryThis = require('../internals/function-uncurry-this');\r\nvar anObject = require('../internals/an-object');\r\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\r\n\r\n// `Object.setPrototypeOf` method\r\n// https://tc39.es/ecma262/#sec-object.setprototypeof\r\n// Works with __proto__ only. Old v8 can't work with null proto objects.\r\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\r\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\r\n var CORRECT_SETTER = false;\r\n var test = {};\r\n var setter;\r\n try {\r\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\r\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\r\n setter(test, []);\r\n CORRECT_SETTER = test instanceof Array;\r\n } catch (error) { /* empty */ }\r\n return function setPrototypeOf(O, proto) {\r\n anObject(O);\r\n aPossiblePrototype(proto);\r\n if (CORRECT_SETTER) setter(O, proto);\r\n else O.__proto__ = proto;\r\n return O;\r\n };\r\n}() : undefined);\r\n","// `IsCallable` abstract operation\r\n// https://tc39.es/ecma262/#sec-iscallable\r\nmodule.exports = function (argument) {\r\n return typeof argument == 'function';\r\n};\r\n","'use strict';\r\nvar call = require('../internals/function-call');\r\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\r\nvar anObject = require('../internals/an-object');\r\nvar toLength = require('../internals/to-length');\r\nvar toString = require('../internals/to-string');\r\nvar requireObjectCoercible = require('../internals/require-object-coercible');\r\nvar getMethod = require('../internals/get-method');\r\nvar advanceStringIndex = require('../internals/advance-string-index');\r\nvar regExpExec = require('../internals/regexp-exec-abstract');\r\n\r\n// @@match logic\r\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\r\n return [\r\n // `String.prototype.match` method\r\n // https://tc39.es/ecma262/#sec-string.prototype.match\r\n function match(regexp) {\r\n var O = requireObjectCoercible(this);\r\n var matcher = regexp == undefined ? undefined : getMethod(regexp, MATCH);\r\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\r\n },\r\n // `RegExp.prototype[@@match]` method\r\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\r\n function (string) {\r\n var rx = anObject(this);\r\n var S = toString(string);\r\n var res = maybeCallNative(nativeMatch, rx, S);\r\n\r\n if (res.done) return res.value;\r\n\r\n if (!rx.global) return regExpExec(rx, S);\r\n\r\n var fullUnicode = rx.unicode;\r\n rx.lastIndex = 0;\r\n var A = [];\r\n var n = 0;\r\n var result;\r\n while ((result = regExpExec(rx, S)) !== null) {\r\n var matchStr = toString(result[0]);\r\n A[n] = matchStr;\r\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\r\n n++;\r\n }\r\n return n === 0 ? null : A;\r\n }\r\n ];\r\n});\r\n","'use strict';\r\nvar $ = require('../internals/export');\r\nvar uncurryThis = require('../internals/function-uncurry-this');\r\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\r\nvar toLength = require('../internals/to-length');\r\nvar toString = require('../internals/to-string');\r\nvar notARegExp = require('../internals/not-a-regexp');\r\nvar requireObjectCoercible = require('../internals/require-object-coercible');\r\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\r\nvar IS_PURE = require('../internals/is-pure');\r\n\r\n// eslint-disable-next-line es/no-string-prototype-startswith -- safe\r\nvar un$StartsWith = uncurryThis(''.startsWith);\r\nvar stringSlice = uncurryThis(''.slice);\r\nvar min = Math.min;\r\n\r\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\r\n// https://github.com/zloirock/core-js/pull/702\r\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\r\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\r\n return descriptor && !descriptor.writable;\r\n}();\r\n\r\n// `String.prototype.startsWith` method\r\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\r\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\r\n startsWith: function startsWith(searchString /* , position = 0 */) {\r\n var that = toString(requireObjectCoercible(this));\r\n notARegExp(searchString);\r\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\r\n var search = toString(searchString);\r\n return un$StartsWith\r\n ? un$StartsWith(that, search, index)\r\n : stringSlice(that, index, index + search.length) === search;\r\n }\r\n});\r\n","var check = function (it) {\r\n return it && it.Math == Math && it;\r\n};\r\n\r\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\r\nmodule.exports =\r\n // eslint-disable-next-line es/no-global-this -- safe\r\n check(typeof globalThis == 'object' && globalThis) ||\r\n check(typeof window == 'object' && window) ||\r\n // eslint-disable-next-line no-restricted-globals -- safe\r\n check(typeof self == 'object' && self) ||\r\n check(typeof global == 'object' && global) ||\r\n // eslint-disable-next-line no-new-func -- fallback\r\n (function () { return this; })() || Function('return this')();\r\n","var redefine = require('../internals/redefine');\r\n\r\nmodule.exports = function (target, src, options) {\r\n for (var key in src) redefine(target, key, src[key], options);\r\n return target;\r\n};\r\n","'use strict';\r\nvar toIndexedObject = require('../internals/to-indexed-object');\r\nvar addToUnscopables = require('../internals/add-to-unscopables');\r\nvar Iterators = require('../internals/iterators');\r\nvar InternalStateModule = require('../internals/internal-state');\r\nvar defineProperty = require('../internals/object-define-property').f;\r\nvar defineIterator = require('../internals/define-iterator');\r\nvar IS_PURE = require('../internals/is-pure');\r\nvar DESCRIPTORS = require('../internals/descriptors');\r\n\r\nvar ARRAY_ITERATOR = 'Array Iterator';\r\nvar setInternalState = InternalStateModule.set;\r\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\r\n\r\n// `Array.prototype.entries` method\r\n// https://tc39.es/ecma262/#sec-array.prototype.entries\r\n// `Array.prototype.keys` method\r\n// https://tc39.es/ecma262/#sec-array.prototype.keys\r\n// `Array.prototype.values` method\r\n// https://tc39.es/ecma262/#sec-array.prototype.values\r\n// `Array.prototype[@@iterator]` method\r\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\r\n// `CreateArrayIterator` internal method\r\n// https://tc39.es/ecma262/#sec-createarrayiterator\r\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\r\n setInternalState(this, {\r\n type: ARRAY_ITERATOR,\r\n target: toIndexedObject(iterated), // target\r\n index: 0, // next index\r\n kind: kind // kind\r\n });\r\n// `%ArrayIteratorPrototype%.next` method\r\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\r\n}, function () {\r\n var state = getInternalState(this);\r\n var target = state.target;\r\n var kind = state.kind;\r\n var index = state.index++;\r\n if (!target || index >= target.length) {\r\n state.target = undefined;\r\n return { value: undefined, done: true };\r\n }\r\n if (kind == 'keys') return { value: index, done: false };\r\n if (kind == 'values') return { value: target[index], done: false };\r\n return { value: [index, target[index]], done: false };\r\n}, 'values');\r\n\r\n// argumentsList[@@iterator] is %ArrayProto_values%\r\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\r\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\r\nvar values = Iterators.Arguments = Iterators.Array;\r\n\r\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\r\naddToUnscopables('keys');\r\naddToUnscopables('values');\r\naddToUnscopables('entries');\r\n\r\n// V8 ~ Chrome 45- bug\r\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\r\n defineProperty(values, 'name', { value: 'values' });\r\n} catch (error) { /* empty */ }\r\n","'use strict';\r\nvar $ = require('../internals/export');\r\nvar uncurryThis = require('../internals/function-uncurry-this');\r\nvar notARegExp = require('../internals/not-a-regexp');\r\nvar requireObjectCoercible = require('../internals/require-object-coercible');\r\nvar toString = require('../internals/to-string');\r\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\r\n\r\nvar stringIndexOf = uncurryThis(''.indexOf);\r\n\r\n// `String.prototype.includes` method\r\n// https://tc39.es/ecma262/#sec-string.prototype.includes\r\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\r\n includes: function includes(searchString /* , position = 0 */) {\r\n return !!~stringIndexOf(\r\n toString(requireObjectCoercible(this)),\r\n toString(notARegExp(searchString)),\r\n arguments.length > 1 ? arguments[1] : undefined\r\n );\r\n }\r\n});\r\n","var uncurryThis = require('../internals/function-uncurry-this');\r\n\r\nvar id = 0;\r\nvar postfix = Math.random();\r\nvar toString = uncurryThis(1.0.toString);\r\n\r\nmodule.exports = function (key) {\r\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\r\n};\r\n","'use strict';\r\nvar charAt = require('../internals/string-multibyte').charAt;\r\n\r\n// `AdvanceStringIndex` abstract operation\r\n// https://tc39.es/ecma262/#sec-advancestringindex\r\nmodule.exports = function (S, index, unicode) {\r\n return index + (unicode ? charAt(S, index).length : 1);\r\n};\r\n","'use strict';\r\nvar apply = require('../internals/function-apply');\r\nvar call = require('../internals/function-call');\r\nvar uncurryThis = require('../internals/function-uncurry-this');\r\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\r\nvar isRegExp = require('../internals/is-regexp');\r\nvar anObject = require('../internals/an-object');\r\nvar requireObjectCoercible = require('../internals/require-object-coercible');\r\nvar speciesConstructor = require('../internals/species-constructor');\r\nvar advanceStringIndex = require('../internals/advance-string-index');\r\nvar toLength = require('../internals/to-length');\r\nvar toString = require('../internals/to-string');\r\nvar getMethod = require('../internals/get-method');\r\nvar arraySlice = require('../internals/array-slice-simple');\r\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\r\nvar regexpExec = require('../internals/regexp-exec');\r\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\r\nvar fails = require('../internals/fails');\r\n\r\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\r\nvar MAX_UINT32 = 0xFFFFFFFF;\r\nvar min = Math.min;\r\nvar $push = [].push;\r\nvar exec = uncurryThis(/./.exec);\r\nvar push = uncurryThis($push);\r\nvar stringSlice = uncurryThis(''.slice);\r\n\r\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\r\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\r\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\r\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\r\n var re = /(?:)/;\r\n var originalExec = re.exec;\r\n re.exec = function () { return originalExec.apply(this, arguments); };\r\n var result = 'ab'.split(re);\r\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\r\n});\r\n\r\n// @@split logic\r\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\r\n var internalSplit;\r\n if (\r\n 'abbc'.split(/(b)*/)[1] == 'c' ||\r\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\r\n 'test'.split(/(?:)/, -1).length != 4 ||\r\n 'ab'.split(/(?:ab)*/).length != 2 ||\r\n '.'.split(/(.?)(.?)/).length != 4 ||\r\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\r\n '.'.split(/()()/).length > 1 ||\r\n ''.split(/.?/).length\r\n ) {\r\n // based on es5-shim implementation, need to rework it\r\n internalSplit = function (separator, limit) {\r\n var string = toString(requireObjectCoercible(this));\r\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\r\n if (lim === 0) return [];\r\n if (separator === undefined) return [string];\r\n // If `separator` is not a regex, use native split\r\n if (!isRegExp(separator)) {\r\n return call(nativeSplit, string, separator, lim);\r\n }\r\n var output = [];\r\n var flags = (separator.ignoreCase ? 'i' : '') +\r\n (separator.multiline ? 'm' : '') +\r\n (separator.unicode ? 'u' : '') +\r\n (separator.sticky ? 'y' : '');\r\n var lastLastIndex = 0;\r\n // Make `global` and avoid `lastIndex` issues by working with a copy\r\n var separatorCopy = new RegExp(separator.source, flags + 'g');\r\n var match, lastIndex, lastLength;\r\n while (match = call(regexpExec, separatorCopy, string)) {\r\n lastIndex = separatorCopy.lastIndex;\r\n if (lastIndex > lastLastIndex) {\r\n push(output, stringSlice(string, lastLastIndex, match.index));\r\n if (match.length > 1 && match.index < string.length) apply($push, output, arraySlice(match, 1));\r\n lastLength = match[0].length;\r\n lastLastIndex = lastIndex;\r\n if (output.length >= lim) break;\r\n }\r\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\r\n }\r\n if (lastLastIndex === string.length) {\r\n if (lastLength || !exec(separatorCopy, '')) push(output, '');\r\n } else push(output, stringSlice(string, lastLastIndex));\r\n return output.length > lim ? arraySlice(output, 0, lim) : output;\r\n };\r\n // Chakra, V8\r\n } else if ('0'.split(undefined, 0).length) {\r\n internalSplit = function (separator, limit) {\r\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\r\n };\r\n } else internalSplit = nativeSplit;\r\n\r\n return [\r\n // `String.prototype.split` method\r\n // https://tc39.es/ecma262/#sec-string.prototype.split\r\n function split(separator, limit) {\r\n var O = requireObjectCoercible(this);\r\n var splitter = separator == undefined ? undefined : getMethod(separator, SPLIT);\r\n return splitter\r\n ? call(splitter, separator, O, limit)\r\n : call(internalSplit, toString(O), separator, limit);\r\n },\r\n // `RegExp.prototype[@@split]` method\r\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\r\n //\r\n // NOTE: This cannot be properly polyfilled in engines that don't support\r\n // the 'y' flag.\r\n function (string, limit) {\r\n var rx = anObject(this);\r\n var S = toString(string);\r\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\r\n\r\n if (res.done) return res.value;\r\n\r\n var C = speciesConstructor(rx, RegExp);\r\n\r\n var unicodeMatching = rx.unicode;\r\n var flags = (rx.ignoreCase ? 'i' : '') +\r\n (rx.multiline ? 'm' : '') +\r\n (rx.unicode ? 'u' : '') +\r\n (UNSUPPORTED_Y ? 'g' : 'y');\r\n\r\n // ^(? + rx + ) is needed, in combination with some S slicing, to\r\n // simulate the 'y' flag.\r\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\r\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\r\n if (lim === 0) return [];\r\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\r\n var p = 0;\r\n var q = 0;\r\n var A = [];\r\n while (q < S.length) {\r\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\r\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\r\n var e;\r\n if (\r\n z === null ||\r\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\r\n ) {\r\n q = advanceStringIndex(S, q, unicodeMatching);\r\n } else {\r\n push(A, stringSlice(S, p, q));\r\n if (A.length === lim) return A;\r\n for (var i = 1; i <= z.length - 1; i++) {\r\n push(A, z[i]);\r\n if (A.length === lim) return A;\r\n }\r\n q = p = e;\r\n }\r\n }\r\n push(A, stringSlice(S, p));\r\n return A;\r\n }\r\n ];\r\n}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\r\n","var global = require('../internals/global');\r\nvar isCallable = require('../internals/is-callable');\r\n\r\nvar String = global.String;\r\nvar TypeError = global.TypeError;\r\n\r\nmodule.exports = function (argument) {\r\n if (typeof argument == 'object' || isCallable(argument)) return argument;\r\n throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\r\n};\r\n","var uncurryThis = require('../internals/function-uncurry-this');\r\nvar toObject = require('../internals/to-object');\r\n\r\nvar floor = Math.floor;\r\nvar charAt = uncurryThis(''.charAt);\r\nvar replace = uncurryThis(''.replace);\r\nvar stringSlice = uncurryThis(''.slice);\r\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\r\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\r\n\r\n// `GetSubstitution` abstract operation\r\n// https://tc39.es/ecma262/#sec-getsubstitution\r\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\r\n var tailPos = position + matched.length;\r\n var m = captures.length;\r\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\r\n if (namedCaptures !== undefined) {\r\n namedCaptures = toObject(namedCaptures);\r\n symbols = SUBSTITUTION_SYMBOLS;\r\n }\r\n return replace(replacement, symbols, function (match, ch) {\r\n var capture;\r\n switch (charAt(ch, 0)) {\r\n case '$': return '$';\r\n case '&': return matched;\r\n case '`': return stringSlice(str, 0, position);\r\n case \"'\": return stringSlice(str, tailPos);\r\n case '<':\r\n capture = namedCaptures[stringSlice(ch, 1, -1)];\r\n break;\r\n default: // \\d\\d?\r\n var n = +ch;\r\n if (n === 0) return match;\r\n if (n > m) {\r\n var f = floor(n / 10);\r\n if (f === 0) return match;\r\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\r\n return match;\r\n }\r\n capture = captures[n - 1];\r\n }\r\n return capture === undefined ? '' : capture;\r\n });\r\n};\r\n","var anObject = require('../internals/an-object');\r\nvar aConstructor = require('../internals/a-constructor');\r\nvar wellKnownSymbol = require('../internals/well-known-symbol');\r\n\r\nvar SPECIES = wellKnownSymbol('species');\r\n\r\n// `SpeciesConstructor` abstract operation\r\n// https://tc39.es/ecma262/#sec-speciesconstructor\r\nmodule.exports = function (O, defaultConstructor) {\r\n var C = anObject(O).constructor;\r\n var S;\r\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);\r\n};\r\n","var toIndexedObject = require('../internals/to-indexed-object');\r\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\r\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\r\n\r\n// `Array.prototype.{ indexOf, includes }` methods implementation\r\nvar createMethod = function (IS_INCLUDES) {\r\n return function ($this, el, fromIndex) {\r\n var O = toIndexedObject($this);\r\n var length = lengthOfArrayLike(O);\r\n var index = toAbsoluteIndex(fromIndex, length);\r\n var value;\r\n // Array#includes uses SameValueZero equality algorithm\r\n // eslint-disable-next-line no-self-compare -- NaN check\r\n if (IS_INCLUDES && el != el) while (length > index) {\r\n value = O[index++];\r\n // eslint-disable-next-line no-self-compare -- NaN check\r\n if (value != value) return true;\r\n // Array#indexOf ignores holes, Array#includes - not\r\n } else for (;length > index; index++) {\r\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\r\n } return !IS_INCLUDES && -1;\r\n };\r\n};\r\n\r\nmodule.exports = {\r\n // `Array.prototype.includes` method\r\n // https://tc39.es/ecma262/#sec-array.prototype.includes\r\n includes: createMethod(true),\r\n // `Array.prototype.indexOf` method\r\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\r\n indexOf: createMethod(false)\r\n};\r\n","var DESCRIPTORS = require('../internals/descriptors');\r\nvar hasOwn = require('../internals/has-own-property');\r\n\r\nvar FunctionPrototype = Function.prototype;\r\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\r\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\r\n\r\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\r\n// additional protection from minified / mangled / dropped function names\r\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\r\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\r\n\r\nmodule.exports = {\r\n EXISTS: EXISTS,\r\n PROPER: PROPER,\r\n CONFIGURABLE: CONFIGURABLE\r\n};\r\n","var global = require('../internals/global');\r\nvar isRegExp = require('../internals/is-regexp');\r\n\r\nvar TypeError = global.TypeError;\r\n\r\nmodule.exports = function (it) {\r\n if (isRegExp(it)) {\r\n throw TypeError(\"The method doesn't accept regular expressions\");\r\n } return it;\r\n};\r\n","'use strict';\r\nvar $ = require('../internals/export');\r\nvar exec = require('../internals/regexp-exec');\r\n\r\n// `RegExp.prototype.exec` method\r\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\r\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\r\n exec: exec\r\n});\r\n","'use strict';\r\nvar fails = require('../internals/fails');\r\n\r\nmodule.exports = function (METHOD_NAME, argument) {\r\n var method = [][METHOD_NAME];\r\n return !!method && fails(function () {\r\n // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\r\n method.call(null, argument || function () { throw 1; }, 1);\r\n });\r\n};\r\n","var internalObjectKeys = require('../internals/object-keys-internal');\r\nvar enumBugKeys = require('../internals/enum-bug-keys');\r\n\r\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\r\n\r\n// `Object.getOwnPropertyNames` method\r\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\r\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\r\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\r\n return internalObjectKeys(O, hiddenKeys);\r\n};\r\n","var uncurryThis = require('../internals/function-uncurry-this');\r\nvar requireObjectCoercible = require('../internals/require-object-coercible');\r\nvar toString = require('../internals/to-string');\r\nvar whitespaces = require('../internals/whitespaces');\r\n\r\nvar replace = uncurryThis(''.replace);\r\nvar whitespace = '[' + whitespaces + ']';\r\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\r\nvar rtrim = RegExp(whitespace + whitespace + '*$');\r\n\r\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\r\nvar createMethod = function (TYPE) {\r\n return function ($this) {\r\n var string = toString(requireObjectCoercible($this));\r\n if (TYPE & 1) string = replace(string, ltrim, '');\r\n if (TYPE & 2) string = replace(string, rtrim, '');\r\n return string;\r\n };\r\n};\r\n\r\nmodule.exports = {\r\n // `String.prototype.{ trimLeft, trimStart }` methods\r\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\r\n start: createMethod(1),\r\n // `String.prototype.{ trimRight, trimEnd }` methods\r\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\r\n end: createMethod(2),\r\n // `String.prototype.trim` method\r\n // https://tc39.es/ecma262/#sec-string.prototype.trim\r\n trim: createMethod(3)\r\n};\r\n","var global = require('../internals/global');\r\nvar isCallable = require('../internals/is-callable');\r\n\r\nvar aFunction = function (argument) {\r\n return isCallable(argument) ? argument : undefined;\r\n};\r\n\r\nmodule.exports = function (namespace, method) {\r\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\r\n};\r\n","var fails = require('../internals/fails');\r\nvar global = require('../internals/global');\r\n\r\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\r\nvar $RegExp = global.RegExp;\r\n\r\nvar UNSUPPORTED_Y = fails(function () {\r\n var re = $RegExp('a', 'y');\r\n re.lastIndex = 2;\r\n return re.exec('abcd') != null;\r\n});\r\n\r\n// UC Browser bug\r\n// https://github.com/zloirock/core-js/issues/1008\r\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\r\n return !$RegExp('a', 'y').sticky;\r\n});\r\n\r\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\r\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\r\n var re = $RegExp('^r', 'gy');\r\n re.lastIndex = 2;\r\n return re.exec('str') != null;\r\n});\r\n\r\nmodule.exports = {\r\n BROKEN_CARET: BROKEN_CARET,\r\n MISSED_STICKY: MISSED_STICKY,\r\n UNSUPPORTED_Y: UNSUPPORTED_Y\r\n};\r\n","var ceil = Math.ceil;\r\nvar floor = Math.floor;\r\n\r\n// `ToIntegerOrInfinity` abstract operation\r\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\r\nmodule.exports = function (argument) {\r\n var number = +argument;\r\n // eslint-disable-next-line no-self-compare -- safe\r\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\r\n};\r\n","var shared = require('../internals/shared');\r\nvar uid = require('../internals/uid');\r\n\r\nvar keys = shared('keys');\r\n\r\nmodule.exports = function (key) {\r\n return keys[key] || (keys[key] = uid(key));\r\n};\r\n","module.exports = {};\r\n","var isCallable = require('../internals/is-callable');\r\n\r\nmodule.exports = function (it) {\r\n return typeof it == 'object' ? it !== null : isCallable(it);\r\n};\r\n","var global = require('../internals/global');\r\nvar isCallable = require('../internals/is-callable');\r\nvar inspectSource = require('../internals/inspect-source');\r\n\r\nvar WeakMap = global.WeakMap;\r\n\r\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\r\n","var anObject = require('../internals/an-object');\r\nvar isObject = require('../internals/is-object');\r\nvar newPromiseCapability = require('../internals/new-promise-capability');\r\n\r\nmodule.exports = function (C, x) {\r\n anObject(C);\r\n if (isObject(x) && x.constructor === C) return x;\r\n var promiseCapability = newPromiseCapability.f(C);\r\n var resolve = promiseCapability.resolve;\r\n resolve(x);\r\n return promiseCapability.promise;\r\n};\r\n","var hasOwn = require('../internals/has-own-property');\r\nvar ownKeys = require('../internals/own-keys');\r\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\r\nvar definePropertyModule = require('../internals/object-define-property');\r\n\r\nmodule.exports = function (target, source, exceptions) {\r\n var keys = ownKeys(source);\r\n var defineProperty = definePropertyModule.f;\r\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\r\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\r\n }\r\n }\r\n};\r\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\r\nexports.f = Object.getOwnPropertySymbols;\r\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\r\nvar global = require('../internals/global');\r\nvar uncurryThis = require('../internals/function-uncurry-this');\r\nvar isObject = require('../internals/is-object');\r\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\r\nvar hasOwn = require('../internals/has-own-property');\r\nvar shared = require('../internals/shared-store');\r\nvar sharedKey = require('../internals/shared-key');\r\nvar hiddenKeys = require('../internals/hidden-keys');\r\n\r\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\r\nvar TypeError = global.TypeError;\r\nvar WeakMap = global.WeakMap;\r\nvar set, get, has;\r\n\r\nvar enforce = function (it) {\r\n return has(it) ? get(it) : set(it, {});\r\n};\r\n\r\nvar getterFor = function (TYPE) {\r\n return function (it) {\r\n var state;\r\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\r\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\r\n } return state;\r\n };\r\n};\r\n\r\nif (NATIVE_WEAK_MAP || shared.state) {\r\n var store = shared.state || (shared.state = new WeakMap());\r\n var wmget = uncurryThis(store.get);\r\n var wmhas = uncurryThis(store.has);\r\n var wmset = uncurryThis(store.set);\r\n set = function (it, metadata) {\r\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\r\n metadata.facade = it;\r\n wmset(store, it, metadata);\r\n return metadata;\r\n };\r\n get = function (it) {\r\n return wmget(store, it) || {};\r\n };\r\n has = function (it) {\r\n return wmhas(store, it);\r\n };\r\n} else {\r\n var STATE = sharedKey('state');\r\n hiddenKeys[STATE] = true;\r\n set = function (it, metadata) {\r\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\r\n metadata.facade = it;\r\n createNonEnumerableProperty(it, STATE, metadata);\r\n return metadata;\r\n };\r\n get = function (it) {\r\n return hasOwn(it, STATE) ? it[STATE] : {};\r\n };\r\n has = function (it) {\r\n return hasOwn(it, STATE);\r\n };\r\n}\r\n\r\nmodule.exports = {\r\n set: set,\r\n get: get,\r\n has: has,\r\n enforce: enforce,\r\n getterFor: getterFor\r\n};\r\n","var global = require('../internals/global');\r\nvar hasOwn = require('../internals/has-own-property');\r\nvar isCallable = require('../internals/is-callable');\r\nvar toObject = require('../internals/to-object');\r\nvar sharedKey = require('../internals/shared-key');\r\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\r\n\r\nvar IE_PROTO = sharedKey('IE_PROTO');\r\nvar Object = global.Object;\r\nvar ObjectPrototype = Object.prototype;\r\n\r\n// `Object.getPrototypeOf` method\r\n// https://tc39.es/ecma262/#sec-object.getprototypeof\r\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\r\n var object = toObject(O);\r\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\r\n var constructor = object.constructor;\r\n if (isCallable(constructor) && object instanceof constructor) {\r\n return constructor.prototype;\r\n } return object instanceof Object ? ObjectPrototype : null;\r\n};\r\n","'use strict';\r\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\r\n/* eslint-disable regexp/no-useless-quantifier -- testing */\r\nvar call = require('../internals/function-call');\r\nvar uncurryThis = require('../internals/function-uncurry-this');\r\nvar toString = require('../internals/to-string');\r\nvar regexpFlags = require('../internals/regexp-flags');\r\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\r\nvar shared = require('../internals/shared');\r\nvar create = require('../internals/object-create');\r\nvar getInternalState = require('../internals/internal-state').get;\r\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\r\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\r\n\r\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\r\nvar nativeExec = RegExp.prototype.exec;\r\nvar patchedExec = nativeExec;\r\nvar charAt = uncurryThis(''.charAt);\r\nvar indexOf = uncurryThis(''.indexOf);\r\nvar replace = uncurryThis(''.replace);\r\nvar stringSlice = uncurryThis(''.slice);\r\n\r\nvar UPDATES_LAST_INDEX_WRONG = (function () {\r\n var re1 = /a/;\r\n var re2 = /b*/g;\r\n call(nativeExec, re1, 'a');\r\n call(nativeExec, re2, 'a');\r\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\r\n})();\r\n\r\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\r\n\r\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\r\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\r\n\r\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\r\n\r\nif (PATCH) {\r\n patchedExec = function exec(string) {\r\n var re = this;\r\n var state = getInternalState(re);\r\n var str = toString(string);\r\n var raw = state.raw;\r\n var result, reCopy, lastIndex, match, i, object, group;\r\n\r\n if (raw) {\r\n raw.lastIndex = re.lastIndex;\r\n result = call(patchedExec, raw, str);\r\n re.lastIndex = raw.lastIndex;\r\n return result;\r\n }\r\n\r\n var groups = state.groups;\r\n var sticky = UNSUPPORTED_Y && re.sticky;\r\n var flags = call(regexpFlags, re);\r\n var source = re.source;\r\n var charsAdded = 0;\r\n var strCopy = str;\r\n\r\n if (sticky) {\r\n flags = replace(flags, 'y', '');\r\n if (indexOf(flags, 'g') === -1) {\r\n flags += 'g';\r\n }\r\n\r\n strCopy = stringSlice(str, re.lastIndex);\r\n // Support anchored sticky behavior.\r\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\r\n source = '(?: ' + source + ')';\r\n strCopy = ' ' + strCopy;\r\n charsAdded++;\r\n }\r\n // ^(? + rx + ) is needed, in combination with some str slicing, to\r\n // simulate the 'y' flag.\r\n reCopy = new RegExp('^(?:' + source + ')', flags);\r\n }\r\n\r\n if (NPCG_INCLUDED) {\r\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\r\n }\r\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\r\n\r\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\r\n\r\n if (sticky) {\r\n if (match) {\r\n match.input = stringSlice(match.input, charsAdded);\r\n match[0] = stringSlice(match[0], charsAdded);\r\n match.index = re.lastIndex;\r\n re.lastIndex += match[0].length;\r\n } else re.lastIndex = 0;\r\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\r\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\r\n }\r\n if (NPCG_INCLUDED && match && match.length > 1) {\r\n // Fix browsers whose `exec` methods don't consistently return `undefined`\r\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\r\n call(nativeReplace, match[0], reCopy, function () {\r\n for (i = 1; i < arguments.length - 2; i++) {\r\n if (arguments[i] === undefined) match[i] = undefined;\r\n }\r\n });\r\n }\r\n\r\n if (match && groups) {\r\n match.groups = object = create(null);\r\n for (i = 0; i < groups.length; i++) {\r\n group = groups[i];\r\n object[group[0]] = match[group[1]];\r\n }\r\n }\r\n\r\n return match;\r\n };\r\n}\r\n\r\nmodule.exports = patchedExec;\r\n","/*\r\n\tBased on rgbcolor.js by Stoyan Stefanov \r\n\thttp://www.phpied.com/rgb-color-parser-in-javascript/\r\n*/\r\n\r\nmodule.exports = function(color_string) {\r\n this.ok = false;\r\n this.alpha = 1.0;\r\n\r\n // strip any leading #\r\n if (color_string.charAt(0) == '#') { // remove # if any\r\n color_string = color_string.substr(1,6);\r\n }\r\n\r\n color_string = color_string.replace(/ /g,'');\r\n color_string = color_string.toLowerCase();\r\n\r\n // before getting into regexps, try simple matches\r\n // and overwrite the input\r\n var simple_colors = {\r\n aliceblue: 'f0f8ff',\r\n antiquewhite: 'faebd7',\r\n aqua: '00ffff',\r\n aquamarine: '7fffd4',\r\n azure: 'f0ffff',\r\n beige: 'f5f5dc',\r\n bisque: 'ffe4c4',\r\n black: '000000',\r\n blanchedalmond: 'ffebcd',\r\n blue: '0000ff',\r\n blueviolet: '8a2be2',\r\n brown: 'a52a2a',\r\n burlywood: 'deb887',\r\n cadetblue: '5f9ea0',\r\n chartreuse: '7fff00',\r\n chocolate: 'd2691e',\r\n coral: 'ff7f50',\r\n cornflowerblue: '6495ed',\r\n cornsilk: 'fff8dc',\r\n crimson: 'dc143c',\r\n cyan: '00ffff',\r\n darkblue: '00008b',\r\n darkcyan: '008b8b',\r\n darkgoldenrod: 'b8860b',\r\n darkgray: 'a9a9a9',\r\n darkgreen: '006400',\r\n darkkhaki: 'bdb76b',\r\n darkmagenta: '8b008b',\r\n darkolivegreen: '556b2f',\r\n darkorange: 'ff8c00',\r\n darkorchid: '9932cc',\r\n darkred: '8b0000',\r\n darksalmon: 'e9967a',\r\n darkseagreen: '8fbc8f',\r\n darkslateblue: '483d8b',\r\n darkslategray: '2f4f4f',\r\n darkturquoise: '00ced1',\r\n darkviolet: '9400d3',\r\n deeppink: 'ff1493',\r\n deepskyblue: '00bfff',\r\n dimgray: '696969',\r\n dodgerblue: '1e90ff',\r\n feldspar: 'd19275',\r\n firebrick: 'b22222',\r\n floralwhite: 'fffaf0',\r\n forestgreen: '228b22',\r\n fuchsia: 'ff00ff',\r\n gainsboro: 'dcdcdc',\r\n ghostwhite: 'f8f8ff',\r\n gold: 'ffd700',\r\n goldenrod: 'daa520',\r\n gray: '808080',\r\n green: '008000',\r\n greenyellow: 'adff2f',\r\n honeydew: 'f0fff0',\r\n hotpink: 'ff69b4',\r\n indianred : 'cd5c5c',\r\n indigo : '4b0082',\r\n ivory: 'fffff0',\r\n khaki: 'f0e68c',\r\n lavender: 'e6e6fa',\r\n lavenderblush: 'fff0f5',\r\n lawngreen: '7cfc00',\r\n lemonchiffon: 'fffacd',\r\n lightblue: 'add8e6',\r\n lightcoral: 'f08080',\r\n lightcyan: 'e0ffff',\r\n lightgoldenrodyellow: 'fafad2',\r\n lightgrey: 'd3d3d3',\r\n lightgreen: '90ee90',\r\n lightpink: 'ffb6c1',\r\n lightsalmon: 'ffa07a',\r\n lightseagreen: '20b2aa',\r\n lightskyblue: '87cefa',\r\n lightslateblue: '8470ff',\r\n lightslategray: '778899',\r\n lightsteelblue: 'b0c4de',\r\n lightyellow: 'ffffe0',\r\n lime: '00ff00',\r\n limegreen: '32cd32',\r\n linen: 'faf0e6',\r\n magenta: 'ff00ff',\r\n maroon: '800000',\r\n mediumaquamarine: '66cdaa',\r\n mediumblue: '0000cd',\r\n mediumorchid: 'ba55d3',\r\n mediumpurple: '9370d8',\r\n mediumseagreen: '3cb371',\r\n mediumslateblue: '7b68ee',\r\n mediumspringgreen: '00fa9a',\r\n mediumturquoise: '48d1cc',\r\n mediumvioletred: 'c71585',\r\n midnightblue: '191970',\r\n mintcream: 'f5fffa',\r\n mistyrose: 'ffe4e1',\r\n moccasin: 'ffe4b5',\r\n navajowhite: 'ffdead',\r\n navy: '000080',\r\n oldlace: 'fdf5e6',\r\n olive: '808000',\r\n olivedrab: '6b8e23',\r\n orange: 'ffa500',\r\n orangered: 'ff4500',\r\n orchid: 'da70d6',\r\n palegoldenrod: 'eee8aa',\r\n palegreen: '98fb98',\r\n paleturquoise: 'afeeee',\r\n palevioletred: 'd87093',\r\n papayawhip: 'ffefd5',\r\n peachpuff: 'ffdab9',\r\n peru: 'cd853f',\r\n pink: 'ffc0cb',\r\n plum: 'dda0dd',\r\n powderblue: 'b0e0e6',\r\n purple: '800080',\r\n rebeccapurple: '663399',\r\n red: 'ff0000',\r\n rosybrown: 'bc8f8f',\r\n royalblue: '4169e1',\r\n saddlebrown: '8b4513',\r\n salmon: 'fa8072',\r\n sandybrown: 'f4a460',\r\n seagreen: '2e8b57',\r\n seashell: 'fff5ee',\r\n sienna: 'a0522d',\r\n silver: 'c0c0c0',\r\n skyblue: '87ceeb',\r\n slateblue: '6a5acd',\r\n slategray: '708090',\r\n snow: 'fffafa',\r\n springgreen: '00ff7f',\r\n steelblue: '4682b4',\r\n tan: 'd2b48c',\r\n teal: '008080',\r\n thistle: 'd8bfd8',\r\n tomato: 'ff6347',\r\n turquoise: '40e0d0',\r\n violet: 'ee82ee',\r\n violetred: 'd02090',\r\n wheat: 'f5deb3',\r\n white: 'ffffff',\r\n whitesmoke: 'f5f5f5',\r\n yellow: 'ffff00',\r\n yellowgreen: '9acd32'\r\n };\r\n color_string = simple_colors[color_string] || color_string;\r\n // emd of simple type-in colors\r\n\r\n // array of color definition objects\r\n var color_defs = [\r\n {\r\n re: /^rgba\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3}),\\s*((?:\\d?\\.)?\\d)\\)$/,\r\n example: ['rgba(123, 234, 45, 0.8)', 'rgba(255,234,245,1.0)'],\r\n process: function (bits){\r\n return [\r\n parseInt(bits[1]),\r\n parseInt(bits[2]),\r\n parseInt(bits[3]),\r\n parseFloat(bits[4])\r\n ];\r\n }\r\n },\r\n {\r\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\r\n example: ['rgb(123, 234, 45)', 'rgb(255,234,245)'],\r\n process: function (bits){\r\n return [\r\n parseInt(bits[1]),\r\n parseInt(bits[2]),\r\n parseInt(bits[3])\r\n ];\r\n }\r\n },\r\n {\r\n re: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\r\n example: ['#00ff00', '336699'],\r\n process: function (bits){\r\n return [\r\n parseInt(bits[1], 16),\r\n parseInt(bits[2], 16),\r\n parseInt(bits[3], 16)\r\n ];\r\n }\r\n },\r\n {\r\n re: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\r\n example: ['#fb0', 'f0f'],\r\n process: function (bits){\r\n return [\r\n parseInt(bits[1] + bits[1], 16),\r\n parseInt(bits[2] + bits[2], 16),\r\n parseInt(bits[3] + bits[3], 16)\r\n ];\r\n }\r\n }\r\n ];\r\n\r\n // search through the definitions to find a match\r\n for (var i = 0; i < color_defs.length; i++) {\r\n var re = color_defs[i].re;\r\n var processor = color_defs[i].process;\r\n var bits = re.exec(color_string);\r\n if (bits) {\r\n var channels = processor(bits);\r\n this.r = channels[0];\r\n this.g = channels[1];\r\n this.b = channels[2];\r\n if (channels.length > 3) {\r\n this.alpha = channels[3];\r\n }\r\n this.ok = true;\r\n }\r\n\r\n }\r\n\r\n // validate/cleanup values\r\n this.r = (this.r < 0 || isNaN(this.r)) ? 0 : ((this.r > 255) ? 255 : this.r);\r\n this.g = (this.g < 0 || isNaN(this.g)) ? 0 : ((this.g > 255) ? 255 : this.g);\r\n this.b = (this.b < 0 || isNaN(this.b)) ? 0 : ((this.b > 255) ? 255 : this.b);\r\n this.alpha = (this.alpha < 0) ? 0 : ((this.alpha > 1.0 || isNaN(this.alpha)) ? 1.0 : this.alpha);\r\n\r\n // some getters\r\n this.toRGB = function () {\r\n return 'rgb(' + this.r + ', ' + this.g + ', ' + this.b + ')';\r\n }\r\n this.toRGBA = function () {\r\n return 'rgba(' + this.r + ', ' + this.g + ', ' + this.b + ', ' + this.alpha + ')';\r\n }\r\n this.toHex = function () {\r\n var r = this.r.toString(16);\r\n var g = this.g.toString(16);\r\n var b = this.b.toString(16);\r\n if (r.length == 1) r = '0' + r;\r\n if (g.length == 1) g = '0' + g;\r\n if (b.length == 1) b = '0' + b;\r\n return '#' + r + g + b;\r\n }\r\n\r\n // help\r\n this.getHelpXML = function () {\r\n\r\n var examples = new Array();\r\n // add regexps\r\n for (var i = 0; i < color_defs.length; i++) {\r\n var example = color_defs[i].example;\r\n for (var j = 0; j < example.length; j++) {\r\n examples[examples.length] = example[j];\r\n }\r\n }\r\n // add type-in colors\r\n for (var sc in simple_colors) {\r\n examples[examples.length] = sc;\r\n }\r\n\r\n var xml = document.createElement('ul');\r\n xml.setAttribute('id', 'rgbcolor-examples');\r\n for (var i = 0; i < examples.length; i++) {\r\n try {\r\n var list_item = document.createElement('li');\r\n var list_color = new RGBColor(examples[i]);\r\n var example_div = document.createElement('div');\r\n example_div.style.cssText =\r\n 'margin: 3px; '\r\n + 'border: 1px solid black; '\r\n + 'background:' + list_color.toHex() + '; '\r\n + 'color:' + list_color.toHex()\r\n ;\r\n example_div.appendChild(document.createTextNode('test'));\r\n var list_item_value = document.createTextNode(\r\n ' ' + examples[i] + ' -> ' + list_color.toRGB() + ' -> ' + list_color.toHex()\r\n );\r\n list_item.appendChild(example_div);\r\n list_item.appendChild(list_item_value);\r\n xml.appendChild(list_item);\r\n\r\n } catch(e){}\r\n }\r\n return xml;\r\n\r\n }\r\n\r\n}\r\n","'use strict';\r\n// TODO: Remove from `core-js@4` since it's moved to entry points\r\nrequire('../modules/es.regexp.exec');\r\nvar uncurryThis = require('../internals/function-uncurry-this');\r\nvar redefine = require('../internals/redefine');\r\nvar regexpExec = require('../internals/regexp-exec');\r\nvar fails = require('../internals/fails');\r\nvar wellKnownSymbol = require('../internals/well-known-symbol');\r\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\r\n\r\nvar SPECIES = wellKnownSymbol('species');\r\nvar RegExpPrototype = RegExp.prototype;\r\n\r\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\r\n var SYMBOL = wellKnownSymbol(KEY);\r\n\r\n var DELEGATES_TO_SYMBOL = !fails(function () {\r\n // String methods call symbol-named RegEp methods\r\n var O = {};\r\n O[SYMBOL] = function () { return 7; };\r\n return ''[KEY](O) != 7;\r\n });\r\n\r\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\r\n // Symbol-named RegExp methods call .exec\r\n var execCalled = false;\r\n var re = /a/;\r\n\r\n if (KEY === 'split') {\r\n // We can't use real regex here since it causes deoptimization\r\n // and serious performance degradation in V8\r\n // https://github.com/zloirock/core-js/issues/306\r\n re = {};\r\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\r\n // a new one. We need to return the patched regex when creating the new one.\r\n re.constructor = {};\r\n re.constructor[SPECIES] = function () { return re; };\r\n re.flags = '';\r\n re[SYMBOL] = /./[SYMBOL];\r\n }\r\n\r\n re.exec = function () { execCalled = true; return null; };\r\n\r\n re[SYMBOL]('');\r\n return !execCalled;\r\n });\r\n\r\n if (\r\n !DELEGATES_TO_SYMBOL ||\r\n !DELEGATES_TO_EXEC ||\r\n FORCED\r\n ) {\r\n var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\r\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\r\n var uncurriedNativeMethod = uncurryThis(nativeMethod);\r\n var $exec = regexp.exec;\r\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\r\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\r\n // The native String method already delegates to @@method (this\r\n // polyfilled function), leasing to infinite recursion.\r\n // We avoid it by directly calling the native @@method method.\r\n return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) };\r\n }\r\n return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\r\n }\r\n return { done: false };\r\n });\r\n\r\n redefine(String.prototype, KEY, methods[0]);\r\n redefine(RegExpPrototype, SYMBOL, methods[1]);\r\n }\r\n\r\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\r\n};\r\n","var global = require('../internals/global');\r\nvar isCallable = require('../internals/is-callable');\r\nvar hasOwn = require('../internals/has-own-property');\r\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\r\nvar setGlobal = require('../internals/set-global');\r\nvar inspectSource = require('../internals/inspect-source');\r\nvar InternalStateModule = require('../internals/internal-state');\r\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\r\n\r\nvar getInternalState = InternalStateModule.get;\r\nvar enforceInternalState = InternalStateModule.enforce;\r\nvar TEMPLATE = String(String).split('String');\r\n\r\n(module.exports = function (O, key, value, options) {\r\n var unsafe = options ? !!options.unsafe : false;\r\n var simple = options ? !!options.enumerable : false;\r\n var noTargetGet = options ? !!options.noTargetGet : false;\r\n var name = options && options.name !== undefined ? options.name : key;\r\n var state;\r\n if (isCallable(value)) {\r\n if (String(name).slice(0, 7) === 'Symbol(') {\r\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\r\n }\r\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\r\n createNonEnumerableProperty(value, 'name', name);\r\n }\r\n state = enforceInternalState(value);\r\n if (!state.source) {\r\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\r\n }\r\n }\r\n if (O === global) {\r\n if (simple) O[key] = value;\r\n else setGlobal(key, value);\r\n return;\r\n } else if (!unsafe) {\r\n delete O[key];\r\n } else if (!noTargetGet && O[key]) {\r\n simple = true;\r\n }\r\n if (simple) O[key] = value;\r\n else createNonEnumerableProperty(O, key, value);\r\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\r\n})(Function.prototype, 'toString', function toString() {\r\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\r\n});\r\n","var global = require('../internals/global');\r\nvar isObject = require('../internals/is-object');\r\n\r\nvar String = global.String;\r\nvar TypeError = global.TypeError;\r\n\r\n// `Assert: Type(argument) is Object`\r\nmodule.exports = function (argument) {\r\n if (isObject(argument)) return argument;\r\n throw TypeError(String(argument) + ' is not an object');\r\n};\r\n","/* global ActiveXObject -- old IE, WSH */\r\nvar anObject = require('../internals/an-object');\r\nvar definePropertiesModule = require('../internals/object-define-properties');\r\nvar enumBugKeys = require('../internals/enum-bug-keys');\r\nvar hiddenKeys = require('../internals/hidden-keys');\r\nvar html = require('../internals/html');\r\nvar documentCreateElement = require('../internals/document-create-element');\r\nvar sharedKey = require('../internals/shared-key');\r\n\r\nvar GT = '>';\r\nvar LT = '<';\r\nvar PROTOTYPE = 'prototype';\r\nvar SCRIPT = 'script';\r\nvar IE_PROTO = sharedKey('IE_PROTO');\r\n\r\nvar EmptyConstructor = function () { /* empty */ };\r\n\r\nvar scriptTag = function (content) {\r\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\r\n};\r\n\r\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\r\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\r\n activeXDocument.write(scriptTag(''));\r\n activeXDocument.close();\r\n var temp = activeXDocument.parentWindow.Object;\r\n activeXDocument = null; // avoid memory leak\r\n return temp;\r\n};\r\n\r\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\r\nvar NullProtoObjectViaIFrame = function () {\r\n // Thrash, waste and sodomy: IE GC bug\r\n var iframe = documentCreateElement('iframe');\r\n var JS = 'java' + SCRIPT + ':';\r\n var iframeDocument;\r\n iframe.style.display = 'none';\r\n html.appendChild(iframe);\r\n // https://github.com/zloirock/core-js/issues/475\r\n iframe.src = String(JS);\r\n iframeDocument = iframe.contentWindow.document;\r\n iframeDocument.open();\r\n iframeDocument.write(scriptTag('document.F=Object'));\r\n iframeDocument.close();\r\n return iframeDocument.F;\r\n};\r\n\r\n// Check for document.domain and active x support\r\n// No need to use active x approach when document.domain is not set\r\n// see https://github.com/es-shims/es5-shim/issues/150\r\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\r\n// avoid IE GC bug\r\nvar activeXDocument;\r\nvar NullProtoObject = function () {\r\n try {\r\n activeXDocument = new ActiveXObject('htmlfile');\r\n } catch (error) { /* ignore */ }\r\n NullProtoObject = typeof document != 'undefined'\r\n ? document.domain && activeXDocument\r\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\r\n : NullProtoObjectViaIFrame()\r\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\r\n var length = enumBugKeys.length;\r\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\r\n return NullProtoObject();\r\n};\r\n\r\nhiddenKeys[IE_PROTO] = true;\r\n\r\n// `Object.create` method\r\n// https://tc39.es/ecma262/#sec-object.create\r\nmodule.exports = Object.create || function create(O, Properties) {\r\n var result;\r\n if (O !== null) {\r\n EmptyConstructor[PROTOTYPE] = anObject(O);\r\n result = new EmptyConstructor();\r\n EmptyConstructor[PROTOTYPE] = null;\r\n // add \"__proto__\" for Object.getPrototypeOf polyfill\r\n result[IE_PROTO] = O;\r\n } else result = NullProtoObject();\r\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\r\n};\r\n","var global = require('../internals/global');\r\nvar apply = require('../internals/function-apply');\r\nvar bind = require('../internals/function-bind-context');\r\nvar isCallable = require('../internals/is-callable');\r\nvar hasOwn = require('../internals/has-own-property');\r\nvar fails = require('../internals/fails');\r\nvar html = require('../internals/html');\r\nvar arraySlice = require('../internals/array-slice');\r\nvar createElement = require('../internals/document-create-element');\r\nvar IS_IOS = require('../internals/engine-is-ios');\r\nvar IS_NODE = require('../internals/engine-is-node');\r\n\r\nvar set = global.setImmediate;\r\nvar clear = global.clearImmediate;\r\nvar process = global.process;\r\nvar Dispatch = global.Dispatch;\r\nvar Function = global.Function;\r\nvar MessageChannel = global.MessageChannel;\r\nvar String = global.String;\r\nvar counter = 0;\r\nvar queue = {};\r\nvar ONREADYSTATECHANGE = 'onreadystatechange';\r\nvar location, defer, channel, port;\r\n\r\ntry {\r\n // Deno throws a ReferenceError on `location` access without `--location` flag\r\n location = global.location;\r\n} catch (error) { /* empty */ }\r\n\r\nvar run = function (id) {\r\n if (hasOwn(queue, id)) {\r\n var fn = queue[id];\r\n delete queue[id];\r\n fn();\r\n }\r\n};\r\n\r\nvar runner = function (id) {\r\n return function () {\r\n run(id);\r\n };\r\n};\r\n\r\nvar listener = function (event) {\r\n run(event.data);\r\n};\r\n\r\nvar post = function (id) {\r\n // old engines have not location.origin\r\n global.postMessage(String(id), location.protocol + '//' + location.host);\r\n};\r\n\r\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\r\nif (!set || !clear) {\r\n set = function setImmediate(fn) {\r\n var args = arraySlice(arguments, 1);\r\n queue[++counter] = function () {\r\n apply(isCallable(fn) ? fn : Function(fn), undefined, args);\r\n };\r\n defer(counter);\r\n return counter;\r\n };\r\n clear = function clearImmediate(id) {\r\n delete queue[id];\r\n };\r\n // Node.js 0.8-\r\n if (IS_NODE) {\r\n defer = function (id) {\r\n process.nextTick(runner(id));\r\n };\r\n // Sphere (JS game engine) Dispatch API\r\n } else if (Dispatch && Dispatch.now) {\r\n defer = function (id) {\r\n Dispatch.now(runner(id));\r\n };\r\n // Browsers with MessageChannel, includes WebWorkers\r\n // except iOS - https://github.com/zloirock/core-js/issues/624\r\n } else if (MessageChannel && !IS_IOS) {\r\n channel = new MessageChannel();\r\n port = channel.port2;\r\n channel.port1.onmessage = listener;\r\n defer = bind(port.postMessage, port);\r\n // Browsers with postMessage, skip WebWorkers\r\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\r\n } else if (\r\n global.addEventListener &&\r\n isCallable(global.postMessage) &&\r\n !global.importScripts &&\r\n location && location.protocol !== 'file:' &&\r\n !fails(post)\r\n ) {\r\n defer = post;\r\n global.addEventListener('message', listener, false);\r\n // IE8-\r\n } else if (ONREADYSTATECHANGE in createElement('script')) {\r\n defer = function (id) {\r\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\r\n html.removeChild(this);\r\n run(id);\r\n };\r\n };\r\n // Rest old browsers\r\n } else {\r\n defer = function (id) {\r\n setTimeout(runner(id), 0);\r\n };\r\n }\r\n}\r\n\r\nmodule.exports = {\r\n set: set,\r\n clear: clear\r\n};\r\n","var global = require('../internals/global');\r\n\r\nvar TypeError = global.TypeError;\r\n\r\n// `RequireObjectCoercible` abstract operation\r\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\r\nmodule.exports = function (it) {\r\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\r\n return it;\r\n};\r\n","function _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n\r\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\r\n _typeof = function (obj) {\r\n return typeof obj;\r\n };\r\n } else {\r\n _typeof = function (obj) {\r\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\r\n };\r\n }\r\n\r\n return _typeof(obj);\r\n}\r\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\");\r\n }\r\n}\r\n\r\n/* eslint-disable no-bitwise -- used for calculations */\r\n\r\n/* eslint-disable unicorn/prefer-query-selector -- aiming at\r\n backward-compatibility */\r\n\r\n/**\r\n* StackBlur - a fast almost Gaussian Blur For Canvas\r\n*\r\n* In case you find this class useful - especially in commercial projects -\r\n* I am not totally unhappy for a small donation to my PayPal account\r\n* mario@quasimondo.de\r\n*\r\n* Or support me on flattr:\r\n* {@link https://flattr.com/thing/72791/StackBlur-a-fast-almost-Gaussian-Blur-Effect-for-CanvasJavascript}.\r\n*\r\n* @module StackBlur\r\n* @author Mario Klingemann\r\n* Contact: mario@quasimondo.com\r\n* Website: {@link http://www.quasimondo.com/StackBlurForCanvas/StackBlurDemo.html}\r\n* Twitter: @quasimondo\r\n*\r\n* @copyright (c) 2010 Mario Klingemann\r\n*\r\n* Permission is hereby granted, free of charge, to any person\r\n* obtaining a copy of this software and associated documentation\r\n* files (the \"Software\"), to deal in the Software without\r\n* restriction, including without limitation the rights to use,\r\n* copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n* copies of the Software, and to permit persons to whom the\r\n* Software is furnished to do so, subject to the following\r\n* conditions:\r\n*\r\n* The above copyright notice and this permission notice shall be\r\n* included in all copies or substantial portions of the Software.\r\n*\r\n* THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\r\n* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r\n* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\r\n* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\r\n* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\r\n* OTHER DEALINGS IN THE SOFTWARE.\r\n*/\r\nvar mulTable = [512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292, 512, 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292, 273, 512, 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259, 496, 475, 456, 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292, 282, 273, 265, 512, 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373, 364, 354, 345, 337, 328, 320, 312, 305, 298, 291, 284, 278, 271, 265, 259, 507, 496, 485, 475, 465, 456, 446, 437, 428, 420, 412, 404, 396, 388, 381, 374, 367, 360, 354, 347, 341, 335, 329, 323, 318, 312, 307, 302, 297, 292, 287, 282, 278, 273, 269, 265, 261, 512, 505, 497, 489, 482, 475, 468, 461, 454, 447, 441, 435, 428, 422, 417, 411, 405, 399, 394, 389, 383, 378, 373, 368, 364, 359, 354, 350, 345, 341, 337, 332, 328, 324, 320, 316, 312, 309, 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271, 268, 265, 262, 259, 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456, 451, 446, 442, 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388, 385, 381, 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335, 332, 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292, 289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259];\r\nvar shgTable = [9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24];\r\n/**\r\n * @param {string|HTMLImageElement} img\r\n * @param {string|HTMLCanvasElement} canvas\r\n * @param {Float} radius\r\n * @param {boolean} blurAlphaChannel\r\n * @param {boolean} useOffset\r\n * @param {boolean} skipStyles\r\n * @returns {undefined}\r\n */\r\n\r\nfunction processImage(img, canvas, radius, blurAlphaChannel, useOffset, skipStyles) {\r\n if (typeof img === 'string') {\r\n img = document.getElementById(img);\r\n }\r\n\r\n if (!img || !('naturalWidth' in img)) {\r\n return;\r\n }\r\n\r\n var dimensionType = useOffset ? 'offset' : 'natural';\r\n var w = img[dimensionType + 'Width'];\r\n var h = img[dimensionType + 'Height'];\r\n\r\n if (typeof canvas === 'string') {\r\n canvas = document.getElementById(canvas);\r\n }\r\n\r\n if (!canvas || !('getContext' in canvas)) {\r\n return;\r\n }\r\n\r\n if (!skipStyles) {\r\n canvas.style.width = w + 'px';\r\n canvas.style.height = h + 'px';\r\n }\r\n\r\n canvas.width = w;\r\n canvas.height = h;\r\n var context = canvas.getContext('2d');\r\n context.clearRect(0, 0, w, h);\r\n context.drawImage(img, 0, 0, img.naturalWidth, img.naturalHeight, 0, 0, w, h);\r\n\r\n if (isNaN(radius) || radius < 1) {\r\n return;\r\n }\r\n\r\n if (blurAlphaChannel) {\r\n processCanvasRGBA(canvas, 0, 0, w, h, radius);\r\n } else {\r\n processCanvasRGB(canvas, 0, 0, w, h, radius);\r\n }\r\n}\r\n/**\r\n * @param {string|HTMLCanvasElement} canvas\r\n * @param {Integer} topX\r\n * @param {Integer} topY\r\n * @param {Integer} width\r\n * @param {Integer} height\r\n * @throws {Error|TypeError}\r\n * @returns {ImageData} See {@link https://html.spec.whatwg.org/multipage/canvas.html#imagedata}\r\n */\r\n\r\n\r\nfunction getImageDataFromCanvas(canvas, topX, topY, width, height) {\r\n if (typeof canvas === 'string') {\r\n canvas = document.getElementById(canvas);\r\n }\r\n\r\n if (!canvas || _typeof(canvas) !== 'object' || !('getContext' in canvas)) {\r\n throw new TypeError('Expecting canvas with `getContext` method ' + 'in processCanvasRGB(A) calls!');\r\n }\r\n\r\n var context = canvas.getContext('2d');\r\n\r\n try {\r\n return context.getImageData(topX, topY, width, height);\r\n } catch (e) {\r\n throw new Error('unable to access image data: ' + e);\r\n }\r\n}\r\n/**\r\n * @param {HTMLCanvasElement} canvas\r\n * @param {Integer} topX\r\n * @param {Integer} topY\r\n * @param {Integer} width\r\n * @param {Integer} height\r\n * @param {Float} radius\r\n * @returns {undefined}\r\n */\r\n\r\n\r\nfunction processCanvasRGBA(canvas, topX, topY, width, height, radius) {\r\n if (isNaN(radius) || radius < 1) {\r\n return;\r\n }\r\n\r\n radius |= 0;\r\n var imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);\r\n imageData = processImageDataRGBA(imageData, topX, topY, width, height, radius);\r\n canvas.getContext('2d').putImageData(imageData, topX, topY);\r\n}\r\n/**\r\n * @param {ImageData} imageData\r\n * @param {Integer} topX\r\n * @param {Integer} topY\r\n * @param {Integer} width\r\n * @param {Integer} height\r\n * @param {Float} radius\r\n * @returns {ImageData}\r\n */\r\n\r\n\r\nfunction processImageDataRGBA(imageData, topX, topY, width, height, radius) {\r\n var pixels = imageData.data;\r\n var div = 2 * radius + 1; // const w4 = width << 2;\r\n\r\n var widthMinus1 = width - 1;\r\n var heightMinus1 = height - 1;\r\n var radiusPlus1 = radius + 1;\r\n var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\r\n var stackStart = new BlurStack();\r\n var stack = stackStart;\r\n var stackEnd;\r\n\r\n for (var i = 1; i < div; i++) {\r\n stack = stack.next = new BlurStack();\r\n\r\n if (i === radiusPlus1) {\r\n stackEnd = stack;\r\n }\r\n }\r\n\r\n stack.next = stackStart;\r\n var stackIn = null,\r\n stackOut = null,\r\n yw = 0,\r\n yi = 0;\r\n var mulSum = mulTable[radius];\r\n var shgSum = shgTable[radius];\r\n\r\n for (var y = 0; y < height; y++) {\r\n stack = stackStart;\r\n var pr = pixels[yi],\r\n pg = pixels[yi + 1],\r\n pb = pixels[yi + 2],\r\n pa = pixels[yi + 3];\r\n\r\n for (var _i = 0; _i < radiusPlus1; _i++) {\r\n stack.r = pr;\r\n stack.g = pg;\r\n stack.b = pb;\r\n stack.a = pa;\r\n stack = stack.next;\r\n }\r\n\r\n var rInSum = 0,\r\n gInSum = 0,\r\n bInSum = 0,\r\n aInSum = 0,\r\n rOutSum = radiusPlus1 * pr,\r\n gOutSum = radiusPlus1 * pg,\r\n bOutSum = radiusPlus1 * pb,\r\n aOutSum = radiusPlus1 * pa,\r\n rSum = sumFactor * pr,\r\n gSum = sumFactor * pg,\r\n bSum = sumFactor * pb,\r\n aSum = sumFactor * pa;\r\n\r\n for (var _i2 = 1; _i2 < radiusPlus1; _i2++) {\r\n var p = yi + ((widthMinus1 < _i2 ? widthMinus1 : _i2) << 2);\r\n var r = pixels[p],\r\n g = pixels[p + 1],\r\n b = pixels[p + 2],\r\n a = pixels[p + 3];\r\n var rbs = radiusPlus1 - _i2;\r\n rSum += (stack.r = r) * rbs;\r\n gSum += (stack.g = g) * rbs;\r\n bSum += (stack.b = b) * rbs;\r\n aSum += (stack.a = a) * rbs;\r\n rInSum += r;\r\n gInSum += g;\r\n bInSum += b;\r\n aInSum += a;\r\n stack = stack.next;\r\n }\r\n\r\n stackIn = stackStart;\r\n stackOut = stackEnd;\r\n\r\n for (var x = 0; x < width; x++) {\r\n var paInitial = aSum * mulSum >> shgSum;\r\n pixels[yi + 3] = paInitial;\r\n\r\n if (paInitial !== 0) {\r\n var _a2 = 255 / paInitial;\r\n\r\n pixels[yi] = (rSum * mulSum >> shgSum) * _a2;\r\n pixels[yi + 1] = (gSum * mulSum >> shgSum) * _a2;\r\n pixels[yi + 2] = (bSum * mulSum >> shgSum) * _a2;\r\n } else {\r\n pixels[yi] = pixels[yi + 1] = pixels[yi + 2] = 0;\r\n }\r\n\r\n rSum -= rOutSum;\r\n gSum -= gOutSum;\r\n bSum -= bOutSum;\r\n aSum -= aOutSum;\r\n rOutSum -= stackIn.r;\r\n gOutSum -= stackIn.g;\r\n bOutSum -= stackIn.b;\r\n aOutSum -= stackIn.a;\r\n\r\n var _p = x + radius + 1;\r\n\r\n _p = yw + (_p < widthMinus1 ? _p : widthMinus1) << 2;\r\n rInSum += stackIn.r = pixels[_p];\r\n gInSum += stackIn.g = pixels[_p + 1];\r\n bInSum += stackIn.b = pixels[_p + 2];\r\n aInSum += stackIn.a = pixels[_p + 3];\r\n rSum += rInSum;\r\n gSum += gInSum;\r\n bSum += bInSum;\r\n aSum += aInSum;\r\n stackIn = stackIn.next;\r\n var _stackOut = stackOut,\r\n _r = _stackOut.r,\r\n _g = _stackOut.g,\r\n _b = _stackOut.b,\r\n _a = _stackOut.a;\r\n rOutSum += _r;\r\n gOutSum += _g;\r\n bOutSum += _b;\r\n aOutSum += _a;\r\n rInSum -= _r;\r\n gInSum -= _g;\r\n bInSum -= _b;\r\n aInSum -= _a;\r\n stackOut = stackOut.next;\r\n yi += 4;\r\n }\r\n\r\n yw += width;\r\n }\r\n\r\n for (var _x = 0; _x < width; _x++) {\r\n yi = _x << 2;\r\n\r\n var _pr = pixels[yi],\r\n _pg = pixels[yi + 1],\r\n _pb = pixels[yi + 2],\r\n _pa = pixels[yi + 3],\r\n _rOutSum = radiusPlus1 * _pr,\r\n _gOutSum = radiusPlus1 * _pg,\r\n _bOutSum = radiusPlus1 * _pb,\r\n _aOutSum = radiusPlus1 * _pa,\r\n _rSum = sumFactor * _pr,\r\n _gSum = sumFactor * _pg,\r\n _bSum = sumFactor * _pb,\r\n _aSum = sumFactor * _pa;\r\n\r\n stack = stackStart;\r\n\r\n for (var _i3 = 0; _i3 < radiusPlus1; _i3++) {\r\n stack.r = _pr;\r\n stack.g = _pg;\r\n stack.b = _pb;\r\n stack.a = _pa;\r\n stack = stack.next;\r\n }\r\n\r\n var yp = width;\r\n var _gInSum = 0,\r\n _bInSum = 0,\r\n _aInSum = 0,\r\n _rInSum = 0;\r\n\r\n for (var _i4 = 1; _i4 <= radius; _i4++) {\r\n yi = yp + _x << 2;\r\n\r\n var _rbs = radiusPlus1 - _i4;\r\n\r\n _rSum += (stack.r = _pr = pixels[yi]) * _rbs;\r\n _gSum += (stack.g = _pg = pixels[yi + 1]) * _rbs;\r\n _bSum += (stack.b = _pb = pixels[yi + 2]) * _rbs;\r\n _aSum += (stack.a = _pa = pixels[yi + 3]) * _rbs;\r\n _rInSum += _pr;\r\n _gInSum += _pg;\r\n _bInSum += _pb;\r\n _aInSum += _pa;\r\n stack = stack.next;\r\n\r\n if (_i4 < heightMinus1) {\r\n yp += width;\r\n }\r\n }\r\n\r\n yi = _x;\r\n stackIn = stackStart;\r\n stackOut = stackEnd;\r\n\r\n for (var _y = 0; _y < height; _y++) {\r\n var _p2 = yi << 2;\r\n\r\n pixels[_p2 + 3] = _pa = _aSum * mulSum >> shgSum;\r\n\r\n if (_pa > 0) {\r\n _pa = 255 / _pa;\r\n pixels[_p2] = (_rSum * mulSum >> shgSum) * _pa;\r\n pixels[_p2 + 1] = (_gSum * mulSum >> shgSum) * _pa;\r\n pixels[_p2 + 2] = (_bSum * mulSum >> shgSum) * _pa;\r\n } else {\r\n pixels[_p2] = pixels[_p2 + 1] = pixels[_p2 + 2] = 0;\r\n }\r\n\r\n _rSum -= _rOutSum;\r\n _gSum -= _gOutSum;\r\n _bSum -= _bOutSum;\r\n _aSum -= _aOutSum;\r\n _rOutSum -= stackIn.r;\r\n _gOutSum -= stackIn.g;\r\n _bOutSum -= stackIn.b;\r\n _aOutSum -= stackIn.a;\r\n _p2 = _x + ((_p2 = _y + radiusPlus1) < heightMinus1 ? _p2 : heightMinus1) * width << 2;\r\n _rSum += _rInSum += stackIn.r = pixels[_p2];\r\n _gSum += _gInSum += stackIn.g = pixels[_p2 + 1];\r\n _bSum += _bInSum += stackIn.b = pixels[_p2 + 2];\r\n _aSum += _aInSum += stackIn.a = pixels[_p2 + 3];\r\n stackIn = stackIn.next;\r\n _rOutSum += _pr = stackOut.r;\r\n _gOutSum += _pg = stackOut.g;\r\n _bOutSum += _pb = stackOut.b;\r\n _aOutSum += _pa = stackOut.a;\r\n _rInSum -= _pr;\r\n _gInSum -= _pg;\r\n _bInSum -= _pb;\r\n _aInSum -= _pa;\r\n stackOut = stackOut.next;\r\n yi += width;\r\n }\r\n }\r\n\r\n return imageData;\r\n}\r\n/**\r\n * @param {HTMLCanvasElement} canvas\r\n * @param {Integer} topX\r\n * @param {Integer} topY\r\n * @param {Integer} width\r\n * @param {Integer} height\r\n * @param {Float} radius\r\n * @returns {undefined}\r\n */\r\n\r\n\r\nfunction processCanvasRGB(canvas, topX, topY, width, height, radius) {\r\n if (isNaN(radius) || radius < 1) {\r\n return;\r\n }\r\n\r\n radius |= 0;\r\n var imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);\r\n imageData = processImageDataRGB(imageData, topX, topY, width, height, radius);\r\n canvas.getContext('2d').putImageData(imageData, topX, topY);\r\n}\r\n/**\r\n * @param {ImageData} imageData\r\n * @param {Integer} topX\r\n * @param {Integer} topY\r\n * @param {Integer} width\r\n * @param {Integer} height\r\n * @param {Float} radius\r\n * @returns {ImageData}\r\n */\r\n\r\n\r\nfunction processImageDataRGB(imageData, topX, topY, width, height, radius) {\r\n var pixels = imageData.data;\r\n var div = 2 * radius + 1; // const w4 = width << 2;\r\n\r\n var widthMinus1 = width - 1;\r\n var heightMinus1 = height - 1;\r\n var radiusPlus1 = radius + 1;\r\n var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\r\n var stackStart = new BlurStack();\r\n var stack = stackStart;\r\n var stackEnd;\r\n\r\n for (var i = 1; i < div; i++) {\r\n stack = stack.next = new BlurStack();\r\n\r\n if (i === radiusPlus1) {\r\n stackEnd = stack;\r\n }\r\n }\r\n\r\n stack.next = stackStart;\r\n var stackIn = null;\r\n var stackOut = null;\r\n var mulSum = mulTable[radius];\r\n var shgSum = shgTable[radius];\r\n var p, rbs;\r\n var yw = 0,\r\n yi = 0;\r\n\r\n for (var y = 0; y < height; y++) {\r\n var pr = pixels[yi],\r\n pg = pixels[yi + 1],\r\n pb = pixels[yi + 2],\r\n rOutSum = radiusPlus1 * pr,\r\n gOutSum = radiusPlus1 * pg,\r\n bOutSum = radiusPlus1 * pb,\r\n rSum = sumFactor * pr,\r\n gSum = sumFactor * pg,\r\n bSum = sumFactor * pb;\r\n stack = stackStart;\r\n\r\n for (var _i5 = 0; _i5 < radiusPlus1; _i5++) {\r\n stack.r = pr;\r\n stack.g = pg;\r\n stack.b = pb;\r\n stack = stack.next;\r\n }\r\n\r\n var rInSum = 0,\r\n gInSum = 0,\r\n bInSum = 0;\r\n\r\n for (var _i6 = 1; _i6 < radiusPlus1; _i6++) {\r\n p = yi + ((widthMinus1 < _i6 ? widthMinus1 : _i6) << 2);\r\n rSum += (stack.r = pr = pixels[p]) * (rbs = radiusPlus1 - _i6);\r\n gSum += (stack.g = pg = pixels[p + 1]) * rbs;\r\n bSum += (stack.b = pb = pixels[p + 2]) * rbs;\r\n rInSum += pr;\r\n gInSum += pg;\r\n bInSum += pb;\r\n stack = stack.next;\r\n }\r\n\r\n stackIn = stackStart;\r\n stackOut = stackEnd;\r\n\r\n for (var x = 0; x < width; x++) {\r\n pixels[yi] = rSum * mulSum >> shgSum;\r\n pixels[yi + 1] = gSum * mulSum >> shgSum;\r\n pixels[yi + 2] = bSum * mulSum >> shgSum;\r\n rSum -= rOutSum;\r\n gSum -= gOutSum;\r\n bSum -= bOutSum;\r\n rOutSum -= stackIn.r;\r\n gOutSum -= stackIn.g;\r\n bOutSum -= stackIn.b;\r\n p = yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1) << 2;\r\n rInSum += stackIn.r = pixels[p];\r\n gInSum += stackIn.g = pixels[p + 1];\r\n bInSum += stackIn.b = pixels[p + 2];\r\n rSum += rInSum;\r\n gSum += gInSum;\r\n bSum += bInSum;\r\n stackIn = stackIn.next;\r\n rOutSum += pr = stackOut.r;\r\n gOutSum += pg = stackOut.g;\r\n bOutSum += pb = stackOut.b;\r\n rInSum -= pr;\r\n gInSum -= pg;\r\n bInSum -= pb;\r\n stackOut = stackOut.next;\r\n yi += 4;\r\n }\r\n\r\n yw += width;\r\n }\r\n\r\n for (var _x2 = 0; _x2 < width; _x2++) {\r\n yi = _x2 << 2;\r\n\r\n var _pr2 = pixels[yi],\r\n _pg2 = pixels[yi + 1],\r\n _pb2 = pixels[yi + 2],\r\n _rOutSum2 = radiusPlus1 * _pr2,\r\n _gOutSum2 = radiusPlus1 * _pg2,\r\n _bOutSum2 = radiusPlus1 * _pb2,\r\n _rSum2 = sumFactor * _pr2,\r\n _gSum2 = sumFactor * _pg2,\r\n _bSum2 = sumFactor * _pb2;\r\n\r\n stack = stackStart;\r\n\r\n for (var _i7 = 0; _i7 < radiusPlus1; _i7++) {\r\n stack.r = _pr2;\r\n stack.g = _pg2;\r\n stack.b = _pb2;\r\n stack = stack.next;\r\n }\r\n\r\n var _rInSum2 = 0,\r\n _gInSum2 = 0,\r\n _bInSum2 = 0;\r\n\r\n for (var _i8 = 1, yp = width; _i8 <= radius; _i8++) {\r\n yi = yp + _x2 << 2;\r\n _rSum2 += (stack.r = _pr2 = pixels[yi]) * (rbs = radiusPlus1 - _i8);\r\n _gSum2 += (stack.g = _pg2 = pixels[yi + 1]) * rbs;\r\n _bSum2 += (stack.b = _pb2 = pixels[yi + 2]) * rbs;\r\n _rInSum2 += _pr2;\r\n _gInSum2 += _pg2;\r\n _bInSum2 += _pb2;\r\n stack = stack.next;\r\n\r\n if (_i8 < heightMinus1) {\r\n yp += width;\r\n }\r\n }\r\n\r\n yi = _x2;\r\n stackIn = stackStart;\r\n stackOut = stackEnd;\r\n\r\n for (var _y2 = 0; _y2 < height; _y2++) {\r\n p = yi << 2;\r\n pixels[p] = _rSum2 * mulSum >> shgSum;\r\n pixels[p + 1] = _gSum2 * mulSum >> shgSum;\r\n pixels[p + 2] = _bSum2 * mulSum >> shgSum;\r\n _rSum2 -= _rOutSum2;\r\n _gSum2 -= _gOutSum2;\r\n _bSum2 -= _bOutSum2;\r\n _rOutSum2 -= stackIn.r;\r\n _gOutSum2 -= stackIn.g;\r\n _bOutSum2 -= stackIn.b;\r\n p = _x2 + ((p = _y2 + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width << 2;\r\n _rSum2 += _rInSum2 += stackIn.r = pixels[p];\r\n _gSum2 += _gInSum2 += stackIn.g = pixels[p + 1];\r\n _bSum2 += _bInSum2 += stackIn.b = pixels[p + 2];\r\n stackIn = stackIn.next;\r\n _rOutSum2 += _pr2 = stackOut.r;\r\n _gOutSum2 += _pg2 = stackOut.g;\r\n _bOutSum2 += _pb2 = stackOut.b;\r\n _rInSum2 -= _pr2;\r\n _gInSum2 -= _pg2;\r\n _bInSum2 -= _pb2;\r\n stackOut = stackOut.next;\r\n yi += width;\r\n }\r\n }\r\n\r\n return imageData;\r\n}\r\n/**\r\n *\r\n */\r\n\r\n\r\nvar BlurStack =\r\n/**\r\n * Set properties.\r\n */\r\nfunction BlurStack() {\r\n _classCallCheck(this, BlurStack);\r\n\r\n this.r = 0;\r\n this.g = 0;\r\n this.b = 0;\r\n this.a = 0;\r\n this.next = null;\r\n};\r\n\r\nexport { BlurStack, processCanvasRGB as canvasRGB, processCanvasRGBA as canvasRGBA, processImage as image, processImageDataRGB as imageDataRGB, processImageDataRGBA as imageDataRGBA };\r\n","var wellKnownSymbol = require('../internals/well-known-symbol');\r\n\r\nvar ITERATOR = wellKnownSymbol('iterator');\r\nvar SAFE_CLOSING = false;\r\n\r\ntry {\r\n var called = 0;\r\n var iteratorWithReturn = {\r\n next: function () {\r\n return { done: !!called++ };\r\n },\r\n 'return': function () {\r\n SAFE_CLOSING = true;\r\n }\r\n };\r\n iteratorWithReturn[ITERATOR] = function () {\r\n return this;\r\n };\r\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\r\n Array.from(iteratorWithReturn, function () { throw 2; });\r\n} catch (error) { /* empty */ }\r\n\r\nmodule.exports = function (exec, SKIP_CLOSING) {\r\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\r\n var ITERATION_SUPPORT = false;\r\n try {\r\n var object = {};\r\n object[ITERATOR] = function () {\r\n return {\r\n next: function () {\r\n return { done: ITERATION_SUPPORT = true };\r\n }\r\n };\r\n };\r\n exec(object);\r\n } catch (error) { /* empty */ }\r\n return ITERATION_SUPPORT;\r\n};\r\n","var uncurryThis = require('../internals/function-uncurry-this');\r\nvar toObject = require('../internals/to-object');\r\n\r\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\r\n\r\n// `HasOwnProperty` abstract operation\r\n// https://tc39.es/ecma262/#sec-hasownproperty\r\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\r\n return hasOwnProperty(toObject(it), key);\r\n};\r\n","// IE8- don't enum bug keys\r\nmodule.exports = [\r\n 'constructor',\r\n 'hasOwnProperty',\r\n 'isPrototypeOf',\r\n 'propertyIsEnumerable',\r\n 'toLocaleString',\r\n 'toString',\r\n 'valueOf'\r\n];\r\n","var uncurryThis = require('../internals/function-uncurry-this');\r\nvar hasOwn = require('../internals/has-own-property');\r\nvar toIndexedObject = require('../internals/to-indexed-object');\r\nvar indexOf = require('../internals/array-includes').indexOf;\r\nvar hiddenKeys = require('../internals/hidden-keys');\r\n\r\nvar push = uncurryThis([].push);\r\n\r\nmodule.exports = function (object, names) {\r\n var O = toIndexedObject(object);\r\n var i = 0;\r\n var result = [];\r\n var key;\r\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\r\n // Don't enum bug & hidden keys\r\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\r\n ~indexOf(result, key) || push(result, key);\r\n }\r\n return result;\r\n};\r\n","var FunctionPrototype = Function.prototype;\r\nvar bind = FunctionPrototype.bind;\r\nvar call = FunctionPrototype.call;\r\nvar uncurryThis = bind && bind.bind(call, call);\r\n\r\nmodule.exports = bind ? function (fn) {\r\n return fn && uncurryThis(fn);\r\n} : function (fn) {\r\n return fn && function () {\r\n return call.apply(fn, arguments);\r\n };\r\n};\r\n","var global = require('../internals/global');\r\nvar userAgent = require('../internals/engine-user-agent');\r\n\r\nvar process = global.process;\r\nvar Deno = global.Deno;\r\nvar versions = process && process.versions || Deno && Deno.version;\r\nvar v8 = versions && versions.v8;\r\nvar match, version;\r\n\r\nif (v8) {\r\n match = v8.split('.');\r\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\r\n // but their correct versions are not interesting for us\r\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\r\n}\r\n\r\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\r\n// so check `userAgent` even if `.v8` exists, but 0\r\nif (!version && userAgent) {\r\n match = userAgent.match(/Edge\\/(\\d+)/);\r\n if (!match || match[1] >= 74) {\r\n match = userAgent.match(/Chrome\\/(\\d+)/);\r\n if (match) version = +match[1];\r\n }\r\n}\r\n\r\nmodule.exports = version;\r\n","var IS_PURE = require('../internals/is-pure');\r\nvar store = require('../internals/shared-store');\r\n\r\n(module.exports = function (key, value) {\r\n return store[key] || (store[key] = value !== undefined ? value : {});\r\n})('versions', []).push({\r\n version: '3.20.2',\r\n mode: IS_PURE ? 'pure' : 'global',\r\n copyright: '© 2022 Denis Pushkarev (zloirock.ru)'\r\n});\r\n","var wellKnownSymbol = require('../internals/well-known-symbol');\r\n\r\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\r\nvar test = {};\r\n\r\ntest[TO_STRING_TAG] = 'z';\r\n\r\nmodule.exports = String(test) === '[object z]';\r\n","// Generated by CoffeeScript 1.12.2\r\n(function() {\r\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\r\n\r\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\r\n module.exports = function() {\r\n return performance.now();\r\n };\r\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\r\n module.exports = function() {\r\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\r\n };\r\n hrtime = process.hrtime;\r\n getNanoSeconds = function() {\r\n var hr;\r\n hr = hrtime();\r\n return hr[0] * 1e9 + hr[1];\r\n };\r\n moduleLoadTime = getNanoSeconds();\r\n upTime = process.uptime() * 1e9;\r\n nodeLoadTime = moduleLoadTime - upTime;\r\n } else if (Date.now) {\r\n module.exports = function() {\r\n return Date.now() - loadTime;\r\n };\r\n loadTime = Date.now();\r\n } else {\r\n module.exports = function() {\r\n return new Date().getTime() - loadTime;\r\n };\r\n loadTime = new Date().getTime();\r\n }\r\n\r\n}).call(this);\r\n\r\n//# sourceMappingURL=performance-now.js.map\r\n","var global = require('../internals/global');\r\nvar getBuiltIn = require('../internals/get-built-in');\r\nvar isCallable = require('../internals/is-callable');\r\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\r\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\r\n\r\nvar Object = global.Object;\r\n\r\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\r\n return typeof it == 'symbol';\r\n} : function (it) {\r\n var $Symbol = getBuiltIn('Symbol');\r\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));\r\n};\r\n","var getBuiltIn = require('../internals/get-built-in');\r\n\r\nmodule.exports = getBuiltIn('document', 'documentElement');\r\n","var uncurryThis = require('../internals/function-uncurry-this');\r\n\r\nvar toString = uncurryThis({}.toString);\r\nvar stringSlice = uncurryThis(''.slice);\r\n\r\nmodule.exports = function (it) {\r\n return stringSlice(toString(it), 8, -1);\r\n};\r\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\r\n\r\nvar min = Math.min;\r\n\r\n// `ToLength` abstract operation\r\n// https://tc39.es/ecma262/#sec-tolength\r\nmodule.exports = function (argument) {\r\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\r\n};\r\n","var fails = require('../internals/fails');\r\nvar global = require('../internals/global');\r\n\r\n// babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError\r\nvar $RegExp = global.RegExp;\r\n\r\nmodule.exports = fails(function () {\r\n var re = $RegExp('(?b)', 'g');\r\n return re.exec('b').groups.a !== 'b' ||\r\n 'b'.replace(re, '$c') !== 'bc';\r\n});\r\n","var getBuiltIn = require('../internals/get-built-in');\r\n\r\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\r\n","module.exports = function (exec) {\r\n try {\r\n return !!exec();\r\n } catch (error) {\r\n return true;\r\n }\r\n};\r\n","var DESCRIPTORS = require('../internals/descriptors');\r\nvar call = require('../internals/function-call');\r\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\r\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\r\nvar toIndexedObject = require('../internals/to-indexed-object');\r\nvar toPropertyKey = require('../internals/to-property-key');\r\nvar hasOwn = require('../internals/has-own-property');\r\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\r\n\r\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\r\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\r\n\r\n// `Object.getOwnPropertyDescriptor` method\r\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\r\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\r\n O = toIndexedObject(O);\r\n P = toPropertyKey(P);\r\n if (IE8_DOM_DEFINE) try {\r\n return $getOwnPropertyDescriptor(O, P);\r\n } catch (error) { /* empty */ }\r\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\r\n};\r\n","var global = require('../internals/global');\r\nvar bind = require('../internals/function-bind-context');\r\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\r\nvar macrotask = require('../internals/task').set;\r\nvar IS_IOS = require('../internals/engine-is-ios');\r\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\r\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\r\nvar IS_NODE = require('../internals/engine-is-node');\r\n\r\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\r\nvar document = global.document;\r\nvar process = global.process;\r\nvar Promise = global.Promise;\r\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\r\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\r\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\r\n\r\nvar flush, head, last, notify, toggle, node, promise, then;\r\n\r\n// modern engines have queueMicrotask method\r\nif (!queueMicrotask) {\r\n flush = function () {\r\n var parent, fn;\r\n if (IS_NODE && (parent = process.domain)) parent.exit();\r\n while (head) {\r\n fn = head.fn;\r\n head = head.next;\r\n try {\r\n fn();\r\n } catch (error) {\r\n if (head) notify();\r\n else last = undefined;\r\n throw error;\r\n }\r\n } last = undefined;\r\n if (parent) parent.enter();\r\n };\r\n\r\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\r\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\r\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\r\n toggle = true;\r\n node = document.createTextNode('');\r\n new MutationObserver(flush).observe(node, { characterData: true });\r\n notify = function () {\r\n node.data = toggle = !toggle;\r\n };\r\n // environments with maybe non-completely correct, but existent Promise\r\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\r\n // Promise.resolve without an argument throws an error in LG WebOS 2\r\n promise = Promise.resolve(undefined);\r\n // workaround of WebKit ~ iOS Safari 10.1 bug\r\n promise.constructor = Promise;\r\n then = bind(promise.then, promise);\r\n notify = function () {\r\n then(flush);\r\n };\r\n // Node.js without promises\r\n } else if (IS_NODE) {\r\n notify = function () {\r\n process.nextTick(flush);\r\n };\r\n // for other environments - macrotask based on:\r\n // - setImmediate\r\n // - MessageChannel\r\n // - window.postMessag\r\n // - onreadystatechange\r\n // - setTimeout\r\n } else {\r\n // strange IE + webpack dev server bug - use .bind(global)\r\n macrotask = bind(macrotask, global);\r\n notify = function () {\r\n macrotask(flush);\r\n };\r\n }\r\n}\r\n\r\nmodule.exports = queueMicrotask || function (fn) {\r\n var task = { fn: fn, next: undefined };\r\n if (last) last.next = task;\r\n if (!head) {\r\n head = task;\r\n notify();\r\n } last = task;\r\n};\r\n","var global = require('../internals/global');\r\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\r\nvar isCallable = require('../internals/is-callable');\r\nvar classofRaw = require('../internals/classof-raw');\r\nvar wellKnownSymbol = require('../internals/well-known-symbol');\r\n\r\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\r\nvar Object = global.Object;\r\n\r\n// ES3 wrong here\r\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\r\n\r\n// fallback for IE11 Script Access Denied error\r\nvar tryGet = function (it, key) {\r\n try {\r\n return it[key];\r\n } catch (error) { /* empty */ }\r\n};\r\n\r\n// getting tag from ES6+ `Object.prototype.toString`\r\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\r\n var O, tag, result;\r\n return it === undefined ? 'Undefined' : it === null ? 'Null'\r\n // @@toStringTag case\r\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\r\n // builtinTag case\r\n : CORRECT_ARGUMENTS ? classofRaw(O)\r\n // ES3 arguments fallback\r\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\r\n};\r\n","'use strict';\r\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\r\nvar $ = require('../internals/export');\r\nvar uncurryThis = require('../internals/function-uncurry-this');\r\nvar $IndexOf = require('../internals/array-includes').indexOf;\r\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\r\n\r\nvar un$IndexOf = uncurryThis([].indexOf);\r\n\r\nvar NEGATIVE_ZERO = !!un$IndexOf && 1 / un$IndexOf([1], 1, -0) < 0;\r\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\r\n\r\n// `Array.prototype.indexOf` method\r\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\r\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {\r\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\r\n var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\r\n return NEGATIVE_ZERO\r\n // convert -0 to +0\r\n ? un$IndexOf(this, searchElement, fromIndex) || 0\r\n : $IndexOf(this, searchElement, fromIndex);\r\n }\r\n});\r\n","var global = require('../internals/global');\r\nvar call = require('../internals/function-call');\r\nvar aCallable = require('../internals/a-callable');\r\nvar anObject = require('../internals/an-object');\r\nvar tryToString = require('../internals/try-to-string');\r\nvar getIteratorMethod = require('../internals/get-iterator-method');\r\n\r\nvar TypeError = global.TypeError;\r\n\r\nmodule.exports = function (argument, usingIterator) {\r\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\r\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\r\n throw TypeError(tryToString(argument) + ' is not iterable');\r\n};\r\n","var call = require('../internals/function-call');\r\nvar anObject = require('../internals/an-object');\r\nvar getMethod = require('../internals/get-method');\r\n\r\nmodule.exports = function (iterator, kind, value) {\r\n var innerResult, innerError;\r\n anObject(iterator);\r\n try {\r\n innerResult = getMethod(iterator, 'return');\r\n if (!innerResult) {\r\n if (kind === 'throw') throw value;\r\n return value;\r\n }\r\n innerResult = call(innerResult, iterator);\r\n } catch (error) {\r\n innerError = true;\r\n innerResult = error;\r\n }\r\n if (kind === 'throw') throw value;\r\n if (innerError) throw innerResult;\r\n anObject(innerResult);\r\n return value;\r\n};\r\n","'use strict';\r\nvar $ = require('../internals/export');\r\nvar uncurryThis = require('../internals/function-uncurry-this');\r\nvar isArray = require('../internals/is-array');\r\n\r\nvar un$Reverse = uncurryThis([].reverse);\r\nvar test = [1, 2];\r\n\r\n// `Array.prototype.reverse` method\r\n// https://tc39.es/ecma262/#sec-array.prototype.reverse\r\n// fix for Safari 12.0 bug\r\n// https://bugs.webkit.org/show_bug.cgi?id=188794\r\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\r\n reverse: function reverse() {\r\n // eslint-disable-next-line no-self-assign -- dirty hack\r\n if (isArray(this)) this.length = this.length;\r\n return un$Reverse(this);\r\n }\r\n});\r\n","'use strict';\r\nvar $ = require('../internals/export');\r\nvar call = require('../internals/function-call');\r\nvar IS_PURE = require('../internals/is-pure');\r\nvar FunctionName = require('../internals/function-name');\r\nvar isCallable = require('../internals/is-callable');\r\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\r\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\r\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\r\nvar setToStringTag = require('../internals/set-to-string-tag');\r\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\r\nvar redefine = require('../internals/redefine');\r\nvar wellKnownSymbol = require('../internals/well-known-symbol');\r\nvar Iterators = require('../internals/iterators');\r\nvar IteratorsCore = require('../internals/iterators-core');\r\n\r\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\r\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\r\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\r\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\r\nvar ITERATOR = wellKnownSymbol('iterator');\r\nvar KEYS = 'keys';\r\nvar VALUES = 'values';\r\nvar ENTRIES = 'entries';\r\n\r\nvar returnThis = function () { return this; };\r\n\r\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\r\n createIteratorConstructor(IteratorConstructor, NAME, next);\r\n\r\n var getIterationMethod = function (KIND) {\r\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\r\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\r\n switch (KIND) {\r\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\r\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\r\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\r\n } return function () { return new IteratorConstructor(this); };\r\n };\r\n\r\n var TO_STRING_TAG = NAME + ' Iterator';\r\n var INCORRECT_VALUES_NAME = false;\r\n var IterablePrototype = Iterable.prototype;\r\n var nativeIterator = IterablePrototype[ITERATOR]\r\n || IterablePrototype['@@iterator']\r\n || DEFAULT && IterablePrototype[DEFAULT];\r\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\r\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\r\n var CurrentIteratorPrototype, methods, KEY;\r\n\r\n // fix native\r\n if (anyNativeIterator) {\r\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\r\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\r\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\r\n if (setPrototypeOf) {\r\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\r\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\r\n redefine(CurrentIteratorPrototype, ITERATOR, returnThis);\r\n }\r\n }\r\n // Set @@toStringTag to native iterators\r\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\r\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\r\n }\r\n }\r\n\r\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\r\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\r\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\r\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\r\n } else {\r\n INCORRECT_VALUES_NAME = true;\r\n defaultIterator = function values() { return call(nativeIterator, this); };\r\n }\r\n }\r\n\r\n // export additional methods\r\n if (DEFAULT) {\r\n methods = {\r\n values: getIterationMethod(VALUES),\r\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\r\n entries: getIterationMethod(ENTRIES)\r\n };\r\n if (FORCED) for (KEY in methods) {\r\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\r\n redefine(IterablePrototype, KEY, methods[KEY]);\r\n }\r\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\r\n }\r\n\r\n // define iterator\r\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\r\n redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\r\n }\r\n Iterators[NAME] = defaultIterator;\r\n\r\n return methods;\r\n};\r\n","module.exports = false;\r\n","var global = require('../internals/global');\r\n\r\nmodule.exports = function (a, b) {\r\n var console = global.console;\r\n if (console && console.error) {\r\n arguments.length == 1 ? console.error(a) : console.error(a, b);\r\n }\r\n};\r\n","function _defineProperty(obj, key, value) {\r\n if (key in obj) {\r\n Object.defineProperty(obj, key, {\r\n value: value,\r\n enumerable: true,\r\n configurable: true,\r\n writable: true\r\n });\r\n } else {\r\n obj[key] = value;\r\n }\r\n\r\n return obj;\r\n}\r\n\r\nmodule.exports = _defineProperty;","var classof = require('../internals/classof');\r\nvar getMethod = require('../internals/get-method');\r\nvar Iterators = require('../internals/iterators');\r\nvar wellKnownSymbol = require('../internals/well-known-symbol');\r\n\r\nvar ITERATOR = wellKnownSymbol('iterator');\r\n\r\nmodule.exports = function (it) {\r\n if (it != undefined) return getMethod(it, ITERATOR)\r\n || getMethod(it, '@@iterator')\r\n || Iterators[classof(it)];\r\n};\r\n","var fails = require('../internals/fails');\r\nvar isCallable = require('../internals/is-callable');\r\n\r\nvar replacement = /#|\\.prototype\\./;\r\n\r\nvar isForced = function (feature, detection) {\r\n var value = data[normalize(feature)];\r\n return value == POLYFILL ? true\r\n : value == NATIVE ? false\r\n : isCallable(detection) ? fails(detection)\r\n : !!detection;\r\n};\r\n\r\nvar normalize = isForced.normalize = function (string) {\r\n return String(string).replace(replacement, '.').toLowerCase();\r\n};\r\n\r\nvar data = isForced.data = {};\r\nvar NATIVE = isForced.NATIVE = 'N';\r\nvar POLYFILL = isForced.POLYFILL = 'P';\r\n\r\nmodule.exports = isForced;\r\n","var uncurryThis = require('../internals/function-uncurry-this');\r\nvar aCallable = require('../internals/a-callable');\r\n\r\nvar bind = uncurryThis(uncurryThis.bind);\r\n\r\n// optional / simple context binding\r\nmodule.exports = function (fn, that) {\r\n aCallable(fn);\r\n return that === undefined ? fn : bind ? bind(fn, that) : function (/* ...args */) {\r\n return fn.apply(that, arguments);\r\n };\r\n};\r\n","'use strict';\r\nvar $ = require('../internals/export');\r\nvar $reduce = require('../internals/array-reduce').left;\r\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\r\nvar CHROME_VERSION = require('../internals/engine-v8-version');\r\nvar IS_NODE = require('../internals/engine-is-node');\r\n\r\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\r\n// Chrome 80-82 has a critical bug\r\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\r\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\r\n\r\n// `Array.prototype.reduce` method\r\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\r\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {\r\n reduce: function reduce(callbackfn /* , initialValue */) {\r\n var length = arguments.length;\r\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\r\n }\r\n});\r\n","var global = require('../internals/global');\r\nvar isObject = require('../internals/is-object');\r\n\r\nvar document = global.document;\r\n// typeof document.createElement is 'object' in old IE\r\nvar EXISTS = isObject(document) && isObject(document.createElement);\r\n\r\nmodule.exports = function (it) {\r\n return EXISTS ? document.createElement(it) : {};\r\n};\r\n","var global = require('../internals/global');\r\nvar call = require('../internals/function-call');\r\nvar isObject = require('../internals/is-object');\r\nvar isSymbol = require('../internals/is-symbol');\r\nvar getMethod = require('../internals/get-method');\r\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\r\nvar wellKnownSymbol = require('../internals/well-known-symbol');\r\n\r\nvar TypeError = global.TypeError;\r\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\r\n\r\n// `ToPrimitive` abstract operation\r\n// https://tc39.es/ecma262/#sec-toprimitive\r\nmodule.exports = function (input, pref) {\r\n if (!isObject(input) || isSymbol(input)) return input;\r\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\r\n var result;\r\n if (exoticToPrim) {\r\n if (pref === undefined) pref = 'default';\r\n result = call(exoticToPrim, input, pref);\r\n if (!isObject(result) || isSymbol(result)) return result;\r\n throw TypeError(\"Can't convert object to primitive value\");\r\n }\r\n if (pref === undefined) pref = 'number';\r\n return ordinaryToPrimitive(input, pref);\r\n};\r\n","var call = Function.prototype.call;\r\n\r\nmodule.exports = call.bind ? call.bind(call) : function () {\r\n return call.apply(call, arguments);\r\n};\r\n","var global = require('../internals/global');\r\n\r\n// eslint-disable-next-line es/no-object-defineproperty -- safe\r\nvar defineProperty = Object.defineProperty;\r\n\r\nmodule.exports = function (key, value) {\r\n try {\r\n defineProperty(global, key, { value: value, configurable: true, writable: true });\r\n } catch (error) {\r\n global[key] = value;\r\n } return value;\r\n};\r\n","var global = require('../internals/global');\r\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\r\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\r\nvar redefine = require('../internals/redefine');\r\nvar setGlobal = require('../internals/set-global');\r\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\r\nvar isForced = require('../internals/is-forced');\r\n\r\n/*\r\n options.target - name of the target object\r\n options.global - target is the global object\r\n options.stat - export as static methods of target\r\n options.proto - export as prototype methods of target\r\n options.real - real prototype method for the `pure` version\r\n options.forced - export even if the native feature is available\r\n options.bind - bind methods to the target, required for the `pure` version\r\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\r\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\r\n options.sham - add a flag to not completely full polyfills\r\n options.enumerable - export as enumerable property\r\n options.noTargetGet - prevent calling a getter on target\r\n options.name - the .name of the function if it does not match the key\r\n*/\r\nmodule.exports = function (options, source) {\r\n var TARGET = options.target;\r\n var GLOBAL = options.global;\r\n var STATIC = options.stat;\r\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\r\n if (GLOBAL) {\r\n target = global;\r\n } else if (STATIC) {\r\n target = global[TARGET] || setGlobal(TARGET, {});\r\n } else {\r\n target = (global[TARGET] || {}).prototype;\r\n }\r\n if (target) for (key in source) {\r\n sourceProperty = source[key];\r\n if (options.noTargetGet) {\r\n descriptor = getOwnPropertyDescriptor(target, key);\r\n targetProperty = descriptor && descriptor.value;\r\n } else targetProperty = target[key];\r\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\r\n // contained in target\r\n if (!FORCED && targetProperty !== undefined) {\r\n if (typeof sourceProperty == typeof targetProperty) continue;\r\n copyConstructorProperties(sourceProperty, targetProperty);\r\n }\r\n // add a flag to not completely full polyfills\r\n if (options.sham || (targetProperty && targetProperty.sham)) {\r\n createNonEnumerableProperty(sourceProperty, 'sham', true);\r\n }\r\n // extend global\r\n redefine(target, key, sourceProperty, options);\r\n }\r\n};\r\n","// a string of all valid unicode whitespaces\r\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\r\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\r\n","var global = require('../internals/global');\r\nvar bind = require('../internals/function-bind-context');\r\nvar call = require('../internals/function-call');\r\nvar anObject = require('../internals/an-object');\r\nvar tryToString = require('../internals/try-to-string');\r\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\r\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\r\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\r\nvar getIterator = require('../internals/get-iterator');\r\nvar getIteratorMethod = require('../internals/get-iterator-method');\r\nvar iteratorClose = require('../internals/iterator-close');\r\n\r\nvar TypeError = global.TypeError;\r\n\r\nvar Result = function (stopped, result) {\r\n this.stopped = stopped;\r\n this.result = result;\r\n};\r\n\r\nvar ResultPrototype = Result.prototype;\r\n\r\nmodule.exports = function (iterable, unboundFunction, options) {\r\n var that = options && options.that;\r\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\r\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\r\n var INTERRUPTED = !!(options && options.INTERRUPTED);\r\n var fn = bind(unboundFunction, that);\r\n var iterator, iterFn, index, length, result, next, step;\r\n\r\n var stop = function (condition) {\r\n if (iterator) iteratorClose(iterator, 'normal', condition);\r\n return new Result(true, condition);\r\n };\r\n\r\n var callFn = function (value) {\r\n if (AS_ENTRIES) {\r\n anObject(value);\r\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\r\n } return INTERRUPTED ? fn(value, stop) : fn(value);\r\n };\r\n\r\n if (IS_ITERATOR) {\r\n iterator = iterable;\r\n } else {\r\n iterFn = getIteratorMethod(iterable);\r\n if (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable');\r\n // optimisation for array iterators\r\n if (isArrayIteratorMethod(iterFn)) {\r\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\r\n result = callFn(iterable[index]);\r\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\r\n } return new Result(false);\r\n }\r\n iterator = getIterator(iterable, iterFn);\r\n }\r\n\r\n next = iterator.next;\r\n while (!(step = call(next, iterator)).done) {\r\n try {\r\n result = callFn(step.value);\r\n } catch (error) {\r\n iteratorClose(iterator, 'throw', error);\r\n }\r\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\r\n } return new Result(false);\r\n};\r\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\r\n\r\nvar max = Math.max;\r\nvar min = Math.min;\r\n\r\n// Helper for a popular repeating case of the spec:\r\n// Let integer be ? ToInteger(index).\r\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\r\nmodule.exports = function (index, length) {\r\n var integer = toIntegerOrInfinity(index);\r\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\r\n};\r\n","var aCallable = require('../internals/a-callable');\r\n\r\n// `GetMethod` abstract operation\r\n// https://tc39.es/ecma262/#sec-getmethod\r\nmodule.exports = function (V, P) {\r\n var func = V[P];\r\n return func == null ? undefined : aCallable(func);\r\n};\r\n","var DESCRIPTORS = require('../internals/descriptors');\r\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\r\nvar definePropertyModule = require('../internals/object-define-property');\r\nvar anObject = require('../internals/an-object');\r\nvar toIndexedObject = require('../internals/to-indexed-object');\r\nvar objectKeys = require('../internals/object-keys');\r\n\r\n// `Object.defineProperties` method\r\n// https://tc39.es/ecma262/#sec-object.defineproperties\r\n// eslint-disable-next-line es/no-object-defineproperties -- safe\r\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\r\n anObject(O);\r\n var props = toIndexedObject(Properties);\r\n var keys = objectKeys(Properties);\r\n var length = keys.length;\r\n var index = 0;\r\n var key;\r\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\r\n return O;\r\n};\r\n","'use strict';\r\nvar toPropertyKey = require('../internals/to-property-key');\r\nvar definePropertyModule = require('../internals/object-define-property');\r\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\r\n\r\nmodule.exports = function (object, key, value) {\r\n var propertyKey = toPropertyKey(key);\r\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\r\n else object[propertyKey] = value;\r\n};\r\n","var DESCRIPTORS = require('../internals/descriptors');\r\nvar fails = require('../internals/fails');\r\nvar createElement = require('../internals/document-create-element');\r\n\r\n// Thank's IE8 for his funny defineProperty\r\nmodule.exports = !DESCRIPTORS && !fails(function () {\r\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\r\n return Object.defineProperty(createElement('div'), 'a', {\r\n get: function () { return 7; }\r\n }).a != 7;\r\n});\r\n","/* eslint-disable es/no-symbol -- required for testing */\r\nvar V8_VERSION = require('../internals/engine-v8-version');\r\nvar fails = require('../internals/fails');\r\n\r\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\r\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\r\n var symbol = Symbol();\r\n // Chrome 38 Symbol has incorrect toString conversion\r\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\r\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\r\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\r\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\r\n});\r\n","var global = require('../internals/global');\r\nvar uncurryThis = require('../internals/function-uncurry-this');\r\nvar fails = require('../internals/fails');\r\nvar classof = require('../internals/classof-raw');\r\n\r\nvar Object = global.Object;\r\nvar split = uncurryThis(''.split);\r\n\r\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\r\nmodule.exports = fails(function () {\r\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\r\n // eslint-disable-next-line no-prototype-builtins -- safe\r\n return !Object('z').propertyIsEnumerable(0);\r\n}) ? function (it) {\r\n return classof(it) == 'String' ? split(it, '') : Object(it);\r\n} : Object;\r\n","var global = require('../internals/global');\r\nvar DOMIterables = require('../internals/dom-iterables');\r\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\r\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\r\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\r\nvar wellKnownSymbol = require('../internals/well-known-symbol');\r\n\r\nvar ITERATOR = wellKnownSymbol('iterator');\r\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\r\nvar ArrayValues = ArrayIteratorMethods.values;\r\n\r\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\r\n if (CollectionPrototype) {\r\n // some Chrome versions have non-configurable methods on DOMTokenList\r\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\r\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\r\n } catch (error) {\r\n CollectionPrototype[ITERATOR] = ArrayValues;\r\n }\r\n if (!CollectionPrototype[TO_STRING_TAG]) {\r\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\r\n }\r\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\r\n // some Chrome versions have non-configurable methods on DOMTokenList\r\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\r\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\r\n } catch (error) {\r\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\r\n }\r\n }\r\n }\r\n};\r\n\r\nfor (var COLLECTION_NAME in DOMIterables) {\r\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\r\n}\r\n\r\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\r\n","'use strict';\r\nvar fails = require('../internals/fails');\r\nvar isCallable = require('../internals/is-callable');\r\nvar create = require('../internals/object-create');\r\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\r\nvar redefine = require('../internals/redefine');\r\nvar wellKnownSymbol = require('../internals/well-known-symbol');\r\nvar IS_PURE = require('../internals/is-pure');\r\n\r\nvar ITERATOR = wellKnownSymbol('iterator');\r\nvar BUGGY_SAFARI_ITERATORS = false;\r\n\r\n// `%IteratorPrototype%` object\r\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\r\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\r\n\r\n/* eslint-disable es/no-array-prototype-keys -- safe */\r\nif ([].keys) {\r\n arrayIterator = [].keys();\r\n // Safari 8 has buggy iterators w/o `next`\r\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\r\n else {\r\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\r\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\r\n }\r\n}\r\n\r\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\r\n var test = {};\r\n // FF44- legacy iterators case\r\n return IteratorPrototype[ITERATOR].call(test) !== test;\r\n});\r\n\r\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\r\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\r\n\r\n// `%IteratorPrototype%[@@iterator]()` method\r\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\r\nif (!isCallable(IteratorPrototype[ITERATOR])) {\r\n redefine(IteratorPrototype, ITERATOR, function () {\r\n return this;\r\n });\r\n}\r\n\r\nmodule.exports = {\r\n IteratorPrototype: IteratorPrototype,\r\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\r\n};\r\n","var global = require('../internals/global');\r\nvar classof = require('../internals/classof');\r\n\r\nvar String = global.String;\r\n\r\nmodule.exports = function (argument) {\r\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\r\n return String(argument);\r\n};\r\n","var uncurryThis = require('../internals/function-uncurry-this');\r\nvar isCallable = require('../internals/is-callable');\r\nvar store = require('../internals/shared-store');\r\n\r\nvar functionToString = uncurryThis(Function.toString);\r\n\r\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\r\nif (!isCallable(store.inspectSource)) {\r\n store.inspectSource = function (it) {\r\n return functionToString(it);\r\n };\r\n}\r\n\r\nmodule.exports = store.inspectSource;\r\n","var toLength = require('../internals/to-length');\r\n\r\n// `LengthOfArrayLike` abstract operation\r\n// https://tc39.es/ecma262/#sec-lengthofarraylike\r\nmodule.exports = function (obj) {\r\n return toLength(obj.length);\r\n};\r\n","var classof = require('../internals/classof-raw');\r\n\r\n// `IsArray` abstract operation\r\n// https://tc39.es/ecma262/#sec-isarray\r\n// eslint-disable-next-line es/no-array-isarray -- safe\r\nmodule.exports = Array.isArray || function isArray(argument) {\r\n return classof(argument) == 'Array';\r\n};\r\n","var defineProperty = require('../internals/object-define-property').f;\r\nvar hasOwn = require('../internals/has-own-property');\r\nvar wellKnownSymbol = require('../internals/well-known-symbol');\r\n\r\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\r\n\r\nmodule.exports = function (target, TAG, STATIC) {\r\n if (target && !STATIC) target = target.prototype;\r\n if (target && !hasOwn(target, TO_STRING_TAG)) {\r\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\r\n }\r\n};\r\n","var global = require('../internals/global');\r\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\r\n\r\nvar TypeError = global.TypeError;\r\n\r\nmodule.exports = function (it, Prototype) {\r\n if (isPrototypeOf(Prototype, it)) return it;\r\n throw TypeError('Incorrect invocation');\r\n};\r\n","module.exports = typeof window == 'object';\r\n","// toObject with fallback for non-array-like ES3 strings\r\nvar IndexedObject = require('../internals/indexed-object');\r\nvar requireObjectCoercible = require('../internals/require-object-coercible');\r\n\r\nmodule.exports = function (it) {\r\n return IndexedObject(requireObjectCoercible(it));\r\n};\r\n","'use strict';\r\nvar $ = require('../internals/export');\r\nvar IS_PURE = require('../internals/is-pure');\r\nvar global = require('../internals/global');\r\nvar getBuiltIn = require('../internals/get-built-in');\r\nvar call = require('../internals/function-call');\r\nvar NativePromise = require('../internals/native-promise-constructor');\r\nvar redefine = require('../internals/redefine');\r\nvar redefineAll = require('../internals/redefine-all');\r\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\r\nvar setToStringTag = require('../internals/set-to-string-tag');\r\nvar setSpecies = require('../internals/set-species');\r\nvar aCallable = require('../internals/a-callable');\r\nvar isCallable = require('../internals/is-callable');\r\nvar isObject = require('../internals/is-object');\r\nvar anInstance = require('../internals/an-instance');\r\nvar inspectSource = require('../internals/inspect-source');\r\nvar iterate = require('../internals/iterate');\r\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\r\nvar speciesConstructor = require('../internals/species-constructor');\r\nvar task = require('../internals/task').set;\r\nvar microtask = require('../internals/microtask');\r\nvar promiseResolve = require('../internals/promise-resolve');\r\nvar hostReportErrors = require('../internals/host-report-errors');\r\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\r\nvar perform = require('../internals/perform');\r\nvar Queue = require('../internals/queue');\r\nvar InternalStateModule = require('../internals/internal-state');\r\nvar isForced = require('../internals/is-forced');\r\nvar wellKnownSymbol = require('../internals/well-known-symbol');\r\nvar IS_BROWSER = require('../internals/engine-is-browser');\r\nvar IS_NODE = require('../internals/engine-is-node');\r\nvar V8_VERSION = require('../internals/engine-v8-version');\r\n\r\nvar SPECIES = wellKnownSymbol('species');\r\nvar PROMISE = 'Promise';\r\n\r\nvar getInternalState = InternalStateModule.getterFor(PROMISE);\r\nvar setInternalState = InternalStateModule.set;\r\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\r\nvar NativePromisePrototype = NativePromise && NativePromise.prototype;\r\nvar PromiseConstructor = NativePromise;\r\nvar PromisePrototype = NativePromisePrototype;\r\nvar TypeError = global.TypeError;\r\nvar document = global.document;\r\nvar process = global.process;\r\nvar newPromiseCapability = newPromiseCapabilityModule.f;\r\nvar newGenericPromiseCapability = newPromiseCapability;\r\n\r\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\r\nvar NATIVE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\r\nvar UNHANDLED_REJECTION = 'unhandledrejection';\r\nvar REJECTION_HANDLED = 'rejectionhandled';\r\nvar PENDING = 0;\r\nvar FULFILLED = 1;\r\nvar REJECTED = 2;\r\nvar HANDLED = 1;\r\nvar UNHANDLED = 2;\r\nvar SUBCLASSING = false;\r\n\r\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\r\n\r\nvar FORCED = isForced(PROMISE, function () {\r\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(PromiseConstructor);\r\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(PromiseConstructor);\r\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\r\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\r\n // We can't detect it synchronously, so just check versions\r\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\r\n // We need Promise#finally in the pure version for preventing prototype pollution\r\n if (IS_PURE && !PromisePrototype['finally']) return true;\r\n // We can't use @@species feature detection in V8 since it causes\r\n // deoptimization and performance degradation\r\n // https://github.com/zloirock/core-js/issues/679\r\n if (V8_VERSION >= 51 && /native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) return false;\r\n // Detect correctness of subclassing with @@species support\r\n var promise = new PromiseConstructor(function (resolve) { resolve(1); });\r\n var FakePromise = function (exec) {\r\n exec(function () { /* empty */ }, function () { /* empty */ });\r\n };\r\n var constructor = promise.constructor = {};\r\n constructor[SPECIES] = FakePromise;\r\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\r\n if (!SUBCLASSING) return true;\r\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\r\n return !GLOBAL_CORE_JS_PROMISE && IS_BROWSER && !NATIVE_REJECTION_EVENT;\r\n});\r\n\r\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\r\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\r\n});\r\n\r\n// helpers\r\nvar isThenable = function (it) {\r\n var then;\r\n return isObject(it) && isCallable(then = it.then) ? then : false;\r\n};\r\n\r\nvar callReaction = function (reaction, state) {\r\n var value = state.value;\r\n var ok = state.state == FULFILLED;\r\n var handler = ok ? reaction.ok : reaction.fail;\r\n var resolve = reaction.resolve;\r\n var reject = reaction.reject;\r\n var domain = reaction.domain;\r\n var result, then, exited;\r\n try {\r\n if (handler) {\r\n if (!ok) {\r\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\r\n state.rejection = HANDLED;\r\n }\r\n if (handler === true) result = value;\r\n else {\r\n if (domain) domain.enter();\r\n result = handler(value); // can throw\r\n if (domain) {\r\n domain.exit();\r\n exited = true;\r\n }\r\n }\r\n if (result === reaction.promise) {\r\n reject(TypeError('Promise-chain cycle'));\r\n } else if (then = isThenable(result)) {\r\n call(then, result, resolve, reject);\r\n } else resolve(result);\r\n } else reject(value);\r\n } catch (error) {\r\n if (domain && !exited) domain.exit();\r\n reject(error);\r\n }\r\n};\r\n\r\nvar notify = function (state, isReject) {\r\n if (state.notified) return;\r\n state.notified = true;\r\n microtask(function () {\r\n var reactions = state.reactions;\r\n var reaction;\r\n while (reaction = reactions.get()) {\r\n callReaction(reaction, state);\r\n }\r\n state.notified = false;\r\n if (isReject && !state.rejection) onUnhandled(state);\r\n });\r\n};\r\n\r\nvar dispatchEvent = function (name, promise, reason) {\r\n var event, handler;\r\n if (DISPATCH_EVENT) {\r\n event = document.createEvent('Event');\r\n event.promise = promise;\r\n event.reason = reason;\r\n event.initEvent(name, false, true);\r\n global.dispatchEvent(event);\r\n } else event = { promise: promise, reason: reason };\r\n if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\r\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\r\n};\r\n\r\nvar onUnhandled = function (state) {\r\n call(task, global, function () {\r\n var promise = state.facade;\r\n var value = state.value;\r\n var IS_UNHANDLED = isUnhandled(state);\r\n var result;\r\n if (IS_UNHANDLED) {\r\n result = perform(function () {\r\n if (IS_NODE) {\r\n process.emit('unhandledRejection', value, promise);\r\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\r\n });\r\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\r\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\r\n if (result.error) throw result.value;\r\n }\r\n });\r\n};\r\n\r\nvar isUnhandled = function (state) {\r\n return state.rejection !== HANDLED && !state.parent;\r\n};\r\n\r\nvar onHandleUnhandled = function (state) {\r\n call(task, global, function () {\r\n var promise = state.facade;\r\n if (IS_NODE) {\r\n process.emit('rejectionHandled', promise);\r\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\r\n });\r\n};\r\n\r\nvar bind = function (fn, state, unwrap) {\r\n return function (value) {\r\n fn(state, value, unwrap);\r\n };\r\n};\r\n\r\nvar internalReject = function (state, value, unwrap) {\r\n if (state.done) return;\r\n state.done = true;\r\n if (unwrap) state = unwrap;\r\n state.value = value;\r\n state.state = REJECTED;\r\n notify(state, true);\r\n};\r\n\r\nvar internalResolve = function (state, value, unwrap) {\r\n if (state.done) return;\r\n state.done = true;\r\n if (unwrap) state = unwrap;\r\n try {\r\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\r\n var then = isThenable(value);\r\n if (then) {\r\n microtask(function () {\r\n var wrapper = { done: false };\r\n try {\r\n call(then, value,\r\n bind(internalResolve, wrapper, state),\r\n bind(internalReject, wrapper, state)\r\n );\r\n } catch (error) {\r\n internalReject(wrapper, error, state);\r\n }\r\n });\r\n } else {\r\n state.value = value;\r\n state.state = FULFILLED;\r\n notify(state, false);\r\n }\r\n } catch (error) {\r\n internalReject({ done: false }, error, state);\r\n }\r\n};\r\n\r\n// constructor polyfill\r\nif (FORCED) {\r\n // 25.4.3.1 Promise(executor)\r\n PromiseConstructor = function Promise(executor) {\r\n anInstance(this, PromisePrototype);\r\n aCallable(executor);\r\n call(Internal, this);\r\n var state = getInternalState(this);\r\n try {\r\n executor(bind(internalResolve, state), bind(internalReject, state));\r\n } catch (error) {\r\n internalReject(state, error);\r\n }\r\n };\r\n PromisePrototype = PromiseConstructor.prototype;\r\n // eslint-disable-next-line no-unused-vars -- required for `.length`\r\n Internal = function Promise(executor) {\r\n setInternalState(this, {\r\n type: PROMISE,\r\n done: false,\r\n notified: false,\r\n parent: false,\r\n reactions: new Queue(),\r\n rejection: false,\r\n state: PENDING,\r\n value: undefined\r\n });\r\n };\r\n Internal.prototype = redefineAll(PromisePrototype, {\r\n // `Promise.prototype.then` method\r\n // https://tc39.es/ecma262/#sec-promise.prototype.then\r\n // eslint-disable-next-line unicorn/no-thenable -- safe\r\n then: function then(onFulfilled, onRejected) {\r\n var state = getInternalPromiseState(this);\r\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\r\n state.parent = true;\r\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\r\n reaction.fail = isCallable(onRejected) && onRejected;\r\n reaction.domain = IS_NODE ? process.domain : undefined;\r\n if (state.state == PENDING) state.reactions.add(reaction);\r\n else microtask(function () {\r\n callReaction(reaction, state);\r\n });\r\n return reaction.promise;\r\n },\r\n // `Promise.prototype.catch` method\r\n // https://tc39.es/ecma262/#sec-promise.prototype.catch\r\n 'catch': function (onRejected) {\r\n return this.then(undefined, onRejected);\r\n }\r\n });\r\n OwnPromiseCapability = function () {\r\n var promise = new Internal();\r\n var state = getInternalState(promise);\r\n this.promise = promise;\r\n this.resolve = bind(internalResolve, state);\r\n this.reject = bind(internalReject, state);\r\n };\r\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\r\n return C === PromiseConstructor || C === PromiseWrapper\r\n ? new OwnPromiseCapability(C)\r\n : newGenericPromiseCapability(C);\r\n };\r\n\r\n if (!IS_PURE && isCallable(NativePromise) && NativePromisePrototype !== Object.prototype) {\r\n nativeThen = NativePromisePrototype.then;\r\n\r\n if (!SUBCLASSING) {\r\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\r\n redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\r\n var that = this;\r\n return new PromiseConstructor(function (resolve, reject) {\r\n call(nativeThen, that, resolve, reject);\r\n }).then(onFulfilled, onRejected);\r\n // https://github.com/zloirock/core-js/issues/640\r\n }, { unsafe: true });\r\n\r\n // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\r\n redefine(NativePromisePrototype, 'catch', PromisePrototype['catch'], { unsafe: true });\r\n }\r\n\r\n // make `.constructor === Promise` work for native promise-based APIs\r\n try {\r\n delete NativePromisePrototype.constructor;\r\n } catch (error) { /* empty */ }\r\n\r\n // make `instanceof Promise` work for native promise-based APIs\r\n if (setPrototypeOf) {\r\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\r\n }\r\n }\r\n}\r\n\r\n$({ global: true, wrap: true, forced: FORCED }, {\r\n Promise: PromiseConstructor\r\n});\r\n\r\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\r\nsetSpecies(PROMISE);\r\n\r\nPromiseWrapper = getBuiltIn(PROMISE);\r\n\r\n// statics\r\n$({ target: PROMISE, stat: true, forced: FORCED }, {\r\n // `Promise.reject` method\r\n // https://tc39.es/ecma262/#sec-promise.reject\r\n reject: function reject(r) {\r\n var capability = newPromiseCapability(this);\r\n call(capability.reject, undefined, r);\r\n return capability.promise;\r\n }\r\n});\r\n\r\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\r\n // `Promise.resolve` method\r\n // https://tc39.es/ecma262/#sec-promise.resolve\r\n resolve: function resolve(x) {\r\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\r\n }\r\n});\r\n\r\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\r\n // `Promise.all` method\r\n // https://tc39.es/ecma262/#sec-promise.all\r\n all: function all(iterable) {\r\n var C = this;\r\n var capability = newPromiseCapability(C);\r\n var resolve = capability.resolve;\r\n var reject = capability.reject;\r\n var result = perform(function () {\r\n var $promiseResolve = aCallable(C.resolve);\r\n var values = [];\r\n var counter = 0;\r\n var remaining = 1;\r\n iterate(iterable, function (promise) {\r\n var index = counter++;\r\n var alreadyCalled = false;\r\n remaining++;\r\n call($promiseResolve, C, promise).then(function (value) {\r\n if (alreadyCalled) return;\r\n alreadyCalled = true;\r\n values[index] = value;\r\n --remaining || resolve(values);\r\n }, reject);\r\n });\r\n --remaining || resolve(values);\r\n });\r\n if (result.error) reject(result.value);\r\n return capability.promise;\r\n },\r\n // `Promise.race` method\r\n // https://tc39.es/ecma262/#sec-promise.race\r\n race: function race(iterable) {\r\n var C = this;\r\n var capability = newPromiseCapability(C);\r\n var reject = capability.reject;\r\n var result = perform(function () {\r\n var $promiseResolve = aCallable(C.resolve);\r\n iterate(iterable, function (promise) {\r\n call($promiseResolve, C, promise).then(capability.resolve, reject);\r\n });\r\n });\r\n if (result.error) reject(result.value);\r\n return capability.promise;\r\n }\r\n});\r\n","'use strict';\r\nvar $ = require('../internals/export');\r\nvar $trim = require('../internals/string-trim').trim;\r\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\r\n\r\n// `String.prototype.trim` method\r\n// https://tc39.es/ecma262/#sec-string.prototype.trim\r\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\r\n trim: function trim() {\r\n return $trim(this);\r\n }\r\n});\r\n","var now = require('performance-now')\r\n , root = typeof window === 'undefined' ? global : window\r\n , vendors = ['moz', 'webkit']\r\n , suffix = 'AnimationFrame'\r\n , raf = root['request' + suffix]\r\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\r\n\r\nfor(var i = 0; !raf && i < vendors.length; i++) {\r\n raf = root[vendors[i] + 'Request' + suffix]\r\n caf = root[vendors[i] + 'Cancel' + suffix]\r\n || root[vendors[i] + 'CancelRequest' + suffix]\r\n}\r\n\r\n// Some versions of FF have rAF but not cAF\r\nif(!raf || !caf) {\r\n var last = 0\r\n , id = 0\r\n , queue = []\r\n , frameDuration = 1000 / 60\r\n\r\n raf = function(callback) {\r\n if(queue.length === 0) {\r\n var _now = now()\r\n , next = Math.max(0, frameDuration - (_now - last))\r\n last = next + _now\r\n setTimeout(function() {\r\n var cp = queue.slice(0)\r\n // Clear queue here to prevent\r\n // callbacks from appending listeners\r\n // to the current frame's queue\r\n queue.length = 0\r\n for(var i = 0; i < cp.length; i++) {\r\n if(!cp[i].cancelled) {\r\n try{\r\n cp[i].callback(last)\r\n } catch(e) {\r\n setTimeout(function() { throw e }, 0)\r\n }\r\n }\r\n }\r\n }, Math.round(next))\r\n }\r\n queue.push({\r\n handle: ++id,\r\n callback: callback,\r\n cancelled: false\r\n })\r\n return id\r\n }\r\n\r\n caf = function(handle) {\r\n for(var i = 0; i < queue.length; i++) {\r\n if(queue[i].handle === handle) {\r\n queue[i].cancelled = true\r\n }\r\n }\r\n }\r\n}\r\n\r\nmodule.exports = function(fn) {\r\n // Wrap in a new function to prevent\r\n // `cancel` potentially being assigned\r\n // to the native rAF function\r\n return raf.call(root, fn)\r\n}\r\nmodule.exports.cancel = function() {\r\n caf.apply(root, arguments)\r\n}\r\nmodule.exports.polyfill = function(object) {\r\n if (!object) {\r\n object = root;\r\n }\r\n object.requestAnimationFrame = raf\r\n object.cancelAnimationFrame = caf\r\n}\r\n","var getBuiltIn = require('../internals/get-built-in');\r\nvar uncurryThis = require('../internals/function-uncurry-this');\r\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\r\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\r\nvar anObject = require('../internals/an-object');\r\n\r\nvar concat = uncurryThis([].concat);\r\n\r\n// all object keys, includes non-enumerable and symbols\r\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\r\n var keys = getOwnPropertyNamesModule.f(anObject(it));\r\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\r\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\r\n};\r\n","'use strict';\r\nvar apply = require('../internals/function-apply');\r\nvar call = require('../internals/function-call');\r\nvar uncurryThis = require('../internals/function-uncurry-this');\r\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\r\nvar fails = require('../internals/fails');\r\nvar anObject = require('../internals/an-object');\r\nvar isCallable = require('../internals/is-callable');\r\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\r\nvar toLength = require('../internals/to-length');\r\nvar toString = require('../internals/to-string');\r\nvar requireObjectCoercible = require('../internals/require-object-coercible');\r\nvar advanceStringIndex = require('../internals/advance-string-index');\r\nvar getMethod = require('../internals/get-method');\r\nvar getSubstitution = require('../internals/get-substitution');\r\nvar regExpExec = require('../internals/regexp-exec-abstract');\r\nvar wellKnownSymbol = require('../internals/well-known-symbol');\r\n\r\nvar REPLACE = wellKnownSymbol('replace');\r\nvar max = Math.max;\r\nvar min = Math.min;\r\nvar concat = uncurryThis([].concat);\r\nvar push = uncurryThis([].push);\r\nvar stringIndexOf = uncurryThis(''.indexOf);\r\nvar stringSlice = uncurryThis(''.slice);\r\n\r\nvar maybeToString = function (it) {\r\n return it === undefined ? it : String(it);\r\n};\r\n\r\n// IE <= 11 replaces $0 with the whole match, as if it was $&\r\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\r\nvar REPLACE_KEEPS_$0 = (function () {\r\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\r\n return 'a'.replace(/./, '$0') === '$0';\r\n})();\r\n\r\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\r\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\r\n if (/./[REPLACE]) {\r\n return /./[REPLACE]('a', '$0') === '';\r\n }\r\n return false;\r\n})();\r\n\r\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\r\n var re = /./;\r\n re.exec = function () {\r\n var result = [];\r\n result.groups = { a: '7' };\r\n return result;\r\n };\r\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\r\n return ''.replace(re, '$') !== '7';\r\n});\r\n\r\n// @@replace logic\r\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\r\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\r\n\r\n return [\r\n // `String.prototype.replace` method\r\n // https://tc39.es/ecma262/#sec-string.prototype.replace\r\n function replace(searchValue, replaceValue) {\r\n var O = requireObjectCoercible(this);\r\n var replacer = searchValue == undefined ? undefined : getMethod(searchValue, REPLACE);\r\n return replacer\r\n ? call(replacer, searchValue, O, replaceValue)\r\n : call(nativeReplace, toString(O), searchValue, replaceValue);\r\n },\r\n // `RegExp.prototype[@@replace]` method\r\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\r\n function (string, replaceValue) {\r\n var rx = anObject(this);\r\n var S = toString(string);\r\n\r\n if (\r\n typeof replaceValue == 'string' &&\r\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\r\n stringIndexOf(replaceValue, '$<') === -1\r\n ) {\r\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\r\n if (res.done) return res.value;\r\n }\r\n\r\n var functionalReplace = isCallable(replaceValue);\r\n if (!functionalReplace) replaceValue = toString(replaceValue);\r\n\r\n var global = rx.global;\r\n if (global) {\r\n var fullUnicode = rx.unicode;\r\n rx.lastIndex = 0;\r\n }\r\n var results = [];\r\n while (true) {\r\n var result = regExpExec(rx, S);\r\n if (result === null) break;\r\n\r\n push(results, result);\r\n if (!global) break;\r\n\r\n var matchStr = toString(result[0]);\r\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\r\n }\r\n\r\n var accumulatedResult = '';\r\n var nextSourcePosition = 0;\r\n for (var i = 0; i < results.length; i++) {\r\n result = results[i];\r\n\r\n var matched = toString(result[0]);\r\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\r\n var captures = [];\r\n // NOTE: This is equivalent to\r\n // captures = result.slice(1).map(maybeToString)\r\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\r\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\r\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\r\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\r\n var namedCaptures = result.groups;\r\n if (functionalReplace) {\r\n var replacerArgs = concat([matched], captures, position, S);\r\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\r\n var replacement = toString(apply(replaceValue, undefined, replacerArgs));\r\n } else {\r\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\r\n }\r\n if (position >= nextSourcePosition) {\r\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\r\n nextSourcePosition = position + matched.length;\r\n }\r\n }\r\n return accumulatedResult + stringSlice(S, nextSourcePosition);\r\n }\r\n ];\r\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\r\n","'use strict';\r\nvar uncurryThis = require('../internals/function-uncurry-this');\r\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\r\nvar redefine = require('../internals/redefine');\r\nvar anObject = require('../internals/an-object');\r\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\r\nvar $toString = require('../internals/to-string');\r\nvar fails = require('../internals/fails');\r\nvar regExpFlags = require('../internals/regexp-flags');\r\n\r\nvar TO_STRING = 'toString';\r\nvar RegExpPrototype = RegExp.prototype;\r\nvar n$ToString = RegExpPrototype[TO_STRING];\r\nvar getFlags = uncurryThis(regExpFlags);\r\n\r\nvar NOT_GENERIC = fails(function () { return n$ToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\r\n// FF44- RegExp#toString has a wrong name\r\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && n$ToString.name != TO_STRING;\r\n\r\n// `RegExp.prototype.toString` method\r\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\r\nif (NOT_GENERIC || INCORRECT_NAME) {\r\n redefine(RegExp.prototype, TO_STRING, function toString() {\r\n var R = anObject(this);\r\n var p = $toString(R.source);\r\n var rf = R.flags;\r\n var f = $toString(rf === undefined && isPrototypeOf(RegExpPrototype, R) && !('flags' in RegExpPrototype) ? getFlags(R) : rf);\r\n return '/' + p + '/' + f;\r\n }, { unsafe: true });\r\n}\r\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\r\n try {\r\n var info = gen[key](arg);\r\n var value = info.value;\r\n } catch (error) {\r\n reject(error);\r\n return;\r\n }\r\n\r\n if (info.done) {\r\n resolve(value);\r\n } else {\r\n Promise.resolve(value).then(_next, _throw);\r\n }\r\n}\r\n\r\nfunction _asyncToGenerator(fn) {\r\n return function () {\r\n var self = this,\r\n args = arguments;\r\n return new Promise(function (resolve, reject) {\r\n var gen = fn.apply(self, args);\r\n\r\n function _next(value) {\r\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\r\n }\r\n\r\n function _throw(err) {\r\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\r\n }\r\n\r\n _next(undefined);\r\n });\r\n };\r\n}\r\n\r\nmodule.exports = _asyncToGenerator;","var uncurryThis = require('../internals/function-uncurry-this');\r\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\r\nvar toString = require('../internals/to-string');\r\nvar requireObjectCoercible = require('../internals/require-object-coercible');\r\n\r\nvar charAt = uncurryThis(''.charAt);\r\nvar charCodeAt = uncurryThis(''.charCodeAt);\r\nvar stringSlice = uncurryThis(''.slice);\r\n\r\nvar createMethod = function (CONVERT_TO_STRING) {\r\n return function ($this, pos) {\r\n var S = toString(requireObjectCoercible($this));\r\n var position = toIntegerOrInfinity(pos);\r\n var size = S.length;\r\n var first, second;\r\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\r\n first = charCodeAt(S, position);\r\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\r\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\r\n ? CONVERT_TO_STRING\r\n ? charAt(S, position)\r\n : first\r\n : CONVERT_TO_STRING\r\n ? stringSlice(S, position, position + 2)\r\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\r\n };\r\n};\r\n\r\nmodule.exports = {\r\n // `String.prototype.codePointAt` method\r\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\r\n codeAt: createMethod(false),\r\n // `String.prototype.at` method\r\n // https://github.com/mathiasbynens/String.prototype.at\r\n charAt: createMethod(true)\r\n};\r\n","'use strict';\r\nvar aCallable = require('../internals/a-callable');\r\n\r\nvar PromiseCapability = function (C) {\r\n var resolve, reject;\r\n this.promise = new C(function ($$resolve, $$reject) {\r\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\r\n resolve = $$resolve;\r\n reject = $$reject;\r\n });\r\n this.resolve = aCallable(resolve);\r\n this.reject = aCallable(reject);\r\n};\r\n\r\n// `NewPromiseCapability` abstract operation\r\n// https://tc39.es/ecma262/#sec-newpromisecapability\r\nmodule.exports.f = function (C) {\r\n return new PromiseCapability(C);\r\n};\r\n","var Queue = function () {\r\n this.head = null;\r\n this.tail = null;\r\n};\r\n\r\nQueue.prototype = {\r\n add: function (item) {\r\n var entry = { item: item, next: null };\r\n if (this.head) this.tail.next = entry;\r\n else this.head = entry;\r\n this.tail = entry;\r\n },\r\n get: function () {\r\n var entry = this.head;\r\n if (entry) {\r\n this.head = entry.next;\r\n if (this.tail === entry) this.tail = null;\r\n return entry.item;\r\n }\r\n }\r\n};\r\n\r\nmodule.exports = Queue;\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\nvar t=function(r,e){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])})(r,e)};function r(r,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function i(){this.constructor=r}t(r,e),r.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}function e(t){var r=\"\";Array.isArray(t)||(t=[t]);for(var e=0;et.phi1&&(t.phi2-=2*n),1===t.sweepFlag&&t.phi2i)return[];if(0===i)return[[t*e/(t*t+r*r),r*e/(t*t+r*r)]];var n=Math.sqrt(i);return[[(t*e+r*n)/(t*t+r*r),(r*e-t*n)/(t*t+r*r)],[(t*e-r*n)/(t*t+r*r),(r*e+t*n)/(t*t+r*r)]]}var u,h=Math.PI/180;function c(t,r,e){return(1-e)*t+e*r}function y(t,r,e,i){return t+Math.cos(i/180*n)*r+Math.sin(i/180*n)*e}function p(t,r,e,i){var a=1e-6,n=r-t,o=e-r,s=3*n+3*(i-e)-6*o,u=6*(o-n),h=3*n;return Math.abs(s)T&&(a.sweepFlag=+!a.sweepFlag),a}))}function l(){return function(t){var r={};for(var e in t)r[e]=t[e];return r}}t.ROUND=function(t){function r(r){return Math.round(r*t)/t}return void 0===t&&(t=1e13),a(t),function(t){return void 0!==t.x1&&(t.x1=r(t.x1)),void 0!==t.y1&&(t.y1=r(t.y1)),void 0!==t.x2&&(t.x2=r(t.x2)),void 0!==t.y2&&(t.y2=r(t.y2)),void 0!==t.x&&(t.x=r(t.x)),void 0!==t.y&&(t.y=r(t.y)),void 0!==t.rX&&(t.rX=r(t.rX)),void 0!==t.rY&&(t.rY=r(t.rY)),t}},t.TO_ABS=r,t.TO_REL=function(){return u((function(t,r,e){return t.relative||(void 0!==t.x1&&(t.x1-=r),void 0!==t.y1&&(t.y1-=e),void 0!==t.x2&&(t.x2-=r),void 0!==t.y2&&(t.y2-=e),void 0!==t.x&&(t.x-=r),void 0!==t.y&&(t.y-=e),t.relative=!0),t}))},t.NORMALIZE_HVZ=function(t,r,e){return void 0===t&&(t=!0),void 0===r&&(r=!0),void 0===e&&(e=!0),u((function(i,a,n,o,s){if(isNaN(o)&&!(i.type&_.MOVE_TO))throw new Error(\"path must start with moveto\");return r&&i.type&_.HORIZ_LINE_TO&&(i.type=_.LINE_TO,i.y=i.relative?0:n),e&&i.type&_.VERT_LINE_TO&&(i.type=_.LINE_TO,i.x=i.relative?0:a),t&&i.type&_.CLOSE_PATH&&(i.type=_.LINE_TO,i.x=i.relative?o-a:o,i.y=i.relative?s-n:s),i.type&_.ARC&&(0===i.rX||0===i.rY)&&(i.type=_.LINE_TO,delete i.rX,delete i.rY,delete i.xRot,delete i.lArcFlag,delete i.sweepFlag),i}))},t.NORMALIZE_ST=e,t.QT_TO_C=n,t.INFO=u,t.SANITIZE=function(t){void 0===t&&(t=0),a(t);var r=NaN,e=NaN,i=NaN,n=NaN;return u((function(a,o,s,u,h){var c=Math.abs,y=!1,p=0,m=0;if(a.type&_.SMOOTH_CURVE_TO&&(p=isNaN(r)?0:o-r,m=isNaN(e)?0:s-e),a.type&(_.CURVE_TO|_.SMOOTH_CURVE_TO)?(r=a.relative?o+a.x2:a.x2,e=a.relative?s+a.y2:a.y2):(r=NaN,e=NaN),a.type&_.SMOOTH_QUAD_TO?(i=isNaN(i)?o:2*o-i,n=isNaN(n)?s:2*s-n):a.type&_.QUAD_TO?(i=a.relative?o+a.x1:a.x1,n=a.relative?s+a.y1:a.y2):(i=NaN,n=NaN),a.type&_.LINE_COMMANDS||a.type&_.ARC&&(0===a.rX||0===a.rY||!a.lArcFlag)||a.type&_.CURVE_TO||a.type&_.SMOOTH_CURVE_TO||a.type&_.QUAD_TO||a.type&_.SMOOTH_QUAD_TO){var O=void 0===a.x?0:a.relative?a.x:a.x-o,l=void 0===a.y?0:a.relative?a.y:a.y-s;p=isNaN(i)?void 0===a.x1?p:a.relative?a.x:a.x1-o:i-o,m=isNaN(n)?void 0===a.y1?m:a.relative?a.y:a.y1-s:n-s;var T=void 0===a.x2?0:a.relative?a.x:a.x2-o,v=void 0===a.y2?0:a.relative?a.y:a.y2-s;c(O)<=t&&c(l)<=t&&c(p)<=t&&c(m)<=t&&c(T)<=t&&c(v)<=t&&(y=!0)}return a.type&_.CLOSE_PATH&&c(o-u)<=t&&c(s-h)<=t&&(y=!0),y?[]:a}))},t.MATRIX=O,t.ROTATE=function(t,r,e){void 0===r&&(r=0),void 0===e&&(e=0),a(t,r,e);var i=Math.sin(t),n=Math.cos(t);return O(n,i,-i,n,r-r*n+e*i,e-r*i-e*n)},t.TRANSLATE=function(t,r){return void 0===r&&(r=0),a(t,r),O(1,0,0,1,t,r)},t.SCALE=function(t,r){return void 0===r&&(r=t),a(t,r),O(t,0,0,r,0,0)},t.SKEW_X=function(t){return a(t),O(1,0,Math.atan(t),1,0,0)},t.SKEW_Y=function(t){return a(t),O(1,Math.atan(t),0,1,0,0)},t.X_AXIS_SYMMETRY=function(t){return void 0===t&&(t=0),a(t),O(-1,0,0,1,t,0)},t.Y_AXIS_SYMMETRY=function(t){return void 0===t&&(t=0),a(t),O(1,0,0,-1,0,t)},t.A_TO_C=function(){return u((function(t,r,e){return _.ARC===t.type?function(t,r,e){var a,n,s,u;t.cX||o(t,r,e);for(var y=Math.min(t.phi1,t.phi2),p=Math.max(t.phi1,t.phi2)-y,m=Math.ceil(p/90),O=new Array(m),l=r,T=e,v=0;vc.maxX&&(c.maxX=t),tc.maxY&&(c.maxY=t),tw&&O(m(e,u.x1,u.x2,u.x,w))}for(var f=0,N=p(n,u.y1,u.y2,u.y);fw&&l(m(n,u.y1,u.y2,u.y,w))}}if(u.type&_.ARC){O(u.x),l(u.y),o(u,e,n);for(var x=u.xRot/180*Math.PI,d=Math.cos(x)*u.rX,E=Math.sin(x)*u.rX,A=-Math.sin(x)*u.rY,C=Math.cos(x)*u.rY,M=u.phi1u.phi2?[u.phi2+360,u.phi1+360]:[u.phi2,u.phi1],R=M[0],g=M[1],I=function(t){var r=t[0],e=t[1],i=180*Math.atan2(e,r)/Math.PI;return iR&&wR&&wu)throw new SyntaxError('Expected positive number, got \"'+u+'\" at index \"'+a+'\"')}else if((3===this.curArgs.length||4===this.curArgs.length)&&\"0\"!==this.curNumber&&\"1\"!==this.curNumber)throw new SyntaxError('Expected a flag, got \"'+this.curNumber+'\" at index \"'+a+'\"');this.curArgs.push(u),this.curArgs.length===N[this.curCommandType]&&(_.HORIZ_LINE_TO===this.curCommandType?i({type:_.HORIZ_LINE_TO,relative:this.curCommandRelative,x:u}):_.VERT_LINE_TO===this.curCommandType?i({type:_.VERT_LINE_TO,relative:this.curCommandRelative,y:u}):this.curCommandType===_.MOVE_TO||this.curCommandType===_.LINE_TO||this.curCommandType===_.SMOOTH_QUAD_TO?(i({type:this.curCommandType,relative:this.curCommandRelative,x:this.curArgs[0],y:this.curArgs[1]}),_.MOVE_TO===this.curCommandType&&(this.curCommandType=_.LINE_TO)):this.curCommandType===_.CURVE_TO?i({type:_.CURVE_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x2:this.curArgs[2],y2:this.curArgs[3],x:this.curArgs[4],y:this.curArgs[5]}):this.curCommandType===_.SMOOTH_CURVE_TO?i({type:_.SMOOTH_CURVE_TO,relative:this.curCommandRelative,x2:this.curArgs[0],y2:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===_.QUAD_TO?i({type:_.QUAD_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===_.ARC&&i({type:_.ARC,relative:this.curCommandRelative,rX:this.curArgs[0],rY:this.curArgs[1],xRot:this.curArgs[2],lArcFlag:this.curArgs[3],sweepFlag:this.curArgs[4],x:this.curArgs[5],y:this.curArgs[6]})),this.curNumber=\"\",this.curNumberHasExpDigits=!1,this.curNumberHasExp=!1,this.curNumberHasDecimal=!1,this.canParseCommandOrComma=!0}if(!T(n))if(\",\"===n&&this.canParseCommandOrComma)this.canParseCommandOrComma=!1;else if(\"+\"!==n&&\"-\"!==n&&\".\"!==n)if(s)this.curNumber=n,this.curNumberHasDecimal=!1;else{if(0!==this.curArgs.length)throw new SyntaxError(\"Unterminated command at index \"+a+\".\");if(!this.canParseCommandOrComma)throw new SyntaxError('Unexpected character \"'+n+'\" at index '+a+\". Command cannot follow comma\");if(this.canParseCommandOrComma=!1,\"z\"!==n&&\"Z\"!==n)if(\"h\"===n||\"H\"===n)this.curCommandType=_.HORIZ_LINE_TO,this.curCommandRelative=\"h\"===n;else if(\"v\"===n||\"V\"===n)this.curCommandType=_.VERT_LINE_TO,this.curCommandRelative=\"v\"===n;else if(\"m\"===n||\"M\"===n)this.curCommandType=_.MOVE_TO,this.curCommandRelative=\"m\"===n;else if(\"l\"===n||\"L\"===n)this.curCommandType=_.LINE_TO,this.curCommandRelative=\"l\"===n;else if(\"c\"===n||\"C\"===n)this.curCommandType=_.CURVE_TO,this.curCommandRelative=\"c\"===n;else if(\"s\"===n||\"S\"===n)this.curCommandType=_.SMOOTH_CURVE_TO,this.curCommandRelative=\"s\"===n;else if(\"q\"===n||\"Q\"===n)this.curCommandType=_.QUAD_TO,this.curCommandRelative=\"q\"===n;else if(\"t\"===n||\"T\"===n)this.curCommandType=_.SMOOTH_QUAD_TO,this.curCommandRelative=\"t\"===n;else{if(\"a\"!==n&&\"A\"!==n)throw new SyntaxError('Unexpected character \"'+n+'\" at index '+a+\".\");this.curCommandType=_.ARC,this.curCommandRelative=\"a\"===n}else r.push({type:_.CLOSE_PATH}),this.canParseCommandOrComma=!0,this.curCommandType=-1}else this.curNumber=n,this.curNumberHasDecimal=\".\"===n}else this.curNumber+=n,this.curNumberHasDecimal=!0;else this.curNumber+=n;else this.curNumber+=n,this.curNumberHasExp=!0;else this.curNumber+=n,this.curNumberHasExpDigits=this.curNumberHasExp}return r},e.prototype.transform=function(t){return Object.create(this,{parse:{value:function(r,e){void 0===e&&(e=[]);for(var i=0,a=Object.getPrototypeOf(this).parse.call(this,r);i /./s and it causes SyntaxError\r\nvar $RegExp = global.RegExp;\r\n\r\nmodule.exports = fails(function () {\r\n var re = $RegExp('.', 's');\r\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\r\n});\r\n","var uncurryThis = require('../internals/function-uncurry-this');\r\nvar fails = require('../internals/fails');\r\nvar isCallable = require('../internals/is-callable');\r\nvar classof = require('../internals/classof');\r\nvar getBuiltIn = require('../internals/get-built-in');\r\nvar inspectSource = require('../internals/inspect-source');\r\n\r\nvar noop = function () { /* empty */ };\r\nvar empty = [];\r\nvar construct = getBuiltIn('Reflect', 'construct');\r\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\r\nvar exec = uncurryThis(constructorRegExp.exec);\r\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\r\n\r\nvar isConstructorModern = function isConstructor(argument) {\r\n if (!isCallable(argument)) return false;\r\n try {\r\n construct(noop, empty, argument);\r\n return true;\r\n } catch (error) {\r\n return false;\r\n }\r\n};\r\n\r\nvar isConstructorLegacy = function isConstructor(argument) {\r\n if (!isCallable(argument)) return false;\r\n switch (classof(argument)) {\r\n case 'AsyncFunction':\r\n case 'GeneratorFunction':\r\n case 'AsyncGeneratorFunction': return false;\r\n }\r\n try {\r\n // we can't check .prototype since constructors produced by .bind haven't it\r\n // `Function#toString` throws on some built-it function in some legacy engines\r\n // (for example, `DOMQuad` and similar in FF41-)\r\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\r\n } catch (error) {\r\n return true;\r\n }\r\n};\r\n\r\nisConstructorLegacy.sham = true;\r\n\r\n// `IsConstructor` abstract operation\r\n// https://tc39.es/ecma262/#sec-isconstructor\r\nmodule.exports = !construct || fails(function () {\r\n var called;\r\n return isConstructorModern(isConstructorModern.call)\r\n || !isConstructorModern(Object)\r\n || !isConstructorModern(function () { called = true; })\r\n || called;\r\n}) ? isConstructorLegacy : isConstructorModern;\r\n","var global = require('../internals/global');\r\nvar setGlobal = require('../internals/set-global');\r\n\r\nvar SHARED = '__core-js_shared__';\r\nvar store = global[SHARED] || setGlobal(SHARED, {});\r\n\r\nmodule.exports = store;\r\n","module.exports = function (bitmap, value) {\r\n return {\r\n enumerable: !(bitmap & 1),\r\n configurable: !(bitmap & 2),\r\n writable: !(bitmap & 4),\r\n value: value\r\n };\r\n};\r\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\r\nvar fails = require('../internals/fails');\r\nvar whitespaces = require('../internals/whitespaces');\r\n\r\nvar non = '\\u200B\\u0085\\u180E';\r\n\r\n// check that a method works with the correct list\r\n// of whitespaces and has a correct name\r\nmodule.exports = function (METHOD_NAME) {\r\n return fails(function () {\r\n return !!whitespaces[METHOD_NAME]()\r\n || non[METHOD_NAME]() !== non\r\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\r\n });\r\n};\r\n","'use strict';\r\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\r\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\r\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\r\n\r\n// Nashorn ~ JDK8 bug\r\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\r\n\r\n// `Object.prototype.propertyIsEnumerable` method implementation\r\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\r\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\r\n var descriptor = getOwnPropertyDescriptor(this, V);\r\n return !!descriptor && descriptor.enumerable;\r\n} : $propertyIsEnumerable;\r\n","var global = require('../internals/global');\r\nvar requireObjectCoercible = require('../internals/require-object-coercible');\r\n\r\nvar Object = global.Object;\r\n\r\n// `ToObject` abstract operation\r\n// https://tc39.es/ecma262/#sec-toobject\r\nmodule.exports = function (argument) {\r\n return Object(requireObjectCoercible(argument));\r\n};\r\n","var global = require('../internals/global');\r\nvar isCallable = require('../internals/is-callable');\r\nvar tryToString = require('../internals/try-to-string');\r\n\r\nvar TypeError = global.TypeError;\r\n\r\n// `Assert: IsCallable(argument) is true`\r\nmodule.exports = function (argument) {\r\n if (isCallable(argument)) return argument;\r\n throw TypeError(tryToString(argument) + ' is not a function');\r\n};\r\n","var DESCRIPTORS = require('../internals/descriptors');\r\nvar definePropertyModule = require('../internals/object-define-property');\r\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\r\n\r\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\r\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\r\n} : function (object, key, value) {\r\n object[key] = value;\r\n return object;\r\n};\r\n","var global = require('../internals/global');\r\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\r\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\r\nvar createProperty = require('../internals/create-property');\r\n\r\nvar Array = global.Array;\r\nvar max = Math.max;\r\n\r\nmodule.exports = function (O, start, end) {\r\n var length = lengthOfArrayLike(O);\r\n var k = toAbsoluteIndex(start, length);\r\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\r\n var result = Array(max(fin - k, 0));\r\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\r\n result.length = n;\r\n return result;\r\n};\r\n","module.exports = function (exec) {\r\n try {\r\n return { error: false, value: exec() };\r\n } catch (error) {\r\n return { error: true, value: error };\r\n }\r\n};\r\n","'use strict';\r\nvar getBuiltIn = require('../internals/get-built-in');\r\nvar definePropertyModule = require('../internals/object-define-property');\r\nvar wellKnownSymbol = require('../internals/well-known-symbol');\r\nvar DESCRIPTORS = require('../internals/descriptors');\r\n\r\nvar SPECIES = wellKnownSymbol('species');\r\n\r\nmodule.exports = function (CONSTRUCTOR_NAME) {\r\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\r\n var defineProperty = definePropertyModule.f;\r\n\r\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\r\n defineProperty(Constructor, SPECIES, {\r\n configurable: true,\r\n get: function () { return this; }\r\n });\r\n }\r\n};\r\n","var fails = require('../internals/fails');\r\n\r\n// Detect IE8's incomplete defineProperty implementation\r\nmodule.exports = !fails(function () {\r\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\r\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\r\n});\r\n","var wellKnownSymbol = require('../internals/well-known-symbol');\r\n\r\nvar MATCH = wellKnownSymbol('match');\r\n\r\nmodule.exports = function (METHOD_NAME) {\r\n var regexp = /./;\r\n try {\r\n '/./'[METHOD_NAME](regexp);\r\n } catch (error1) {\r\n try {\r\n regexp[MATCH] = false;\r\n return '/./'[METHOD_NAME](regexp);\r\n } catch (error2) { /* empty */ }\r\n } return false;\r\n};\r\n","var userAgent = require('../internals/engine-user-agent');\r\n\r\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\r\n"],"sourceRoot":""}