{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/jquery/src/core.js","webpack:///./node_modules/konva/lib/Factory.js","webpack:///./node_modules/konva/lib/Global.js","webpack:///./node_modules/konva/lib/Validators.js","webpack:///./node_modules/konva/lib/Util.js","webpack:///./node_modules/konva/lib/Node.js","webpack:///./node_modules/jquery/src/var/isFunction.js","webpack:///./node_modules/konva/lib/Shape.js","webpack:///./node_modules/jquery/src/var/document.js","webpack:///./node_modules/jquery/src/selector.js","webpack:///./node_modules/jquery/src/core/init.js","webpack:///./node_modules/konva/lib/index.js","webpack:///./node_modules/jquery/src/data/var/dataPriv.js","webpack:///./node_modules/jquery/src/core/nodeName.js","webpack:///./node_modules/jquery/src/var/rnothtmlwhite.js","webpack:///./node_modules/jquery/src/var/support.js","webpack:///./node_modules/jquery/src/core/access.js","webpack:///./node_modules/jquery/src/ajax.js","webpack:///./node_modules/jquery/src/core/toType.js","webpack:///./node_modules/jquery/src/traversing.js","webpack:///./node_modules/jquery/src/deferred.js","webpack:///./node_modules/jquery/src/event.js","webpack:///./node_modules/konva/lib/Container.js","webpack:///./node_modules/jquery/src/var/arr.js","webpack:///./node_modules/jquery/src/var/isWindow.js","webpack:///./node_modules/jquery/src/core/camelCase.js","webpack:///./node_modules/jquery/src/css.js","webpack:///./node_modules/konva/lib/Canvas.js","webpack:///./node_modules/jquery/src/var/slice.js","webpack:///./node_modules/jquery/src/var/class2type.js","webpack:///./node_modules/jquery/src/data/var/acceptData.js","webpack:///./node_modules/jquery/src/core/isAttached.js","webpack:///./node_modules/jquery/src/var/documentElement.js","webpack:///./node_modules/jquery/src/manipulation.js","webpack:///./node_modules/konva/lib/DragAndDrop.js","webpack:///./node_modules/jquery/src/var/indexOf.js","webpack:///./node_modules/jquery/src/var/hasOwn.js","webpack:///./node_modules/jquery/src/callbacks.js","webpack:///./node_modules/jquery/src/queue.js","webpack:///./node_modules/jquery/src/effects.js","webpack:///./node_modules/jquery/src/var/rcssNum.js","webpack:///./node_modules/jquery/src/css/var/cssExpand.js","webpack:///./node_modules/jquery/src/var/rcheckableType.js","webpack:///./node_modules/jquery/src/css/var/rnumnonpx.js","webpack:///./node_modules/jquery/src/css/support.js","webpack:///./node_modules/jquery/src/attributes/support.js","webpack:///./node_modules/jquery/src/core/stripAndCollapse.js","webpack:///./node_modules/jquery/src/event/trigger.js","webpack:///./node_modules/konva/lib/Group.js","webpack:///./node_modules/konva/lib/Animation.js","webpack:///./node_modules/jquery/src/jquery.js","webpack:///./node_modules/jquery/src/var/getProto.js","webpack:///./node_modules/jquery/src/var/flat.js","webpack:///./node_modules/jquery/src/var/push.js","webpack:///./node_modules/jquery/src/var/toString.js","webpack:///./node_modules/jquery/src/var/fnToString.js","webpack:///./node_modules/jquery/src/core/DOMEval.js","webpack:///./node_modules/jquery/src/traversing/var/rneedsContext.js","webpack:///./node_modules/jquery/src/core/var/rsingleTag.js","webpack:///./node_modules/jquery/src/traversing/findFilter.js","webpack:///./node_modules/jquery/src/core/ready.js","webpack:///./node_modules/jquery/src/data/Data.js","webpack:///./node_modules/jquery/src/data/var/dataUser.js","webpack:///./node_modules/jquery/src/var/pnum.js","webpack:///./node_modules/jquery/src/css/var/isHiddenWithinTree.js","webpack:///./node_modules/jquery/src/css/adjustCSS.js","webpack:///./node_modules/jquery/src/manipulation/var/rtagName.js","webpack:///./node_modules/jquery/src/manipulation/var/rscriptType.js","webpack:///./node_modules/jquery/src/manipulation/wrapMap.js","webpack:///./node_modules/jquery/src/manipulation/support.js","webpack:///./node_modules/jquery/src/manipulation/getAll.js","webpack:///./node_modules/jquery/src/manipulation/setGlobalEval.js","webpack:///./node_modules/jquery/src/manipulation/buildFragment.js","webpack:///./node_modules/jquery/src/css/var/getStyles.js","webpack:///./node_modules/jquery/src/css/curCSS.js","webpack:///./node_modules/jquery/src/css/addGetHookIf.js","webpack:///./node_modules/jquery/src/css/finalPropName.js","webpack:///./node_modules/jquery/src/attributes/prop.js","webpack:///./node_modules/jquery/src/ajax/var/nonce.js","webpack:///./node_modules/jquery/src/ajax/var/rquery.js","webpack:///./node_modules/jquery/src/core/parseXML.js","webpack:///./node_modules/jquery/src/serialize.js","webpack:///./node_modules/jquery/src/core/parseHTML.js","webpack:///./node_modules/konva/lib/Context.js","webpack:///./node_modules/konva/lib/PointerEvents.js","webpack:///./node_modules/konva/lib/BaseLayer.js","webpack:///./node_modules/konva/lib/shapes/Line.js","webpack:///./node_modules/konva/lib/shapes/Path.js","webpack:///./node_modules/konva/lib/shapes/Rect.js","webpack:///./node_modules/konva/lib/shapes/Text.js","webpack:///./app/javascript/lib/constants.ts","webpack:///./app/javascript/lib/character.ts","webpack:///./app/javascript/lib/reading.ts","webpack:///./app/javascript/lib/segment.ts","webpack:///./app/javascript/lib/xuanjitu.ts","webpack:///./node_modules/jquery/src/var/ObjectFunctionString.js","webpack:///./node_modules/jquery/src/selector-sizzle.js","webpack:///./node_modules/jquery/external/sizzle/dist/sizzle.js","webpack:///./node_modules/jquery/src/traversing/var/dir.js","webpack:///./node_modules/jquery/src/traversing/var/siblings.js","webpack:///./node_modules/jquery/src/deferred/exceptionHook.js","webpack:///./node_modules/jquery/src/core/readyException.js","webpack:///./node_modules/jquery/src/data.js","webpack:///./node_modules/jquery/src/queue/delay.js","webpack:///./node_modules/jquery/src/css/showHide.js","webpack:///./node_modules/jquery/src/css/var/swap.js","webpack:///./node_modules/jquery/src/css/var/rboxStyle.js","webpack:///./node_modules/jquery/src/effects/Tween.js","webpack:///./node_modules/jquery/src/attributes.js","webpack:///./node_modules/jquery/src/attributes/attr.js","webpack:///./node_modules/jquery/src/attributes/classes.js","webpack:///./node_modules/jquery/src/attributes/val.js","webpack:///./node_modules/jquery/src/event/focusin.js","webpack:///./node_modules/jquery/src/event/support.js","webpack:///./node_modules/jquery/src/manipulation/_evalUrl.js","webpack:///./node_modules/jquery/src/ajax/var/location.js","webpack:///./node_modules/jquery/src/wrap.js","webpack:///./node_modules/jquery/src/css/hiddenVisibleSelectors.js","webpack:///./node_modules/jquery/src/ajax/xhr.js","webpack:///./node_modules/jquery/src/ajax/script.js","webpack:///./node_modules/jquery/src/ajax/jsonp.js","webpack:///./node_modules/jquery/src/ajax/load.js","webpack:///./node_modules/jquery/src/core/support.js","webpack:///./node_modules/jquery/src/effects/animatedSelector.js","webpack:///./node_modules/jquery/src/offset.js","webpack:///./node_modules/jquery/src/dimensions.js","webpack:///./node_modules/jquery/src/deprecated.js","webpack:///./node_modules/jquery/src/deprecated/ajax-event-alias.js","webpack:///./node_modules/jquery/src/deprecated/event.js","webpack:///./node_modules/jquery/src/exports/amd.js","webpack:///./node_modules/jquery/src/exports/global.js","webpack:///./node_modules/konva/lib/_FullInternals.js","webpack:///./node_modules/konva/lib/_CoreInternals.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/konva/lib/Stage.js","webpack:///./node_modules/konva/lib/Layer.js","webpack:///./node_modules/konva/lib/FastLayer.js","webpack:///./node_modules/konva/lib/Tween.js","webpack:///./node_modules/konva/lib/shapes/Arc.js","webpack:///./node_modules/konva/lib/shapes/Arrow.js","webpack:///./node_modules/konva/lib/shapes/Circle.js","webpack:///./node_modules/konva/lib/shapes/Ellipse.js","webpack:///./node_modules/konva/lib/shapes/Image.js","webpack:///./node_modules/konva/lib/shapes/Label.js","webpack:///./node_modules/konva/lib/shapes/RegularPolygon.js","webpack:///./node_modules/konva/lib/shapes/Ring.js","webpack:///./node_modules/konva/lib/shapes/Sprite.js","webpack:///./node_modules/konva/lib/shapes/Star.js","webpack:///./node_modules/konva/lib/shapes/TextPath.js","webpack:///./node_modules/konva/lib/shapes/Transformer.js","webpack:///./node_modules/konva/lib/shapes/Wedge.js","webpack:///./node_modules/konva/lib/filters/Blur.js","webpack:///./node_modules/konva/lib/filters/Brighten.js","webpack:///./node_modules/konva/lib/filters/Contrast.js","webpack:///./node_modules/konva/lib/filters/Emboss.js","webpack:///./node_modules/konva/lib/filters/Enhance.js","webpack:///./node_modules/konva/lib/filters/Grayscale.js","webpack:///./node_modules/konva/lib/filters/HSL.js","webpack:///./node_modules/konva/lib/filters/HSV.js","webpack:///./node_modules/konva/lib/filters/Invert.js","webpack:///./node_modules/konva/lib/filters/Kaleidoscope.js","webpack:///./node_modules/konva/lib/filters/Mask.js","webpack:///./node_modules/konva/lib/filters/Noise.js","webpack:///./node_modules/konva/lib/filters/Pixelate.js","webpack:///./node_modules/konva/lib/filters/Posterize.js","webpack:///./node_modules/konva/lib/filters/RGB.js","webpack:///./node_modules/konva/lib/filters/RGBA.js","webpack:///./node_modules/konva/lib/filters/Sepia.js","webpack:///./node_modules/konva/lib/filters/Solarize.js","webpack:///./node_modules/konva/lib/filters/Threshold.js","webpack:///./app/javascript/packs/index.ts","webpack:///./app/javascript/packs/application.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./node_modules/jquery/dist/jquery.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","arr","getProto","slice","flat","push","indexOf","class2type","toString","hasOwn","fnToString","ObjectFunctionString","support","isFunction","isWindow","DOMEval","toType","version","jQuery","selector","context","fn","init","isArrayLike","obj","length","type","jquery","constructor","toArray","this","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","apply","arguments","first","eq","last","even","grep","_elem","odd","len","j","end","sort","splice","extend","options","src","copy","copyIsArray","clone","target","deep","isPlainObject","Array","isArray","undefined","expando","Math","random","replace","isReady","error","msg","Error","noop","proto","Ctor","isEmptyObject","globalEval","code","doc","nonce","makeArray","results","inArray","second","invert","matches","callbackExpect","arg","guid","iterator","split","_i","toLowerCase","Util_1","Validators_1","GET","SET","Factory","addGetterSetter","attr","def","validator","after","addGetter","addSetter","addOverloadedGetterSetter","method","Util","_capitalize","val","attrs","overWriteSetter","_setAttr","addComponentsGetterSetter","components","component","capitalize","setter","getAttr","basicValidator","getComponentValidator","oldVal","_fireChangeEvent","capitalizedAttr","addDeprecatedGetterSetter","message","backCompat","methods","oldMethodName","newMethodName","oldGetter","oldSetter","deprecated","afterSetFilter","_filterUpToDate","PI_OVER_180","PI","_detectIE","ua","msie","parseInt","substring","rv","edge","_parseUA","userAgent","match","exec","mobile","ieMobile","browser","isIE","glob","global","window","WorkerGlobalScope","self","Konva","_global","isBrowser","isUnminified","test","param","dblClickWindow","getAngle","angle","angleDeg","enableTrace","_pointerEventsEnabled","hitOnDragEnabled","captureTouchEventsEnabled","listenClickTap","inDblClickWindow","pixelRatio","dragDistance","showWarnings","dragButtons","isDragging","isDragReady","node","UA","navigator","document","_injectGlobal","_NODES_REGISTRY","_registerNode","NodeClass","getClassName","Global_1","_formatValue","_isString","_isBoolean","RGBComponent","round","alphaComponent","getNumberValidator","_isNumber","warn","getNumberOrAutoValidator","getStringValidator","getFunctionValidator","_isFunction","getNumberArrayValidator","_isArray","forEach","item","getBooleanValidator","isObject","Collection","toCollection","collection","_mapMethod","methodName","args","mapMethods","prot","func","Transform","point","x","y","translate","scale","sx","sy","rotate","rad","cos","sin","m11","m12","m21","m22","getTranslation","skew","multiply","matrix","dx","dy","m0","m1","m2","m3","m4","m5","getMatrix","setAbsolutePosition","yt","xt","PI_OVER_DEG180","DEG180_OVER_PI","KONVA_ERROR","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","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","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","slategrey","snow","springgreen","steelblue","tan","teal","thistle","transparent","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","RGB_REGEX","animQueue","_isElement","nodeType","_isPlainObject","isNaN","isFinite","isValidSelector","firstChar","toUpperCase","_sign","number","requestAnimFrame","requestAnimationFrame","queue","cb","createCanvasElement","canvas","createElement","style","e","createImageElement","_isInDocument","el","parentNode","_simplifyArray","retArr","util","_urlToImage","url","imageObj","Image","onload","_rgbToHex","g","b","_hexToRgb","hex","bigint","getRandomColor","randColor","getRGB","color","rgb","substr","colorToRGBA","str","_namedColorToRBA","_hex3ColorToRGBA","_hex6ColorToRGBA","_rgbColorToRGBA","_rgbaColorToRGBA","_hslColorToRGBA","a","parts","Number","_a","hsl","h","t2","t3","t1","haveIntersection","r1","r2","width","height","cloneObject","retObj","cloneArray","_degToRad","deg","_radToDeg","charAt","throw","console","child","parent","oldProto","__super__","super","_getControlPoints","x0","y0","x1","y1","x2","y2","d01","sqrt","pow","d12","fa","fb","_expandPoints","tension","cp","allPoints","_inRange","left","right","_getProjectionToSegment","x3","y3","dist","pd2","u","_getProjectionToLine","pt","line","isClosed","pc","MAX_VALUE","p1","p2","proj","px","py","pdist","_prepareArrayForTween","startArray","endArray","start","temp","newStart","pr","_prepareToStringify","desc","visitedByCircularReferenceRemoval","getOwnPropertyDescriptor","configurable","_assign","source","_getFirstPointerId","evt","touches","changedTouches","identifier","Factory_1","Canvas_1","DragAndDrop_1","ids","names","_removeId","id","_addName","_removeName","_id","nodes","ABSOLUTE_OPACITY","ABSOLUTE_TRANSFORM","ABSOLUTE_SCALE","CANVAS","LISTENING","MOUSEENTER","MOUSELEAVE","SHAPE","SPACE","STAGE","TRANSFORM","VISIBLE","TRANSFORM_CHANGE_STR","join","SCALE_CHANGE_STR","emptyChildren","idCounter","Node","config","_this","eventListeners","index","_cache","Map","_lastPos","_isUnderCache","children","_dragEventId","setAttrs","on","_clearCache","_clearSelfAndDescendantCache","hasChildren","getChildren","delete","clear","_getCache","privateGetter","cache","set","_getCanvasCache","isCached","clearCache","conf","rect","getClientRect","skipTransform","relativeTo","getParent","ceil","offset","drawBorder","cachedSceneCanvas","SceneCanvas","cachedFilterCanvas","cachedHitCanvas","HitCanvas","sceneContext","getContext","hitContext","isCache","imageSmoothingEnabled","_context","save","drawScene","drawHit","restore","beginPath","closePath","setAttr","stroke","scene","filter","hit","has","_transformedRect","top","minX","minY","maxX","maxY","points","trans","getAbsoluteTransform","transformed","min","max","_drawCachedSceneCanvas","_applyOpacity","_applyGlobalCompositeOperation","canvasCache","cacheCanvas","_getCachedSceneCanvas","ratio","drawImage","_canvas","_drawCachedHitCanvas","hitCanvas","imageData","filters","cachedCanvas","sceneCanvas","filterCanvas","filterContext","getWidth","getHeight","getImageData","putImageData","evtStr","handler","_delegate","baseEvent","events","off","_off","dispatchEvent","fire","addEventListener","removeEventListener","event","stopNode","targets","findAncestors","currentTarget","remove","stopDrag","DD","_dragElements","_remove","_clearCaches","_setChildrenIndices","destroy","subname","getAncestors","ancestors","getAttrs","isListening","_isListening","listening","isVisible","_isVisible","visible","shouldDrawHit","layer","getLayer","hitGraphEnabled","show","hide","getZIndex","getAbsoluteZIndex","depth","getDepth","that","addChildren","concat","getStage","setPosition","pos","getPosition","getAbsolutePosition","haveCachedParent","absoluteMatrix","absoluteTransform","it","origTrans","_clearTransform","_setTransform","rotation","scaleX","scaleY","offsetX","offsetY","skewX","skewY","move","change","changeX","changeY","_eachAncestorReverse","family","unshift","theta","moveToTop","moveUp","moveDown","moveToBottom","setZIndex","zIndex","getAbsoluteOpacity","_getAbsoluteOpacity","absOpacity","opacity","moveTo","newContainer","add","toObject","defaultValue","className","toJSON","JSON","stringify","includeSelf","res","_isMatch","ancestor","isAncestorOf","findAncestor","sel","selectorArr","hasName","_getStage","eventType","bubble","_fireAndBubble","_fire","_getAbsoluteTransform","at","transformsEnabled","getTransform","getAbsoluteScale","_getAbsoluteScale","getAbsoluteRotation","_getTransform","allListeners","listener","_toKonvaCanvas","box","stage","toCanvas","toDataURL","mimeType","quality","toImage","img","setSize","size","getSize","getType","getDragDistance","evtName","evtListeners","newVal","setId","oldId","_addId","setName","oldNames","newNames","addName","oldName","newName","fullName","removeName","_setComponentAttr","compareShape","stopBubble","cancelBubble","draw","_createDragElement","pointerId","ap","_getPointerById","_changedPointerPositions","startPointerPos","dragStatus","startDrag","_setDragPosition","newNodePos","dbf","dragBoundFunc","bounded","batchDraw","_endDragBefore","_endDragAfter","setDraggable","draggable","_dragChange","_listenDrag","_dragCleanup","hasDraggingChild","data","container","parse","_createNode","no","Class","_attrsAffectingSize","rotateDeg","setRotationDeg","getRotationDeg","extendStatics","__extends","setPrototypeOf","__proto__","__","dummyContext","Node_1","PointerEvents","HAS_SHADOW","SHADOW_RGBA","patternImage","linearGradient","radialGradient","getDummyContext","_clearHasShadowCache","_clearGetShadowRGBACache","_clearFillPatternCache","_clearLinearGradientCache","_clearRadialGradientCache","shapes","Shape","_super","colorKey","getCanvas","getSceneFunc","sceneFunc","getHitFunc","hitFunc","hasShadow","_hasShadow","shadowEnabled","shadowOpacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","_getFillPattern","__getFillPattern","fillPatternImage","createPattern","fillPatternRepeat","_getLinearGradient","__getLinearGradient","colorStops","fillLinearGradientColorStops","ctx","fillLinearGradientStartPoint","fillLinearGradientEndPoint","grd","createLinearGradient","addColorStop","_getRadialGradient","__getRadialGradient","fillRadialGradientColorStops","fillRadialGradientStartPoint","fillRadialGradientEndPoint","createRadialGradient","fillRadialGradientStartRadius","fillRadialGradientEndRadius","getShadowRGBA","_getShadowRGBA","rgba","hasFill","fillEnabled","fill","hasStroke","strokeEnabled","strokeWidth","strokeLinearGradientColorStops","hasHitStroke","hitStrokeWidth","intersects","bufferHitCanvas","_useBufferCanvas","caching","perfectDrawEnabled","setStrokeHitEnabled","getStrokeHitEnabled","getSelfRect","_centroid","fillRect","skipStroke","fillAndStrokeWidth","fillAndStrokeHeight","applyShadow","skipShadow","preWidth","abs","preHeight","blurRadius","roundingOffset","can","skipBuffer","bufferCanvas","bufferContext","drawFunc","_applyTransform","_applyLineJoin","transform","_applyShadow","shadowForStrokeEnabled","log","drawHitFromCache","alphaThreshold","hitImageData","hitData","rgbColorKey","hitWidth","hitHeight","hasPointerCapture","setPointerCapture","releaseCapture","_fillFunc","_strokeFunc","_fillFuncHit","_strokeFuncHit","dashArray","getDashArray","setDashArray","getDrawFunc","setDrawFunc","drawHitFunc","getDrawHitFunc","setDrawHitFunc","rsingleTag","rootjQuery","rquickExpr","root","find","parseHTML","ownerDocument","getElementById","ready","Data","nodeName","access","chainable","emptyGet","raw","bulk","_key","rnothtmlwhite","location","rquery","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","prefilters","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","originalOptions","jqXHR","inspected","seekingTransport","inspect","selected","_","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","href","active","lastModified","etag","isLocal","protocol","processData","async","contentType","accepts","text","html","xml","json","contents","responseFields","converters","String","parseXML","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","completed","fireGlobals","uncached","callbackContext","globalEventContext","deferred","Deferred","completeDeferred","Callbacks","statusCode","requestHeaders","requestHeadersNames","strAbort","readyState","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","always","status","abort","statusText","finalText","done","promise","crossDomain","host","traditional","trigger","hasContent","ifModified","headers","beforeSend","complete","success","fail","timeout","setTimeout","send","nativeStatusText","responses","isSuccess","response","modified","clearTimeout","ct","finalDataType","firstDataType","shift","ajaxHandleResponses","conv2","current","conv","tmp","prev","dataFilter","throws","state","ajaxConvert","resolveWith","rejectWith","fireWith","getJSON","getScript","dir","siblings","rneedsContext","rparentsprev","guaranteedUnique","next","sibling","cur","contains","closest","selectors","matched","matchesSelector","uniqueSort","prevAll","addBack","parents","parentsUntil","until","nextAll","nextUntil","prevUntil","firstChild","contentDocument","content","childNodes","reverse","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","then","tuples","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","special","mightThrow","TypeError","notifyWith","process","exceptionHook","stackTrace","getStackHook","list","stateString","disable","lock","when","singleValue","remaining","resolveContexts","resolveValues","master","updateFunc","documentElement","rcheckableType","acceptData","dataPriv","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","expectSync","activeElement","err","safeActiveElement","types","one","origFn","leverageNative","namespace","notAsync","result","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","Event","handleObjIn","eventHandle","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","bindType","needsContext","expr","delegateCount","setup","mappedTypes","origCount","hasData","RegExp","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","button","disabled","addProp","hook","originalEvent","writable","load","noBubble","click","_default","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","Date","now","isSimulated","altKey","bubbles","cancelable","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","keyCode","buttons","clientX","clientY","pointerType","screenX","screenY","targetTouches","toElement","which","focus","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","Container","filterFunc","removeChildren","destroyChildren","_children","_validateAdd","_generalFind","findOne","_descendants","valid","_getDescendants","getAllIntersections","shape","_drawChildren","drawMethod","skipComposition","clipX","clipY","clipWidth","clipHeight","clipFunc","hasClip","clip","hasComposition","globalCompositeOperation","layerUnderDrag","dragSkip","selfRect","Infinity","hasVisible","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","string","camelCase","rcssNum","rnumnonpx","cssExpand","getStyles","swap","curCSS","adjustCSS","addGetHookIf","finalPropName","rdisplayswap","rcustomProp","cssShow","position","visibility","display","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","boxModelAdjustment","dimension","isBorderBox","styles","computedVal","extra","delta","css","getWidthOrHeight","boxSizingReliable","valueIsBorderBox","offsetProp","reliableTrDimensions","parseFloat","getClientRects","cssHooks","computed","cssNumber","cssProps","hooks","origName","isCustomProp","clearCloneStyle","setProperty","getBoundingClientRect","scrollboxSizeBuggy","scrollboxSize","marginLeft","reliableMarginLeft","margin","padding","border","prefix","suffix","expand","expanded","_pixelRatio","Context_1","Canvas","devicePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","getDevicePixelRatio","background","getPixelRatio","setPixelRatio","previousRatio","setWidth","setHeight","SceneContext","HitContext","owner","isAttached","composed","getRootNode","rtagName","rscriptType","wrapMap","getAll","setGlobalEval","buildFragment","dataUser","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","getAttribute","restoreScript","removeAttribute","cloneCopyEvent","dest","udataOld","udataCur","fixInput","checked","domManip","ignored","fragment","scripts","hasScripts","iNoClone","valueIsFunction","checkClone","_evalUrl","noModule","textContent","keepData","cleanData","removeChild","htmlPrefilter","dataAndEvents","deepDataAndEvents","srcElements","destElements","cloneNode","inPage","noCloneChecked","isXMLDoc","detach","empty","append","appendChild","prepend","insertBefore","before","nextSibling","innerHTML","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","flag","justDragged","_drag","setPointersPositions","drawNode","createOptions","firing","memory","fired","locked","firingIndex","once","stopOnFalse","unique","dequeue","startLength","_queueHooks","stop","clearQueue","count","defer","elements","isHiddenWithinTree","showHide","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","fx","interval","tick","createFxNow","genFx","includeWidth","createTween","prop","animation","tween","Animation","tweeners","properties","stopped","currentTime","startTime","duration","percent","tweens","run","opts","specialEasing","easing","originalProperties","Tween","gotoEnd","propFilter","timer","anim","tweener","toggle","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","opt","speeds","old","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","pnum","computeStyleTests","div","cssText","divStyle","getComputedStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","offsetWidth","measure","reliableTrDimensionsVal","backgroundClip","pixelBoxStyles","pixelPosition","table","tr","trChild","trStyle","input","checkOn","optSelected","radioValue","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","defaultView","parentWindow","pop","simulate","triggerHandler","Container_1","Group","performance","getTime","layers","animIdCounter","frame","time","timeDiff","lastTime","frameRate","setLayers","lays","getLayers","addLayer","isRunning","animations","_addAnimation","_removeAnimation","_updateFrameObject","_handleAnimation","_runFrames","layersLen","layerHash","_animationLoop","Anim","animRunning","getPrototypeOf","array","preservedScriptAttributes","script","setAttribute","head","winnow","qualifier","not","is","readyList","catch","readyException","readyWait","wait","doScroll","uid","valueParts","adjusted","maxIterations","currentValue","initial","unit","initialInUnit","thead","col","td","tbody","tfoot","colgroup","caption","th","option","optgroup","createDocumentFragment","lastChild","tag","getElementsByTagName","querySelectorAll","refElements","rhtml","selection","wrap","attached","createTextNode","opener","rboxStyle","minWidth","maxWidth","getPropertyValue","conditionFn","hookFn","cssPrefixes","emptyStyle","vendorProps","final","capName","vendorPropName","rfocusable","rclickable","removeProp","propFix","nType","propHooks","tabIndex","tabindex","selectedIndex","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","valueOrFunction","encodeURIComponent","serialize","serializeArray","keepScripts","createHTMLDocument","base","implementation","parsed","CONTEXT_METHODS","Context","traceArr","_enableTrace","fillShape","_fill","strokeShape","_stroke","fillStrokeShape","getTrace","relaxed","trace","clearTrace","_trace","reset","setTransform","bounds","clearRect","_applyLineCap","lineCap","getLineCap","lineJoin","getLineJoin","arc","a0","a1","a2","a3","a4","a5","arcTo","bezierCurveTo","createImageData","a6","a7","a8","ellipse","isPointInPath","strokeRect","fillText","measureText","lineTo","quadraticCurveTo","setLineDash","getLineDash","strokeText","origSetter","origMethod","getGlobalCompositeOperation","_fillColor","_fillPattern","fillPatternX","getFillPatternX","fillPatternY","getFillPatternY","fillPatternRotation","getFillPatternRotation","fillPatternOffsetX","getFillPatternOffsetX","fillPatternOffsetY","getFillPatternOffsetY","fillPatternScaleX","getFillPatternScaleX","fillPatternScaleY","getFillPatternScaleY","_fillLinearGradient","_fillRadialGradient","hasColor","fillPriority","getFillPriority","hasPattern","getFillPatternImage","hasLinearGradient","getFillLinearGradientColorStops","hasRadialGradient","getFillRadialGradientColorStops","_strokeLinearGradient","getStrokeLinearGradientStartPoint","getStrokeLinearGradientEndPoint","getStrokeLinearGradientColorStops","dash","strokeScaleEnabled","getStrokeScaleEnabled","dashEnabled","dashOffset","getShadowForStrokeEnabled","getShadowBlur","getShadowOffset","Captures","SUPPORT_POINTER_EVENTS","createEvent","PointerEvent","getCapturedShape","BaseLayer","_waitingForDraw","_checkVisibility","_checkSmooth","createPNGStream","getHitCanvas","getIntersection","__spreadArrays","il","k","jl","Shape_1","Line","_sceneFunc","tp","closed","bezier","getTensionPoints","_getTensionPoints","_getTensionPointsClosed","firstControlPoints","lastControlPoints","middle","Path","dataArray","pathLength","parsePathData","ca","command","cx","cy","rx","ry","dTheta","psi","fs","inc","getPointOnEllipticalArc","getPointOnCubicBezier","getLength","getPointAtLength","ii","getPointOnLine","getPointOnQuadraticBezier","getLineLength","P1x","P1y","P2x","P2y","fromX","fromY","rise","ix","iy","pRise","pRun","pct","P3x","P3y","P4x","P4y","CB1","CB2","CB3","CB4","QB1","QB2","QB3","cosPsi","sinPsi","cs","cc","coords","cpx","cpy","re","jlen","prevCmd","ctlPtx","ctlPty","cmd","startX","startY","idx","convertEndpointToCenterParameterization","calcLength","path","psiDeg","xp","yp","lambda","f","cxp","cyp","vMag","vRatio","vAngle","acos","Rect","cornerRadius","topLeft","topRight","bottomLeft","bottomRight","Global_2","AUTO","JUSTIFY","LEFT","MIDDLE","NORMAL","ATTR_CHANGE_LIST","attrChangeListLen","trimRight","Text","checkDefaultFill","_partialTextX","_partialTextY","_setTextData","fontSize","lineHeightPx","lineHeight","textArr","textArrLen","verticalAlign","alignY","align","totalWidth","textDecoration","shouldUnderline","shouldLineThrough","translateY","lineTranslateX","lineTranslateY","_getContextFont","spacesNumber","oneWord","lineWidth","lastLine","strokeStyle","li","floor","_partialText","measureSize","_hitFunc","setText","getTextWidth","textWidth","getTextHeight","textHeight","metrics","font","fontStyle","fontFamily","fontVariant","_addTextLine","trim","_getTextWidth","lines","fixedWidth","fixedHeight","maxHeightPx","currentHeightPx","shouldWrap","wrapAtWord","shouldAddEllipsis","ellipsis","additionalWidth","low","high","matchWidth","mid","substrWidth","wrapIndex","nextChar","lastIndexOf","trimLeft","constants","characters","colorMappings","characterStates","faded","characterState","highlighted","demo","delayPerChar","delayPerReading","delay","maxDuration","readingText","charWidthMultiplier","rightColumnOffset","pinyin","Character","characterData","pinyinNode","sidebarNode","gridTween","sidebarTween","pinyinTween","x_coordinate","y_coordinate","createNode","character","newNode","fadeInNode","Reading","readingData","blockNumber","readingNumber","segments","block_number","xjt","segment","isLastSegment","play","segmentIds","segmentId","readingsData","reading","populateSegments","segment_ids","Segment","segmentData","tail","head_x","head_y","tail_x","tail_y","segmentsData","grid","populateCharacters","lineIndex","sidebarX","sidebarLineIndex","delayOffset","sidebarLineHeight","sidebarY","pinyinY","isRepeatChar","isHighlighted","highlight","sidebarChar","getSidebarNodeAt","pinyinX","sidebarPinyin","getPinyinNodeAt","addSidebarNode","fadeInSidebar","fadeInPinyin","isLastChar","continueRun","getCharAtCoordinates","isVertical","isHorizontal","Xuanjitu","readings","characterGrid","gridBackground","sidebarGroup","createState","createCharacterGrid","createStage","createLayers","createGridBackground","createSidebarGroup","initializeChars","createSegments","createReadings","render","playDemo","highlightedChars","includes","playNextReading","newCharacter","initialFadeIn","playReadings","playReading","currentReading","nextIndex","nextReading","fadeInChars","Layer","Stage","Sizzle","pseudos","getText","isXML","escapeSelector","escape","Expr","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","pushNative","booleans","whitespace","attributes","rwhitespace","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rinputs","rheader","rnative","rsibling","runescape","funescape","nonHex","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","els","seed","nid","groups","newSelector","newContext","getElementsByClassName","qsa","testContext","scope","toSelector","qsaError","keys","cacheLength","markFunction","assert","addHandle","attrHandle","siblingCheck","diff","sourceIndex","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespaceURI","hasCompare","subWindow","attachEvent","createComment","getById","getElementsByName","attrId","getAttributeNode","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","bp","specified","duplicates","detectDuplicates","sortStable","nodeValue","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","what","_argument","simple","forward","ofType","uniqueCache","outerCache","nodeIndex","useCache","uniqueID","pseudo","setFilters","matcher","unmatched","lang","elemLang","hash","hasFocus","_matchIndexes","radio","checkbox","file","password","image","submit","tokens","combinator","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","token","compiled","_name","_sizzle","noConflict","truncate","rerrorNames","stack","rbrace","rmultiDash","dataAttr","getData","removeData","_data","_removeData","defaultDisplayMap","getDefaultDisplay","body","values","eased","step","scrollTop","scrollLeft","linear","swing","boolHook","removeAttr","attrHooks","bool","attrNames","lowercaseName","stripAndCollapse","getClass","classesToArray","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","attaches","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","offsetHeight","xhr","XMLHttpRequest","xhrSuccessStatus","xhrSupported","cors","errorCallback","open","username","xhrFields","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","scriptAttrs","charset","scriptCharset","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","params","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","proxy","holdReady","hold","parseJSON","isNumeric","unbind","delegate","undelegate","hover","fnOver","fnOut","_jQuery","_$","$","noGlobal","_CoreInternals_1","Arc_1","Arrow_1","Circle_1","Ellipse_1","Image_1","Label_1","Line_1","Path_1","Rect_1","RegularPolygon_1","Ring_1","Sprite_1","Star_1","Text_1","TextPath_1","Transformer_1","Wedge_1","Blur_1","Brighten_1","Contrast_1","Emboss_1","Enhance_1","Grayscale_1","HSL_1","HSV_1","Invert_1","Kaleidoscope_1","Mask_1","Noise_1","Pixelate_1","Posterize_1","RGB_1","RGBA_1","Sepia_1","Solarize_1","Threshold_1","Arc","Arrow","Circle","Ellipse","Label","Tag","RegularPolygon","Ring","Sprite","Star","TextPath","Transformer","Wedge","Filters","Blur","Brighten","Contrast","Emboss","Enhance","Grayscale","HSL","HSV","Invert","Kaleidoscope","Mask","Noise","Pixelate","Posterize","RGB","RGBA","Sepia","Solarize","Threshold","Stage_1","Layer_1","FastLayer_1","Group_1","Animation_1","Tween_1","stages","FastLayer","Easings","Function","MOUSEOUT","MOUSEOVER","MOUSEMOVE","MOUSEDOWN","MOUSEUP","POINTERMOVE","POINTERDOWN","POINTERUP","CONTEXTMENU","CLICK","DBL_CLICK","TOUCHSTART","TOUCHEND","DBL_TAP","TOUCHMOVE","WHEEL","EVENTS","eventsLength","addEvent","eventName","checkNoClip","_pointerPositions","_buildDOM","_bindContentEvents","_resizeDOM","isLayer","isFastLayer","setContainer","parentElement","getPointerPosition","getPointersPositions","getContent","layerCanvas","_setCanvasSize","_mouseenter","_mouseover","_mouseout","targetShape","eventsEnabled","pointerPos","_mousemove","_touchmove","differentTarget","_mousedown","_touchstart","clickStartShape","_mouseup","_touchend","clickEndShape","fireDblClick","dblTimeout","_contextmenu","triggeredOnShape","tapStartShape","processedShapesIds","tapTriggered","dblTapTriggered","_wheel","_pointerdown","_pointermove","_pointerup","_pointercancel","_lostpointercapture","contentPosition","_getContentPosition","touch","_setPointerPosition","clientWidth","clientHeight","userSelect","BaseLayer_1","INTERSECTION_OFFSETS","INTERSECTION_OFFSETS_LEN","intersectionOffset","spiralSearchDistance","continueSearch","_getIntersection","antialiased","p3","clearBeforeDraw","enableHitGraph","disableHitGraph","toggleHitCanvas","blacklist","onFinish","yoyo","colorAttrs","TweenEngine","propFunc","begin","_pos","_change","prevPos","_time","_position","_startTime","_finish","pause","setTime","update","getTimer","onEnterFrame","seek","nodeId","Linear","_tweenFunc","_addListeners","_addAttr","onReset","tweenId","trueEnd","trueStart","endRGBA","startRGBA","onPlay","onReverse","onPause","thisId","BackEaseIn","BackEaseOut","BackEaseInOut","ElasticEaseIn","asin","ElasticEaseOut","ElasticEaseInOut","BounceEaseOut","BounceEaseIn","BounceEaseInOut","EaseIn","EaseOut","EaseInOut","StrongEaseIn","StrongEaseOut","StrongEaseInOut","clockwise","outerRadius","innerRadius","PI2","fromTension","radians","atan2","pointerLength","pointerWidth","pointerAtBeginning","isDashEnabled","lineRect","radius","radiusX","radiusY","cropWidth","cropHeight","cropX","cropY","fromURL","crossOrigin","UP","RIGHT","DOWN","_sync","getTag","pointerDirection","pointerHeight","direction","sides","PIx2","_updated","updated","frameIndex","clearInterval","_setInterval","ix4","offsets","frameOffsets","ix2","setInterval","_updateIndex","getIndex","setIndex","numPoints","partialText","dummyCanvas","kerningFunc","textBaseline","glyphInfo","p0","_getTextSize","textFullWidth","fullPathWidth","pathCmd","charArr","pIndex","currentT","getNextPathSegment","pathData","findSegmentToFitCharacter","glyphWidth","currLen","attempts","cumulativePathLength","needNewSegment","lettersInOffset","kern","midpoint","transposeX","transposeY","info","EVENTS_NAME","NODE_RECT","ANGLES","TOUCH_DEVICE","ANCHORS_NAMES","_transforming","_createElements","_handleMouseMove","_handleMouseUp","getNode","attachTo","setNode","_node","_resetTransformCache","additionalEvents","onChange","getActiveAnchor","_movingAnchorName","_getNodeRect","__getNodeRect","ignoreStroke","getX","getY","getRotation","_createBack","_createAnchor","anchor","_handleMouseDown","isMirrored","cursor","anchorName","getCursor","_cursorChange","back","rotateEnabled","rotateAnchorOffset","hypotenuse","newHypotenuse","anchorNode","keepProportion","keepRatio","reverseX","reverseY","dAlpha","rot","newRotation","alpha","newAlpha","snaps","rotationSnaps","rotationSnapTolerance","_fitNodeInto","centeredScaling","topOffsetX","topOffsetY","bottomOffsetX","bottomOffsetY","absPos","_removeEvents","newAttrs","boundBoxFunc","oldAttrs","pure","forceUpdate","invertedScale","enabledAnchors","resizeEnabled","anchorSize","anchorStroke","anchorStrokeWidth","anchorFill","anchorCornerRadius","scaledRotateAnchorOffset","borderEnabled","borderStroke","borderStrokeWidth","borderDash","isTransforming","stopTransform","lineEnabled","rotateHandlerOffset","enabledHandlers","getAngleDeg","setAngleDeg","BlurStack","mul_table","shg_table","yi","yw","r_sum","g_sum","b_sum","a_sum","r_out_sum","g_out_sum","b_out_sum","a_out_sum","r_in_sum","g_in_sum","b_in_sum","a_in_sum","pg","pb","pa","rbs","pixels","widthMinus1","heightMinus1","radiusPlus1","sumFactor","stackStart","stackEnd","stackIn","stackOut","mul_sum","shg_sum","filterGaussBlurRGBA","brightness","adjust","contrast","nPixels","strength","embossStrength","greyLevel","embossWhiteLevel","embossDirection","blend","embossBlend","dirY","dirX","w","w4","otherY","offsetYOther","otherX","offsetOther","dR","dG","dB","dif","absDif","remap","fromValue","fromMin","fromMax","toMin","toMax","fromRange","toRange","nSubPixels","rMin","rMax","gMin","gMax","bMin","bMax","enhanceAmount","enhance","rMid","rGoalMax","rGoalMin","gMid","gGoalMax","gGoalMin","bMid","bGoalMax","bGoalMin","saturation","hue","luminance","vsu","vsw","rr","rg","rb","gr","gg","gb","br","bg","bb","srcPos","dstPos","xSize","ySize","power","kaleidoscopePower","kaleidoscopeAngle","tempCanvas","scratchData","dst","srcPixels","dstPixels","xMid","polarCenterX","yMid","polarCenterY","rSize","tSize","conversion","ToPolar","minSectionSize","sectionSize","xStart","xEnd","xDelta","phaseShift","polarRotation","FromPolar","pixelAt","idata","rgbDistance","mask","threshold","rgbv_no","rgbv_ne","rgbv_so","rgbv_se","thres","mean","pTab","rgbMean","backgroundMask","applyMask","sw","sh","weights","side","halfSide","maskResult","so","scy","scx","wt","smoothEdgeMask","dilateMask","erodeMask","amount","noise","half","xBinStart","xBinEnd","yBinStart","yBinEnd","xBin","yBin","pixelsInBin","pixelSize","nBinsX","nBinsY","levels","ia","level","charactersResponse","segmentsResponse","readingsResponse","require","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","loadCSPNonce","ref","querySelector","cspNonce","Element","element","setData","csrfParam","csrfToken","meta","CSRFProtection","refreshCSRFTokens","CustomEvent","initCustomEvent","stopEverything","AcceptHeaders","createXHR","prepareOptions","processResponse","OPENED","accept","withCredentials","DONE","parser","isCrossDomain","serializeElement","additionalParam","inputs","formElements","form","allowAction","handleConfirm","confirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","link","action","isRemote","handleRemote","enctype","FormData","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","rails","_rails_loaded","createCommonjsModule","sparkMd5","factory","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","lo","hi","md51_array","subarray","Uint8Array","rhex","toUtf8","unescape","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arrayBuffer2Utf8Str","concatenateArrayBuffers","byteLength","buffer","hexToBinaryString","bytes","SparkMD5","clamp","from","targetArray","sourceArray","appendBinary","_buff","_length","_hash","getState","setState","hashBinary","classCallCheck","instance","Constructor","createClass","defineProperties","descriptor","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","chunkSize","chunkCount","chunkIndex","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","getMetaValue","findElement","findElements","toArray$1","eventInit","initEvent","BlobRecord","checksum","filename","content_type","byte_size","requestDidLoad","requestDidError","blob","direct_upload","directUploadData","_xhr","BlobUpload","_blob$directUploadDat","DirectUpload","upload","_len","messages","DirectUploadController","directUpload","hiddenInput","insertAdjacentElement","dispatchError","signed_id","loaded","total","alert","_this2","uploadRequestDidProgress","inputSelector","DirectUploadsController","files","controllers","createDirectUploadControllers","startNextController","controller","processingAttribute","submitButtonsByForm","WeakMap","started","didClick","didSubmitForm","didSubmitRemoteElement","tagName","handleFormSubmissionEvent","hasAttribute","enable","submitForm","autostart","ActiveStorage","channels","webpackEmptyContext","req"],"mappings":"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QACRuwB,EAAM90D,EAAEukC,QACR6wB,EAAM,IACNxtC,EAAOtnB,KAAKu0D,EAAKC,GACjB,MACF,IAAK,IACHI,EAASL,EACTM,EAASL,EAEe,OADxBG,EAAUlD,EAAGA,EAAGrwD,OAAS,IACbswD,UACVkD,EAASL,GAAOA,EAAMI,EAAQrtC,OAAO,IACrCutC,EAASL,GAAOA,EAAMG,EAAQrtC,OAAO,KAEvCA,EAAOtnB,KAAK40D,EAAQC,EAAQN,EAAM70D,EAAEukC,QAASuwB,EAAM90D,EAAEukC,SACrDswB,GAAO70D,EAAEukC,QACTuwB,GAAO90D,EAAEukC,QACT6wB,EAAM,IACNxtC,EAAOtnB,KAAKu0D,EAAKC,GACjB,MACF,IAAK,IACHltC,EAAOtnB,KAAKN,EAAEukC,QAASvkC,EAAEukC,SACzBswB,EAAM70D,EAAEukC,QACRuwB,EAAM90D,EAAEukC,QACR3c,EAAOtnB,KAAKu0D,EAAKC,GACjB,MACF,IAAK,IACHltC,EAAOtnB,KAAKu0D,EAAM70D,EAAEukC,QAASuwB,EAAM90D,EAAEukC,SACrCswB,GAAO70D,EAAEukC,QACTuwB,GAAO90D,EAAEukC,QACT6wB,EAAM,IACNxtC,EAAOtnB,KAAKu0D,EAAKC,GACjB,MACF,IAAK,IACHI,EAASL,EACTM,EAASL,EAEe,OADxBG,EAAUlD,EAAGA,EAAGrwD,OAAS,IACbswD,UACVkD,EAASL,GAAOA,EAAMI,EAAQrtC,OAAO,IACrCutC,EAASL,GAAOA,EAAMG,EAAQrtC,OAAO,KAEvCitC,EAAM70D,EAAEukC,QACRuwB,EAAM90D,EAAEukC,QACR6wB,EAAM,IACNxtC,EAAOtnB,KAAK40D,EAAQC,EAAQN,EAAKC,GACjC,MACF,IAAK,IACHI,EAASL,EACTM,EAASL,EAEe,OADxBG,EAAUlD,EAAGA,EAAGrwD,OAAS,IACbswD,UACVkD,EAASL,GAAOA,EAAMI,EAAQrtC,OAAO,IACrCutC,EAASL,GAAOA,EAAMG,EAAQrtC,OAAO,KAEvCitC,GAAO70D,EAAEukC,QACTuwB,GAAO90D,EAAEukC,QACT6wB,E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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,KACnwCC,EAAY,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,GA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","file":"js/application-d694ef00115913655385.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 167);\n","/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\ndefine([\"./var/arr\", \"./var/getProto\", \"./var/slice\", \"./var/flat\", \"./var/push\", \"./var/indexOf\", \"./var/class2type\", \"./var/toString\", \"./var/hasOwn\", \"./var/fnToString\", \"./var/ObjectFunctionString\", \"./var/support\", \"./var/isFunction\", \"./var/isWindow\", \"./core/DOMEval\", \"./core/toType\"], function (arr, getProto, slice, flat, push, indexOf, class2type, toString, hasOwn, fnToString, ObjectFunctionString, support, isFunction, isWindow, DOMEval, toType) {\n \"use strict\";\n\n var version = \"3.5.1\",\n // Define a local copy of jQuery\n jQuery = function (selector, context) {\n // The jQuery object is actually just the init constructor 'enhanced'\n // Need init if jQuery is called (just allow error to be thrown if not included)\n return new jQuery.fn.init(selector, context);\n };\n jQuery.fn = jQuery.prototype = {\n // The current version of jQuery being used\n jquery: version,\n constructor: jQuery,\n // The default length of a jQuery object is 0\n length: 0,\n toArray: function () {\n return slice.call(this);\n },\n // Get the Nth element in the matched element set OR\n // Get the whole matched element set as a clean array\n get: function (num) {\n // Return all the elements in a clean array\n if (num == null) {\n return slice.call(this);\n }\n\n // Return just the one element from the set\n return num < 0 ? this[num + this.length] : this[num];\n },\n // Take an array of elements and push it onto the stack\n // (returning the new matched element set)\n pushStack: function (elems) {\n // Build a new jQuery matched element set\n var ret = jQuery.merge(this.constructor(), elems);\n\n // Add the old object onto the stack (as a reference)\n ret.prevObject = this;\n\n // Return the newly-formed element set\n return ret;\n },\n // Execute a callback for every element in the matched set.\n each: function (callback) {\n return jQuery.each(this, callback);\n },\n map: function (callback) {\n return this.pushStack(jQuery.map(this, function (elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n slice: function () {\n return this.pushStack(slice.apply(this, arguments));\n },\n first: function () {\n return this.eq(0);\n },\n last: function () {\n return this.eq(-1);\n },\n even: function () {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return (i + 1) % 2;\n }));\n },\n odd: function () {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return i % 2;\n }));\n },\n eq: function (i) {\n var len = this.length,\n j = +i + (i < 0 ? len : 0);\n return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n },\n end: function () {\n return this.prevObject || this.constructor();\n },\n // For internal use only.\n // Behaves like an Array's method, not like a jQuery method.\n push: push,\n sort: arr.sort,\n splice: arr.splice\n };\n jQuery.extend = jQuery.fn.extend = function () {\n var options,\n name,\n src,\n copy,\n copyIsArray,\n clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false;\n\n // Handle a deep copy situation\n if (typeof target === \"boolean\") {\n deep = target;\n\n // Skip the boolean and the target\n target = arguments[i] || {};\n i++;\n }\n\n // Handle case when target is a string or something (possible in deep copy)\n if (typeof target !== \"object\" && !isFunction(target)) {\n target = {};\n }\n\n // Extend jQuery itself if only one argument is passed\n if (i === length) {\n target = this;\n i--;\n }\n for (; i < length; i++) {\n // Only deal with non-null/undefined values\n if ((options = arguments[i]) != null) {\n // Extend the base object\n for (name in options) {\n copy = options[name];\n\n // Prevent Object.prototype pollution\n // Prevent never-ending loop\n if (name === \"__proto__\" || target === copy) {\n continue;\n }\n\n // Recurse if we're merging plain objects or arrays\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n src = target[name];\n\n // Ensure proper type for the source value\n if (copyIsArray && !Array.isArray(src)) {\n clone = [];\n } else if (!copyIsArray && !jQuery.isPlainObject(src)) {\n clone = {};\n } else {\n clone = src;\n }\n copyIsArray = false;\n\n // Never move original objects, clone them\n target[name] = jQuery.extend(deep, clone, copy);\n\n // Don't bring in undefined values\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n }\n\n // Return the modified object\n return target;\n };\n jQuery.extend({\n // Unique for each copy of jQuery on the page\n expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n // Assume jQuery is ready without the ready module\n isReady: true,\n error: function (msg) {\n throw new Error(msg);\n },\n noop: function () {},\n isPlainObject: function (obj) {\n var proto, Ctor;\n\n // Detect obvious negatives\n // Use toString instead of jQuery.type to catch host objects\n if (!obj || toString.call(obj) !== \"[object Object]\") {\n return false;\n }\n proto = getProto(obj);\n\n // Objects with no prototype (e.g., `Object.create( null )`) are plain\n if (!proto) {\n return true;\n }\n\n // Objects with prototype are plain iff they were constructed by a global Object function\n Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n },\n isEmptyObject: function (obj) {\n var name;\n for (name in obj) {\n return false;\n }\n return true;\n },\n // Evaluates a script in a provided context; falls back to the global one\n // if not specified.\n globalEval: function (code, options, doc) {\n DOMEval(code, {\n nonce: options && options.nonce\n }, doc);\n },\n each: function (obj, callback) {\n var length,\n i = 0;\n if (isArrayLike(obj)) {\n length = obj.length;\n for (; i < length; i++) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n }\n return obj;\n },\n // results is for internal usage only\n makeArray: function (arr, results) {\n var ret = results || [];\n if (arr != null) {\n if (isArrayLike(Object(arr))) {\n jQuery.merge(ret, typeof arr === \"string\" ? [arr] : arr);\n } else {\n push.call(ret, arr);\n }\n }\n return ret;\n },\n inArray: function (elem, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, elem, i);\n },\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n merge: function (first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n for (; j < len; j++) {\n first[i++] = second[j];\n }\n first.length = i;\n return first;\n },\n grep: function (elems, callback, invert) {\n var callbackInverse,\n matches = [],\n i = 0,\n length = elems.length,\n callbackExpect = !invert;\n\n // Go through the array, only saving the items\n // that pass the validator function\n for (; i < length; i++) {\n callbackInverse = !callback(elems[i], i);\n if (callbackInverse !== callbackExpect) {\n matches.push(elems[i]);\n }\n }\n return matches;\n },\n // arg is for internal usage only\n map: function (elems, callback, arg) {\n var length,\n value,\n i = 0,\n ret = [];\n\n // Go through the array, translating each of the items to their new values\n if (isArrayLike(elems)) {\n length = elems.length;\n for (; i < length; i++) {\n value = callback(elems[i], i, arg);\n if (value != null) {\n ret.push(value);\n }\n }\n\n // Go through every key on the object,\n } else {\n for (i in elems) {\n value = callback(elems[i], i, arg);\n if (value != null) {\n ret.push(value);\n }\n }\n }\n\n // Flatten any nested arrays\n return flat(ret);\n },\n // A global GUID counter for objects\n guid: 1,\n // jQuery.support is not used in Core but other projects attach their\n // properties to it so it needs to exist.\n support: support\n });\n if (typeof Symbol === \"function\") {\n jQuery.fn[Symbol.iterator] = arr[Symbol.iterator];\n }\n\n // Populate the class2type map\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (_i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n function isArrayLike(obj) {\n // Support: real iOS 8.2 only (not reproducible in simulator)\n // `in` check used to prevent JIT error (gh-2145)\n // hasOwn isn't used here due to false negatives\n // regarding Nodelist length in IE\n var length = !!obj && \"length\" in obj && obj.length,\n type = toType(obj);\n if (isFunction(obj) || isWindow(obj)) {\n return false;\n }\n return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n return jQuery;\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"./Util\");\nvar Validators_1 = require(\"./Validators\");\nvar GET = 'get',\n SET = 'set';\nexports.Factory = {\n addGetterSetter: function (constructor, attr, def, validator, after) {\n this.addGetter(constructor, attr, def);\n this.addSetter(constructor, attr, validator, after);\n this.addOverloadedGetterSetter(constructor, attr);\n },\n addGetter: function (constructor, attr, def) {\n var method = GET + Util_1.Util._capitalize(attr);\n constructor.prototype[method] = constructor.prototype[method] || function () {\n var val = this.attrs[attr];\n return val === undefined ? def : val;\n };\n },\n addSetter: function (constructor, attr, validator, after) {\n var method = SET + Util_1.Util._capitalize(attr);\n if (!constructor.prototype[method]) {\n exports.Factory.overWriteSetter(constructor, attr, validator, after);\n }\n },\n overWriteSetter: function (constructor, attr, validator, after) {\n var method = SET + Util_1.Util._capitalize(attr);\n constructor.prototype[method] = function (val) {\n if (validator && val !== undefined && val !== null) {\n val = validator.call(this, val, attr);\n }\n this._setAttr(attr, val);\n if (after) {\n after.call(this);\n }\n return this;\n };\n },\n addComponentsGetterSetter: function (constructor, attr, components, validator, after) {\n var len = components.length,\n capitalize = Util_1.Util._capitalize,\n getter = GET + capitalize(attr),\n setter = SET + capitalize(attr),\n n,\n component;\n constructor.prototype[getter] = function () {\n var ret = {};\n for (n = 0; n < len; n++) {\n component = components[n];\n ret[component] = this.getAttr(attr + capitalize(component));\n }\n return ret;\n };\n var basicValidator = Validators_1.getComponentValidator(components);\n constructor.prototype[setter] = function (val) {\n var oldVal = this.attrs[attr],\n key;\n if (validator) {\n val = validator.call(this, val);\n }\n if (basicValidator) {\n basicValidator.call(this, val, attr);\n }\n for (key in val) {\n if (!val.hasOwnProperty(key)) {\n continue;\n }\n this._setAttr(attr + capitalize(key), val[key]);\n }\n this._fireChangeEvent(attr, oldVal, val);\n if (after) {\n after.call(this);\n }\n return this;\n };\n this.addOverloadedGetterSetter(constructor, attr);\n },\n addOverloadedGetterSetter: function (constructor, attr) {\n var capitalizedAttr = Util_1.Util._capitalize(attr),\n setter = SET + capitalizedAttr,\n getter = GET + capitalizedAttr;\n constructor.prototype[attr] = function () {\n if (arguments.length) {\n this[setter](arguments[0]);\n return this;\n }\n return this[getter]();\n };\n },\n addDeprecatedGetterSetter: function (constructor, attr, def, validator) {\n Util_1.Util.error('Adding deprecated ' + attr);\n var method = GET + Util_1.Util._capitalize(attr);\n var message = attr + ' property is deprecated and will be removed soon. Look at Konva change log for more information.';\n constructor.prototype[method] = function () {\n Util_1.Util.error(message);\n var val = this.attrs[attr];\n return val === undefined ? def : val;\n };\n this.addSetter(constructor, attr, validator, function () {\n Util_1.Util.error(message);\n });\n this.addOverloadedGetterSetter(constructor, attr);\n },\n backCompat: function (constructor, methods) {\n Util_1.Util.each(methods, function (oldMethodName, newMethodName) {\n var method = constructor.prototype[newMethodName];\n var oldGetter = GET + Util_1.Util._capitalize(oldMethodName);\n var oldSetter = SET + Util_1.Util._capitalize(oldMethodName);\n function deprecated() {\n method.apply(this, arguments);\n Util_1.Util.error('\"' + oldMethodName + '\" method is deprecated and will be removed soon. Use \"\"' + newMethodName + '\" instead.');\n }\n constructor.prototype[oldMethodName] = deprecated;\n constructor.prototype[oldGetter] = deprecated;\n constructor.prototype[oldSetter] = deprecated;\n });\n },\n afterSetFilter: function () {\n this._filterUpToDate = false;\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar PI_OVER_180 = Math.PI / 180;\nfunction detectBrowser() {\n return typeof window !== 'undefined' && ({}.toString.call(window) === '[object Window]' || {}.toString.call(window) === '[object global]');\n}\nvar _detectIE = function (ua) {\n var msie = ua.indexOf('msie ');\n if (msie > 0) {\n return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n }\n var trident = ua.indexOf('trident/');\n if (trident > 0) {\n var rv = ua.indexOf('rv:');\n return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n }\n var edge = ua.indexOf('edge/');\n if (edge > 0) {\n return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n }\n return false;\n};\nexports._parseUA = function (userAgent) {\n var ua = userAgent.toLowerCase(),\n match = /(chrome)[ /]([\\w.]+)/.exec(ua) || /(webkit)[ /]([\\w.]+)/.exec(ua) || /(opera)(?:.*version|)[ /]([\\w.]+)/.exec(ua) || /(msie) ([\\w.]+)/.exec(ua) || ua.indexOf('compatible') < 0 && /(mozilla)(?:.*? rv:([\\w.]+)|)/.exec(ua) || [],\n mobile = !!userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i),\n ieMobile = !!userAgent.match(/IEMobile/i);\n return {\n browser: match[1] || '',\n version: match[2] || '0',\n isIE: _detectIE(ua),\n mobile: mobile,\n ieMobile: ieMobile\n };\n};\nexports.glob = typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof WorkerGlobalScope !== 'undefined' ? self : {};\nexports.Konva = {\n _global: exports.glob,\n version: '4.2.2',\n isBrowser: detectBrowser(),\n isUnminified: /param/.test(function (param) {}.toString()),\n dblClickWindow: 400,\n getAngle: function (angle) {\n return exports.Konva.angleDeg ? angle * PI_OVER_180 : angle;\n },\n enableTrace: false,\n _pointerEventsEnabled: false,\n hitOnDragEnabled: false,\n captureTouchEventsEnabled: false,\n listenClickTap: false,\n inDblClickWindow: false,\n pixelRatio: undefined,\n dragDistance: 3,\n angleDeg: true,\n showWarnings: true,\n dragButtons: [0, 1],\n isDragging: function () {\n return exports.Konva['DD'].isDragging;\n },\n isDragReady: function () {\n return !!exports.Konva['DD'].node;\n },\n UA: exports._parseUA(exports.glob.navigator && exports.glob.navigator.userAgent || ''),\n document: exports.glob.document,\n _injectGlobal: function (Konva) {\n exports.glob.Konva = Konva;\n },\n _parseUA: exports._parseUA\n};\nexports._NODES_REGISTRY = {};\nexports._registerNode = function (NodeClass) {\n exports._NODES_REGISTRY[NodeClass.prototype.getClassName()] = NodeClass;\n exports.Konva[NodeClass.prototype.getClassName()] = NodeClass;\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Global_1 = require(\"./Global\");\nvar Util_1 = require(\"./Util\");\nfunction _formatValue(val) {\n if (Util_1.Util._isString(val)) {\n return '\"' + val + '\"';\n }\n if (Object.prototype.toString.call(val) === '[object Number]') {\n return val;\n }\n if (Util_1.Util._isBoolean(val)) {\n return val;\n }\n return Object.prototype.toString.call(val);\n}\nfunction RGBComponent(val) {\n if (val > 255) {\n return 255;\n } else if (val < 0) {\n return 0;\n }\n return Math.round(val);\n}\nexports.RGBComponent = RGBComponent;\nfunction alphaComponent(val) {\n if (val > 1) {\n return 1;\n } else if (val < 0.0001) {\n return 0.0001;\n }\n return val;\n}\nexports.alphaComponent = alphaComponent;\nfunction getNumberValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n if (!Util_1.Util._isNumber(val)) {\n Util_1.Util.warn(_formatValue(val) + ' is a not valid value for \"' + attr + '\" attribute. The value should be a number.');\n }\n return val;\n };\n }\n}\nexports.getNumberValidator = getNumberValidator;\nfunction getNumberOrAutoValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n var isNumber = Util_1.Util._isNumber(val);\n var isAuto = val === 'auto';\n if (!(isNumber || isAuto)) {\n Util_1.Util.warn(_formatValue(val) + ' is a not valid value for \"' + attr + '\" attribute. The value should be a number or \"auto\".');\n }\n return val;\n };\n }\n}\nexports.getNumberOrAutoValidator = getNumberOrAutoValidator;\nfunction getStringValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n if (!Util_1.Util._isString(val)) {\n Util_1.Util.warn(_formatValue(val) + ' is a not valid value for \"' + attr + '\" attribute. The value should be a string.');\n }\n return val;\n };\n }\n}\nexports.getStringValidator = getStringValidator;\nfunction getFunctionValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n if (!Util_1.Util._isFunction(val)) {\n Util_1.Util.warn(_formatValue(val) + ' is a not valid value for \"' + attr + '\" attribute. The value should be a function.');\n }\n return val;\n };\n }\n}\nexports.getFunctionValidator = getFunctionValidator;\nfunction getNumberArrayValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n if (!Util_1.Util._isArray(val)) {\n Util_1.Util.warn(_formatValue(val) + ' is a not valid value for \"' + attr + '\" attribute. The value should be a array of numbers.');\n } else {\n val.forEach(function (item) {\n if (!Util_1.Util._isNumber(item)) {\n Util_1.Util.warn('\"' + attr + '\" attribute has non numeric element ' + item + '. Make sure that all elements are numbers.');\n }\n });\n }\n return val;\n };\n }\n}\nexports.getNumberArrayValidator = getNumberArrayValidator;\nfunction getBooleanValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n var isBool = val === true || val === false;\n if (!isBool) {\n Util_1.Util.warn(_formatValue(val) + ' is a not valid value for \"' + attr + '\" attribute. The value should be a boolean.');\n }\n return val;\n };\n }\n}\nexports.getBooleanValidator = getBooleanValidator;\nfunction getComponentValidator(components) {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n if (!Util_1.Util.isObject(val)) {\n Util_1.Util.warn(_formatValue(val) + ' is a not valid value for \"' + attr + '\" attribute. The value should be an object with properties ' + components);\n }\n return val;\n };\n }\n}\nexports.getComponentValidator = getComponentValidator;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Global_1 = require(\"./Global\");\nvar Collection = function () {\n function Collection() {}\n Collection.toCollection = function (arr) {\n var collection = new Collection(),\n len = arr.length,\n n;\n for (n = 0; n < len; n++) {\n collection.push(arr[n]);\n }\n return collection;\n };\n Collection._mapMethod = function (methodName) {\n Collection.prototype[methodName] = function () {\n var len = this.length,\n i;\n var args = [].slice.call(arguments);\n for (i = 0; i < len; i++) {\n this[i][methodName].apply(this[i], args);\n }\n return this;\n };\n };\n Collection.mapMethods = function (constructor) {\n var prot = constructor.prototype;\n for (var methodName in prot) {\n Collection._mapMethod(methodName);\n }\n };\n return Collection;\n}();\nexports.Collection = Collection;\nCollection.prototype = [];\nCollection.prototype.each = function (func) {\n for (var n = 0; n < this.length; n++) {\n func(this[n], n);\n }\n};\nCollection.prototype.toArray = function () {\n var arr = [],\n len = this.length,\n n;\n for (n = 0; n < len; n++) {\n arr.push(this[n]);\n }\n return arr;\n};\nvar Transform = function () {\n function Transform(m) {\n if (m === void 0) {\n m = [1, 0, 0, 1, 0, 0];\n }\n this.m = m && m.slice() || [1, 0, 0, 1, 0, 0];\n }\n Transform.prototype.copy = function () {\n return new Transform(this.m);\n };\n Transform.prototype.point = function (point) {\n var m = this.m;\n return {\n x: m[0] * point.x + m[2] * point.y + m[4],\n y: m[1] * point.x + m[3] * point.y + m[5]\n };\n };\n Transform.prototype.translate = function (x, y) {\n this.m[4] += this.m[0] * x + this.m[2] * y;\n this.m[5] += this.m[1] * x + this.m[3] * y;\n return this;\n };\n Transform.prototype.scale = function (sx, sy) {\n this.m[0] *= sx;\n this.m[1] *= sx;\n this.m[2] *= sy;\n this.m[3] *= sy;\n return this;\n };\n Transform.prototype.rotate = function (rad) {\n var c = Math.cos(rad);\n var s = Math.sin(rad);\n var m11 = this.m[0] * c + this.m[2] * s;\n var m12 = this.m[1] * c + this.m[3] * s;\n var m21 = this.m[0] * -s + this.m[2] * c;\n var m22 = this.m[1] * -s + this.m[3] * c;\n this.m[0] = m11;\n this.m[1] = m12;\n this.m[2] = m21;\n this.m[3] = m22;\n return this;\n };\n Transform.prototype.getTranslation = function () {\n return {\n x: this.m[4],\n y: this.m[5]\n };\n };\n Transform.prototype.skew = function (sx, sy) {\n var m11 = this.m[0] + this.m[2] * sy;\n var m12 = this.m[1] + this.m[3] * sy;\n var m21 = this.m[2] + this.m[0] * sx;\n var m22 = this.m[3] + this.m[1] * sx;\n this.m[0] = m11;\n this.m[1] = m12;\n this.m[2] = m21;\n this.m[3] = m22;\n return this;\n };\n Transform.prototype.multiply = function (matrix) {\n var m11 = this.m[0] * matrix.m[0] + this.m[2] * matrix.m[1];\n var m12 = this.m[1] * matrix.m[0] + this.m[3] * matrix.m[1];\n var m21 = this.m[0] * matrix.m[2] + this.m[2] * matrix.m[3];\n var m22 = this.m[1] * matrix.m[2] + this.m[3] * matrix.m[3];\n var dx = this.m[0] * matrix.m[4] + this.m[2] * matrix.m[5] + this.m[4];\n var dy = this.m[1] * matrix.m[4] + this.m[3] * matrix.m[5] + this.m[5];\n this.m[0] = m11;\n this.m[1] = m12;\n this.m[2] = m21;\n this.m[3] = m22;\n this.m[4] = dx;\n this.m[5] = dy;\n return this;\n };\n Transform.prototype.invert = function () {\n var d = 1 / (this.m[0] * this.m[3] - this.m[1] * this.m[2]);\n var m0 = this.m[3] * d;\n var m1 = -this.m[1] * d;\n var m2 = -this.m[2] * d;\n var m3 = this.m[0] * d;\n var m4 = d * (this.m[2] * this.m[5] - this.m[3] * this.m[4]);\n var m5 = d * (this.m[1] * this.m[4] - this.m[0] * this.m[5]);\n this.m[0] = m0;\n this.m[1] = m1;\n this.m[2] = m2;\n this.m[3] = m3;\n this.m[4] = m4;\n this.m[5] = m5;\n return this;\n };\n Transform.prototype.getMatrix = function () {\n return this.m;\n };\n Transform.prototype.setAbsolutePosition = function (x, y) {\n var m0 = this.m[0],\n m1 = this.m[1],\n m2 = this.m[2],\n m3 = this.m[3],\n m4 = this.m[4],\n m5 = this.m[5],\n yt = (m0 * (y - m5) - m1 * (x - m4)) / (m0 * m3 - m1 * m2),\n xt = (x - m4 - m2 * yt) / m0;\n return this.translate(xt, yt);\n };\n return Transform;\n}();\nexports.Transform = Transform;\nvar OBJECT_ARRAY = '[object Array]',\n OBJECT_NUMBER = '[object Number]',\n OBJECT_STRING = '[object String]',\n OBJECT_BOOLEAN = '[object Boolean]',\n PI_OVER_DEG180 = Math.PI / 180,\n DEG180_OVER_PI = 180 / Math.PI,\n HASH = '#',\n EMPTY_STRING = '',\n ZERO = '0',\n KONVA_WARNING = 'Konva warning: ',\n KONVA_ERROR = 'Konva error: ',\n RGB_PAREN = 'rgb(',\n COLORS = {\n aliceblue: [240, 248, 255],\n antiquewhite: [250, 235, 215],\n aqua: [0, 255, 255],\n aquamarine: [127, 255, 212],\n azure: [240, 255, 255],\n beige: [245, 245, 220],\n bisque: [255, 228, 196],\n black: [0, 0, 0],\n blanchedalmond: [255, 235, 205],\n blue: [0, 0, 255],\n blueviolet: [138, 43, 226],\n brown: [165, 42, 42],\n burlywood: [222, 184, 135],\n cadetblue: [95, 158, 160],\n chartreuse: [127, 255, 0],\n chocolate: [210, 105, 30],\n coral: [255, 127, 80],\n cornflowerblue: [100, 149, 237],\n cornsilk: [255, 248, 220],\n crimson: [220, 20, 60],\n cyan: [0, 255, 255],\n darkblue: [0, 0, 139],\n darkcyan: [0, 139, 139],\n darkgoldenrod: [184, 132, 11],\n darkgray: [169, 169, 169],\n darkgreen: [0, 100, 0],\n darkgrey: [169, 169, 169],\n darkkhaki: [189, 183, 107],\n darkmagenta: [139, 0, 139],\n darkolivegreen: [85, 107, 47],\n darkorange: [255, 140, 0],\n darkorchid: [153, 50, 204],\n darkred: [139, 0, 0],\n darksalmon: [233, 150, 122],\n darkseagreen: [143, 188, 143],\n darkslateblue: [72, 61, 139],\n darkslategray: [47, 79, 79],\n darkslategrey: [47, 79, 79],\n darkturquoise: [0, 206, 209],\n darkviolet: [148, 0, 211],\n deeppink: [255, 20, 147],\n deepskyblue: [0, 191, 255],\n dimgray: [105, 105, 105],\n dimgrey: [105, 105, 105],\n dodgerblue: [30, 144, 255],\n firebrick: [178, 34, 34],\n floralwhite: [255, 255, 240],\n forestgreen: [34, 139, 34],\n fuchsia: [255, 0, 255],\n gainsboro: [220, 220, 220],\n ghostwhite: [248, 248, 255],\n gold: [255, 215, 0],\n goldenrod: [218, 165, 32],\n gray: [128, 128, 128],\n green: [0, 128, 0],\n greenyellow: [173, 255, 47],\n grey: [128, 128, 128],\n honeydew: [240, 255, 240],\n hotpink: [255, 105, 180],\n indianred: [205, 92, 92],\n indigo: [75, 0, 130],\n ivory: [255, 255, 240],\n khaki: [240, 230, 140],\n lavender: [230, 230, 250],\n lavenderblush: [255, 240, 245],\n lawngreen: [124, 252, 0],\n lemonchiffon: [255, 250, 205],\n lightblue: [173, 216, 230],\n lightcoral: [240, 128, 128],\n lightcyan: [224, 255, 255],\n lightgoldenrodyellow: [250, 250, 210],\n lightgray: [211, 211, 211],\n lightgreen: [144, 238, 144],\n lightgrey: [211, 211, 211],\n lightpink: [255, 182, 193],\n lightsalmon: [255, 160, 122],\n lightseagreen: [32, 178, 170],\n lightskyblue: [135, 206, 250],\n lightslategray: [119, 136, 153],\n lightslategrey: [119, 136, 153],\n lightsteelblue: [176, 196, 222],\n lightyellow: [255, 255, 224],\n lime: [0, 255, 0],\n limegreen: [50, 205, 50],\n linen: [250, 240, 230],\n magenta: [255, 0, 255],\n maroon: [128, 0, 0],\n mediumaquamarine: [102, 205, 170],\n mediumblue: [0, 0, 205],\n mediumorchid: [186, 85, 211],\n mediumpurple: [147, 112, 219],\n mediumseagreen: [60, 179, 113],\n mediumslateblue: [123, 104, 238],\n mediumspringgreen: [0, 250, 154],\n mediumturquoise: [72, 209, 204],\n mediumvioletred: [199, 21, 133],\n midnightblue: [25, 25, 112],\n mintcream: [245, 255, 250],\n mistyrose: [255, 228, 225],\n moccasin: [255, 228, 181],\n navajowhite: [255, 222, 173],\n navy: [0, 0, 128],\n oldlace: [253, 245, 230],\n olive: [128, 128, 0],\n olivedrab: [107, 142, 35],\n orange: [255, 165, 0],\n orangered: [255, 69, 0],\n orchid: [218, 112, 214],\n palegoldenrod: [238, 232, 170],\n palegreen: [152, 251, 152],\n paleturquoise: [175, 238, 238],\n palevioletred: [219, 112, 147],\n papayawhip: [255, 239, 213],\n peachpuff: [255, 218, 185],\n peru: [205, 133, 63],\n pink: [255, 192, 203],\n plum: [221, 160, 203],\n powderblue: [176, 224, 230],\n purple: [128, 0, 128],\n rebeccapurple: [102, 51, 153],\n red: [255, 0, 0],\n rosybrown: [188, 143, 143],\n royalblue: [65, 105, 225],\n saddlebrown: [139, 69, 19],\n salmon: [250, 128, 114],\n sandybrown: [244, 164, 96],\n seagreen: [46, 139, 87],\n seashell: [255, 245, 238],\n sienna: [160, 82, 45],\n silver: [192, 192, 192],\n skyblue: [135, 206, 235],\n slateblue: [106, 90, 205],\n slategray: [119, 128, 144],\n slategrey: [119, 128, 144],\n snow: [255, 255, 250],\n springgreen: [0, 255, 127],\n steelblue: [70, 130, 180],\n tan: [210, 180, 140],\n teal: [0, 128, 128],\n thistle: [216, 191, 216],\n transparent: [255, 255, 255, 0],\n tomato: [255, 99, 71],\n turquoise: [64, 224, 208],\n violet: [238, 130, 238],\n wheat: [245, 222, 179],\n white: [255, 255, 255],\n whitesmoke: [245, 245, 245],\n yellow: [255, 255, 0],\n yellowgreen: [154, 205, 5]\n },\n RGB_REGEX = /rgb\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3})\\)/,\n animQueue = [];\nexports.Util = {\n _isElement: function (obj) {\n return !!(obj && obj.nodeType == 1);\n },\n _isFunction: function (obj) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n },\n _isPlainObject: function (obj) {\n return !!obj && obj.constructor === Object;\n },\n _isArray: function (obj) {\n return Object.prototype.toString.call(obj) === OBJECT_ARRAY;\n },\n _isNumber: function (obj) {\n return Object.prototype.toString.call(obj) === OBJECT_NUMBER && !isNaN(obj) && isFinite(obj);\n },\n _isString: function (obj) {\n return Object.prototype.toString.call(obj) === OBJECT_STRING;\n },\n _isBoolean: function (obj) {\n return Object.prototype.toString.call(obj) === OBJECT_BOOLEAN;\n },\n isObject: function (val) {\n return val instanceof Object;\n },\n isValidSelector: function (selector) {\n if (typeof selector !== 'string') {\n return false;\n }\n var firstChar = selector[0];\n return firstChar === '#' || firstChar === '.' || firstChar === firstChar.toUpperCase();\n },\n _sign: function (number) {\n if (number === 0) {\n return 0;\n }\n if (number > 0) {\n return 1;\n } else {\n return -1;\n }\n },\n requestAnimFrame: function (callback) {\n animQueue.push(callback);\n if (animQueue.length === 1) {\n requestAnimationFrame(function () {\n var queue = animQueue;\n animQueue = [];\n queue.forEach(function (cb) {\n cb();\n });\n });\n }\n },\n createCanvasElement: function () {\n var canvas = document.createElement('canvas');\n try {\n canvas.style = canvas.style || {};\n } catch (e) {}\n return canvas;\n },\n createImageElement: function () {\n return document.createElement('img');\n },\n _isInDocument: function (el) {\n while (el = el.parentNode) {\n if (el == document) {\n return true;\n }\n }\n return false;\n },\n _simplifyArray: function (arr) {\n var retArr = [],\n len = arr.length,\n util = exports.Util,\n n,\n val;\n for (n = 0; n < len; n++) {\n val = arr[n];\n if (util._isNumber(val)) {\n val = Math.round(val * 1000) / 1000;\n } else if (!util._isString(val)) {\n val = val.toString();\n }\n retArr.push(val);\n }\n return retArr;\n },\n _urlToImage: function (url, callback) {\n var imageObj = new Global_1.glob.Image();\n imageObj.onload = function () {\n callback(imageObj);\n };\n imageObj.src = url;\n },\n _rgbToHex: function (r, g, b) {\n return ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\n },\n _hexToRgb: function (hex) {\n hex = hex.replace(HASH, EMPTY_STRING);\n var bigint = parseInt(hex, 16);\n return {\n r: bigint >> 16 & 255,\n g: bigint >> 8 & 255,\n b: bigint & 255\n };\n },\n getRandomColor: function () {\n var randColor = (Math.random() * 0xffffff << 0).toString(16);\n while (randColor.length < 6) {\n randColor = ZERO + randColor;\n }\n return HASH + randColor;\n },\n get: function (val, def) {\n if (val === undefined) {\n return def;\n } else {\n return val;\n }\n },\n getRGB: function (color) {\n var rgb;\n if (color in COLORS) {\n rgb = COLORS[color];\n return {\n r: rgb[0],\n g: rgb[1],\n b: rgb[2]\n };\n } else if (color[0] === HASH) {\n return this._hexToRgb(color.substring(1));\n } else if (color.substr(0, 4) === RGB_PAREN) {\n rgb = RGB_REGEX.exec(color.replace(/ /g, ''));\n return {\n r: parseInt(rgb[1], 10),\n g: parseInt(rgb[2], 10),\n b: parseInt(rgb[3], 10)\n };\n } else {\n return {\n r: 0,\n g: 0,\n b: 0\n };\n }\n },\n colorToRGBA: function (str) {\n str = str || 'black';\n return exports.Util._namedColorToRBA(str) || exports.Util._hex3ColorToRGBA(str) || exports.Util._hex6ColorToRGBA(str) || exports.Util._rgbColorToRGBA(str) || exports.Util._rgbaColorToRGBA(str) || exports.Util._hslColorToRGBA(str);\n },\n _namedColorToRBA: function (str) {\n var c = COLORS[str.toLowerCase()];\n if (!c) {\n return null;\n }\n return {\n r: c[0],\n g: c[1],\n b: c[2],\n a: 1\n };\n },\n _rgbColorToRGBA: function (str) {\n if (str.indexOf('rgb(') === 0) {\n str = str.match(/rgb\\(([^)]+)\\)/)[1];\n var parts = str.split(/ *, */).map(Number);\n return {\n r: parts[0],\n g: parts[1],\n b: parts[2],\n a: 1\n };\n }\n },\n _rgbaColorToRGBA: function (str) {\n if (str.indexOf('rgba(') === 0) {\n str = str.match(/rgba\\(([^)]+)\\)/)[1];\n var parts = str.split(/ *, */).map(Number);\n return {\n r: parts[0],\n g: parts[1],\n b: parts[2],\n a: parts[3]\n };\n }\n },\n _hex6ColorToRGBA: function (str) {\n if (str[0] === '#' && str.length === 7) {\n return {\n r: parseInt(str.slice(1, 3), 16),\n g: parseInt(str.slice(3, 5), 16),\n b: parseInt(str.slice(5, 7), 16),\n a: 1\n };\n }\n },\n _hex3ColorToRGBA: function (str) {\n if (str[0] === '#' && str.length === 4) {\n return {\n r: parseInt(str[1] + str[1], 16),\n g: parseInt(str[2] + str[2], 16),\n b: parseInt(str[3] + str[3], 16),\n a: 1\n };\n }\n },\n _hslColorToRGBA: function (str) {\n if (/hsl\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%\\)/g.test(str)) {\n var _a = /hsl\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%\\)/g.exec(str),\n _ = _a[0],\n hsl = _a.slice(1);\n var h = Number(hsl[0]) / 360;\n var s = Number(hsl[1]) / 100;\n var l = Number(hsl[2]) / 100;\n var t2 = void 0;\n var t3 = void 0;\n var val = void 0;\n if (s === 0) {\n val = l * 255;\n return {\n r: Math.round(val),\n g: Math.round(val),\n b: Math.round(val),\n a: 1\n };\n }\n if (l < 0.5) {\n t2 = l * (1 + s);\n } else {\n t2 = l + s - l * s;\n }\n var t1 = 2 * l - t2;\n var rgb = [0, 0, 0];\n for (var i = 0; i < 3; i++) {\n t3 = h + 1 / 3 * -(i - 1);\n if (t3 < 0) {\n t3++;\n }\n if (t3 > 1) {\n t3--;\n }\n if (6 * t3 < 1) {\n val = t1 + (t2 - t1) * 6 * t3;\n } else if (2 * t3 < 1) {\n val = t2;\n } else if (3 * t3 < 2) {\n val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n } else {\n val = t1;\n }\n rgb[i] = val * 255;\n }\n return {\n r: Math.round(rgb[0]),\n g: Math.round(rgb[1]),\n b: Math.round(rgb[2]),\n a: 1\n };\n }\n },\n haveIntersection: function (r1, r2) {\n return !(r2.x > r1.x + r1.width || r2.x + r2.width < r1.x || r2.y > r1.y + r1.height || r2.y + r2.height < r1.y);\n },\n cloneObject: function (obj) {\n var retObj = {};\n for (var key in obj) {\n if (this._isPlainObject(obj[key])) {\n retObj[key] = this.cloneObject(obj[key]);\n } else if (this._isArray(obj[key])) {\n retObj[key] = this.cloneArray(obj[key]);\n } else {\n retObj[key] = obj[key];\n }\n }\n return retObj;\n },\n cloneArray: function (arr) {\n return arr.slice(0);\n },\n _degToRad: function (deg) {\n return deg * PI_OVER_DEG180;\n },\n _radToDeg: function (rad) {\n return rad * DEG180_OVER_PI;\n },\n _capitalize: function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n },\n throw: function (str) {\n throw new Error(KONVA_ERROR + str);\n },\n error: function (str) {\n console.error(KONVA_ERROR + str);\n },\n warn: function (str) {\n if (!Global_1.Konva.showWarnings) {\n return;\n }\n console.warn(KONVA_WARNING + str);\n },\n extend: function (child, parent) {\n function Ctor() {\n this.constructor = child;\n }\n Ctor.prototype = parent.prototype;\n var oldProto = child.prototype;\n child.prototype = new Ctor();\n for (var key in oldProto) {\n if (oldProto.hasOwnProperty(key)) {\n child.prototype[key] = oldProto[key];\n }\n }\n child.__super__ = parent.prototype;\n child.super = parent;\n },\n _getControlPoints: function (x0, y0, x1, y1, x2, y2, t) {\n var d01 = Math.sqrt(Math.pow(x1 - x0, 2) + Math.pow(y1 - y0, 2)),\n d12 = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2)),\n fa = t * d01 / (d01 + d12),\n fb = t * d12 / (d01 + d12),\n p1x = x1 - fa * (x2 - x0),\n p1y = y1 - fa * (y2 - y0),\n p2x = x1 + fb * (x2 - x0),\n p2y = y1 + fb * (y2 - y0);\n return [p1x, p1y, p2x, p2y];\n },\n _expandPoints: function (p, tension) {\n var len = p.length,\n allPoints = [],\n n,\n cp;\n for (n = 2; n < len - 2; n += 2) {\n cp = exports.Util._getControlPoints(p[n - 2], p[n - 1], p[n], p[n + 1], p[n + 2], p[n + 3], tension);\n allPoints.push(cp[0]);\n allPoints.push(cp[1]);\n allPoints.push(p[n]);\n allPoints.push(p[n + 1]);\n allPoints.push(cp[2]);\n allPoints.push(cp[3]);\n }\n return allPoints;\n },\n each: function (obj, func) {\n for (var key in obj) {\n func(key, obj[key]);\n }\n },\n _inRange: function (val, left, right) {\n return left <= val && val < right;\n },\n _getProjectionToSegment: function (x1, y1, x2, y2, x3, y3) {\n var x, y, dist;\n var pd2 = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);\n if (pd2 == 0) {\n x = x1;\n y = y1;\n dist = (x3 - x2) * (x3 - x2) + (y3 - y2) * (y3 - y2);\n } else {\n var u = ((x3 - x1) * (x2 - x1) + (y3 - y1) * (y2 - y1)) / pd2;\n if (u < 0) {\n x = x1;\n y = y1;\n dist = (x1 - x3) * (x1 - x3) + (y1 - y3) * (y1 - y3);\n } else if (u > 1.0) {\n x = x2;\n y = y2;\n dist = (x2 - x3) * (x2 - x3) + (y2 - y3) * (y2 - y3);\n } else {\n x = x1 + u * (x2 - x1);\n y = y1 + u * (y2 - y1);\n dist = (x - x3) * (x - x3) + (y - y3) * (y - y3);\n }\n }\n return [x, y, dist];\n },\n _getProjectionToLine: function (pt, line, isClosed) {\n var pc = exports.Util.cloneObject(pt);\n var dist = Number.MAX_VALUE;\n line.forEach(function (p1, i) {\n if (!isClosed && i === line.length - 1) {\n return;\n }\n var p2 = line[(i + 1) % line.length];\n var proj = exports.Util._getProjectionToSegment(p1.x, p1.y, p2.x, p2.y, pt.x, pt.y);\n var px = proj[0],\n py = proj[1],\n pdist = proj[2];\n if (pdist < dist) {\n pc.x = px;\n pc.y = py;\n dist = pdist;\n }\n });\n return pc;\n },\n _prepareArrayForTween: function (startArray, endArray, isClosed) {\n var n,\n start = [],\n end = [];\n if (startArray.length > endArray.length) {\n var temp = endArray;\n endArray = startArray;\n startArray = temp;\n }\n for (n = 0; n < startArray.length; n += 2) {\n start.push({\n x: startArray[n],\n y: startArray[n + 1]\n });\n }\n for (n = 0; n < endArray.length; n += 2) {\n end.push({\n x: endArray[n],\n y: endArray[n + 1]\n });\n }\n var newStart = [];\n end.forEach(function (point) {\n var pr = exports.Util._getProjectionToLine(point, start, isClosed);\n newStart.push(pr.x);\n newStart.push(pr.y);\n });\n return newStart;\n },\n _prepareToStringify: function (obj) {\n var desc;\n obj.visitedByCircularReferenceRemoval = true;\n for (var key in obj) {\n if (!(obj.hasOwnProperty(key) && obj[key] && typeof obj[key] == 'object')) {\n continue;\n }\n desc = Object.getOwnPropertyDescriptor(obj, key);\n if (obj[key].visitedByCircularReferenceRemoval || exports.Util._isElement(obj[key])) {\n if (desc.configurable) {\n delete obj[key];\n } else {\n return null;\n }\n } else if (exports.Util._prepareToStringify(obj[key]) === null) {\n if (desc.configurable) {\n delete obj[key];\n } else {\n return null;\n }\n }\n }\n delete obj.visitedByCircularReferenceRemoval;\n return obj;\n },\n _assign: function (target, source) {\n for (var key in source) {\n target[key] = source[key];\n }\n return target;\n },\n _getFirstPointerId: function (evt) {\n if (!evt.touches) {\n return 999;\n } else {\n return evt.changedTouches[0].identifier;\n }\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"./Util\");\nvar Factory_1 = require(\"./Factory\");\nvar Canvas_1 = require(\"./Canvas\");\nvar Global_1 = require(\"./Global\");\nvar DragAndDrop_1 = require(\"./DragAndDrop\");\nvar Validators_1 = require(\"./Validators\");\nexports.ids = {};\nexports.names = {};\nvar _addId = function (node, id) {\n if (!id) {\n return;\n }\n exports.ids[id] = node;\n};\nexports._removeId = function (id, node) {\n if (!id) {\n return;\n }\n if (exports.ids[id] !== node) {\n return;\n }\n delete exports.ids[id];\n};\nexports._addName = function (node, name) {\n if (name) {\n if (!exports.names[name]) {\n exports.names[name] = [];\n }\n exports.names[name].push(node);\n }\n};\nexports._removeName = function (name, _id) {\n if (!name) {\n return;\n }\n var nodes = exports.names[name];\n if (!nodes) {\n return;\n }\n for (var n = 0; n < nodes.length; n++) {\n var no = nodes[n];\n if (no._id === _id) {\n nodes.splice(n, 1);\n }\n }\n if (nodes.length === 0) {\n delete exports.names[name];\n }\n};\nvar ABSOLUTE_OPACITY = 'absoluteOpacity',\n ABSOLUTE_TRANSFORM = 'absoluteTransform',\n ABSOLUTE_SCALE = 'absoluteScale',\n CANVAS = 'canvas',\n CHANGE = 'Change',\n CHILDREN = 'children',\n KONVA = 'konva',\n LISTENING = 'listening',\n MOUSEENTER = 'mouseenter',\n MOUSELEAVE = 'mouseleave',\n NAME = 'name',\n SET = 'set',\n SHAPE = 'Shape',\n SPACE = ' ',\n STAGE = 'stage',\n TRANSFORM = 'transform',\n UPPER_STAGE = 'Stage',\n VISIBLE = 'visible',\n CLONE_BLACK_LIST = ['id'],\n TRANSFORM_CHANGE_STR = ['xChange.konva', 'yChange.konva', 'scaleXChange.konva', 'scaleYChange.konva', 'skewXChange.konva', 'skewYChange.konva', 'rotationChange.konva', 'offsetXChange.konva', 'offsetYChange.konva', 'transformsEnabledChange.konva'].join(SPACE),\n SCALE_CHANGE_STR = ['scaleXChange.konva', 'scaleYChange.konva'].join(SPACE);\nvar emptyChildren = new Util_1.Collection();\nvar idCounter = 1;\nvar Node = function () {\n function Node(config) {\n var _this = this;\n this._id = idCounter++;\n this.eventListeners = {};\n this.attrs = {};\n this.index = 0;\n this.parent = null;\n this._cache = new Map();\n this._lastPos = null;\n this._filterUpToDate = false;\n this._isUnderCache = false;\n this.children = emptyChildren;\n this._dragEventId = null;\n this.setAttrs(config);\n this.on(TRANSFORM_CHANGE_STR, function () {\n _this._clearCache(TRANSFORM);\n _this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);\n });\n this.on(SCALE_CHANGE_STR, function () {\n _this._clearSelfAndDescendantCache(ABSOLUTE_SCALE);\n });\n this.on('visibleChange.konva', function () {\n _this._clearSelfAndDescendantCache(VISIBLE);\n });\n this.on('listeningChange.konva', function () {\n _this._clearSelfAndDescendantCache(LISTENING);\n });\n this.on('opacityChange.konva', function () {\n _this._clearSelfAndDescendantCache(ABSOLUTE_OPACITY);\n });\n }\n Node.prototype.hasChildren = function () {\n return false;\n };\n Node.prototype.getChildren = function () {\n return emptyChildren;\n };\n Node.prototype._clearCache = function (attr) {\n if (attr) {\n this._cache.delete(attr);\n } else {\n this._cache.clear();\n }\n };\n Node.prototype._getCache = function (attr, privateGetter) {\n var cache = this._cache.get(attr);\n if (cache === undefined) {\n cache = privateGetter.call(this);\n this._cache.set(attr, cache);\n }\n return cache;\n };\n Node.prototype._getCanvasCache = function () {\n return this._cache.get(CANVAS);\n };\n Node.prototype._clearSelfAndDescendantCache = function (attr) {\n this._clearCache(attr);\n if (this.isCached()) {\n return;\n }\n if (this.children) {\n this.children.each(function (node) {\n node._clearSelfAndDescendantCache(attr);\n });\n }\n };\n Node.prototype.clearCache = function () {\n this._cache.delete(CANVAS);\n this._clearSelfAndDescendantCache();\n return this;\n };\n Node.prototype.cache = function (config) {\n var conf = config || {};\n var rect = {};\n if (conf.x === undefined || conf.y === undefined || conf.width === undefined || conf.height === undefined) {\n rect = this.getClientRect({\n skipTransform: true,\n relativeTo: this.getParent()\n });\n }\n var width = Math.ceil(conf.width || rect.width),\n height = Math.ceil(conf.height || rect.height),\n pixelRatio = conf.pixelRatio,\n x = conf.x === undefined ? rect.x : conf.x,\n y = conf.y === undefined ? rect.y : conf.y,\n offset = conf.offset || 0,\n drawBorder = conf.drawBorder || false;\n if (!width || !height) {\n Util_1.Util.error('Can not cache the node. Width or height of the node equals 0. Caching is skipped.');\n return;\n }\n width += offset * 2;\n height += offset * 2;\n x -= offset;\n y -= offset;\n var cachedSceneCanvas = new Canvas_1.SceneCanvas({\n pixelRatio: pixelRatio,\n width: width,\n height: height\n }),\n cachedFilterCanvas = new Canvas_1.SceneCanvas({\n pixelRatio: pixelRatio,\n width: width,\n height: height\n }),\n cachedHitCanvas = new Canvas_1.HitCanvas({\n pixelRatio: 1,\n width: width,\n height: height\n }),\n sceneContext = cachedSceneCanvas.getContext(),\n hitContext = cachedHitCanvas.getContext();\n cachedHitCanvas.isCache = true;\n this._cache.delete('canvas');\n this._filterUpToDate = false;\n if (conf.imageSmoothingEnabled === false) {\n cachedSceneCanvas.getContext()._context.imageSmoothingEnabled = false;\n cachedFilterCanvas.getContext()._context.imageSmoothingEnabled = false;\n cachedHitCanvas.getContext()._context.imageSmoothingEnabled = false;\n }\n sceneContext.save();\n hitContext.save();\n sceneContext.translate(-x, -y);\n hitContext.translate(-x, -y);\n this._isUnderCache = true;\n this._clearSelfAndDescendantCache(ABSOLUTE_OPACITY);\n this._clearSelfAndDescendantCache(ABSOLUTE_SCALE);\n this.drawScene(cachedSceneCanvas, this, true);\n this.drawHit(cachedHitCanvas, this, true);\n this._isUnderCache = false;\n sceneContext.restore();\n hitContext.restore();\n if (drawBorder) {\n sceneContext.save();\n sceneContext.beginPath();\n sceneContext.rect(0, 0, width, height);\n sceneContext.closePath();\n sceneContext.setAttr('strokeStyle', 'red');\n sceneContext.setAttr('lineWidth', 5);\n sceneContext.stroke();\n sceneContext.restore();\n }\n this._cache.set(CANVAS, {\n scene: cachedSceneCanvas,\n filter: cachedFilterCanvas,\n hit: cachedHitCanvas,\n x: x,\n y: y\n });\n return this;\n };\n Node.prototype.isCached = function () {\n return this._cache.has('canvas');\n };\n Node.prototype.getClientRect = function (config) {\n throw new Error('abstract \"getClientRect\" method call');\n };\n Node.prototype._transformedRect = function (rect, top) {\n var points = [{\n x: rect.x,\n y: rect.y\n }, {\n x: rect.x + rect.width,\n y: rect.y\n }, {\n x: rect.x + rect.width,\n y: rect.y + rect.height\n }, {\n x: rect.x,\n y: rect.y + rect.height\n }];\n var minX, minY, maxX, maxY;\n var trans = this.getAbsoluteTransform(top);\n points.forEach(function (point) {\n var transformed = trans.point(point);\n if (minX === undefined) {\n minX = maxX = transformed.x;\n minY = maxY = transformed.y;\n }\n minX = Math.min(minX, transformed.x);\n minY = Math.min(minY, transformed.y);\n maxX = Math.max(maxX, transformed.x);\n maxY = Math.max(maxY, transformed.y);\n });\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n };\n Node.prototype._drawCachedSceneCanvas = function (context) {\n context.save();\n context._applyOpacity(this);\n context._applyGlobalCompositeOperation(this);\n var canvasCache = this._getCanvasCache();\n context.translate(canvasCache.x, canvasCache.y);\n var cacheCanvas = this._getCachedSceneCanvas();\n var ratio = cacheCanvas.pixelRatio;\n context.drawImage(cacheCanvas._canvas, 0, 0, cacheCanvas.width / ratio, cacheCanvas.height / ratio);\n context.restore();\n };\n Node.prototype._drawCachedHitCanvas = function (context) {\n var canvasCache = this._getCanvasCache(),\n hitCanvas = canvasCache.hit;\n context.save();\n context.translate(canvasCache.x, canvasCache.y);\n context.drawImage(hitCanvas._canvas, 0, 0);\n context.restore();\n };\n Node.prototype._getCachedSceneCanvas = function () {\n var filters = this.filters(),\n cachedCanvas = this._getCanvasCache(),\n sceneCanvas = cachedCanvas.scene,\n filterCanvas = cachedCanvas.filter,\n filterContext = filterCanvas.getContext(),\n len,\n imageData,\n n,\n filter;\n if (filters) {\n if (!this._filterUpToDate) {\n var ratio = sceneCanvas.pixelRatio;\n try {\n len = filters.length;\n filterContext.clear();\n filterContext.drawImage(sceneCanvas._canvas, 0, 0, sceneCanvas.getWidth() / ratio, sceneCanvas.getHeight() / ratio);\n imageData = filterContext.getImageData(0, 0, filterCanvas.getWidth(), filterCanvas.getHeight());\n for (n = 0; n < len; n++) {\n filter = filters[n];\n if (typeof filter !== 'function') {\n Util_1.Util.error('Filter should be type of function, but got ' + typeof filter + ' instead. Please check correct filters');\n continue;\n }\n filter.call(this, imageData);\n filterContext.putImageData(imageData, 0, 0);\n }\n } catch (e) {\n Util_1.Util.error('Unable to apply filter. ' + e.message + ' This post my help you https://konvajs.org/docs/posts/Tainted_Canvas.html.');\n }\n this._filterUpToDate = true;\n }\n return filterCanvas;\n }\n return sceneCanvas;\n };\n Node.prototype.on = function (evtStr, handler) {\n if (arguments.length === 3) {\n return this._delegate.apply(this, arguments);\n }\n var events = evtStr.split(SPACE),\n len = events.length,\n n,\n event,\n parts,\n baseEvent,\n name;\n for (n = 0; n < len; n++) {\n event = events[n];\n parts = event.split('.');\n baseEvent = parts[0];\n name = parts[1] || '';\n if (!this.eventListeners[baseEvent]) {\n this.eventListeners[baseEvent] = [];\n }\n this.eventListeners[baseEvent].push({\n name: name,\n handler: handler\n });\n }\n return this;\n };\n Node.prototype.off = function (evtStr, callback) {\n var events = (evtStr || '').split(SPACE),\n len = events.length,\n n,\n t,\n event,\n parts,\n baseEvent,\n name;\n if (!evtStr) {\n for (t in this.eventListeners) {\n this._off(t);\n }\n }\n for (n = 0; n < len; n++) {\n event = events[n];\n parts = event.split('.');\n baseEvent = parts[0];\n name = parts[1];\n if (baseEvent) {\n if (this.eventListeners[baseEvent]) {\n this._off(baseEvent, name, callback);\n }\n } else {\n for (t in this.eventListeners) {\n this._off(t, name, callback);\n }\n }\n }\n return this;\n };\n Node.prototype.dispatchEvent = function (evt) {\n var e = {\n target: this,\n type: evt.type,\n evt: evt\n };\n this.fire(evt.type, e);\n return this;\n };\n Node.prototype.addEventListener = function (type, handler) {\n this.on(type, function (evt) {\n handler.call(this, evt.evt);\n });\n return this;\n };\n Node.prototype.removeEventListener = function (type) {\n this.off(type);\n return this;\n };\n Node.prototype._delegate = function (event, selector, handler) {\n var stopNode = this;\n this.on(event, function (evt) {\n var targets = evt.target.findAncestors(selector, true, stopNode);\n for (var i = 0; i < targets.length; i++) {\n evt = Util_1.Util.cloneObject(evt);\n evt.currentTarget = targets[i];\n handler.call(targets[i], evt);\n }\n });\n };\n Node.prototype.remove = function () {\n if (this.isDragging()) {\n this.stopDrag();\n }\n DragAndDrop_1.DD._dragElements.delete(this._id);\n this._remove();\n return this;\n };\n Node.prototype._clearCaches = function () {\n this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);\n this._clearSelfAndDescendantCache(ABSOLUTE_OPACITY);\n this._clearSelfAndDescendantCache(ABSOLUTE_SCALE);\n this._clearSelfAndDescendantCache(STAGE);\n this._clearSelfAndDescendantCache(VISIBLE);\n this._clearSelfAndDescendantCache(LISTENING);\n };\n Node.prototype._remove = function () {\n this._clearCaches();\n var parent = this.getParent();\n if (parent && parent.children) {\n parent.children.splice(this.index, 1);\n parent._setChildrenIndices();\n this.parent = null;\n }\n };\n Node.prototype.destroy = function () {\n exports._removeId(this.id(), this);\n var names = (this.name() || '').split(/\\s/g);\n for (var i = 0; i < names.length; i++) {\n var subname = names[i];\n exports._removeName(subname, this._id);\n }\n this.remove();\n return this;\n };\n Node.prototype.getAttr = function (attr) {\n var method = 'get' + Util_1.Util._capitalize(attr);\n if (Util_1.Util._isFunction(this[method])) {\n return this[method]();\n }\n return this.attrs[attr];\n };\n Node.prototype.getAncestors = function () {\n var parent = this.getParent(),\n ancestors = new Util_1.Collection();\n while (parent) {\n ancestors.push(parent);\n parent = parent.getParent();\n }\n return ancestors;\n };\n Node.prototype.getAttrs = function () {\n return this.attrs || {};\n };\n Node.prototype.setAttrs = function (config) {\n var key, method;\n if (!config) {\n return this;\n }\n for (key in config) {\n if (key === CHILDREN) {\n continue;\n }\n method = SET + Util_1.Util._capitalize(key);\n if (Util_1.Util._isFunction(this[method])) {\n this[method](config[key]);\n } else {\n this._setAttr(key, config[key]);\n }\n }\n return this;\n };\n Node.prototype.isListening = function () {\n return this._getCache(LISTENING, this._isListening);\n };\n Node.prototype._isListening = function () {\n var listening = this.listening(),\n parent = this.getParent();\n if (listening === 'inherit') {\n if (parent) {\n return parent.isListening();\n } else {\n return true;\n }\n } else {\n return listening;\n }\n };\n Node.prototype.isVisible = function () {\n return this._getCache(VISIBLE, this._isVisible);\n };\n Node.prototype._isVisible = function (relativeTo) {\n var visible = this.visible(),\n parent = this.getParent();\n if (visible === 'inherit') {\n if (parent && parent !== relativeTo) {\n return parent._isVisible(relativeTo);\n } else {\n return true;\n }\n } else if (relativeTo && relativeTo !== parent) {\n return visible && parent._isVisible(relativeTo);\n } else {\n return visible;\n }\n };\n Node.prototype.shouldDrawHit = function () {\n var layer = this.getLayer();\n return !layer && this.isListening() && this.isVisible() || layer && layer.hitGraphEnabled() && this.isListening() && this.isVisible();\n };\n Node.prototype.show = function () {\n this.visible(true);\n return this;\n };\n Node.prototype.hide = function () {\n this.visible(false);\n return this;\n };\n Node.prototype.getZIndex = function () {\n return this.index || 0;\n };\n Node.prototype.getAbsoluteZIndex = function () {\n var depth = this.getDepth(),\n that = this,\n index = 0,\n nodes,\n len,\n n,\n child;\n function addChildren(children) {\n nodes = [];\n len = children.length;\n for (n = 0; n < len; n++) {\n child = children[n];\n index++;\n if (child.nodeType !== SHAPE) {\n nodes = nodes.concat(child.getChildren().toArray());\n }\n if (child._id === that._id) {\n n = len;\n }\n }\n if (nodes.length > 0 && nodes[0].getDepth() <= depth) {\n addChildren(nodes);\n }\n }\n if (that.nodeType !== UPPER_STAGE) {\n addChildren(that.getStage().getChildren());\n }\n return index;\n };\n Node.prototype.getDepth = function () {\n var depth = 0,\n parent = this.parent;\n while (parent) {\n depth++;\n parent = parent.parent;\n }\n return depth;\n };\n Node.prototype.setPosition = function (pos) {\n this.x(pos.x);\n this.y(pos.y);\n return this;\n };\n Node.prototype.getPosition = function () {\n return {\n x: this.x(),\n y: this.y()\n };\n };\n Node.prototype.getAbsolutePosition = function (top) {\n var haveCachedParent = false;\n var parent = this.parent;\n while (parent) {\n if (parent.isCached()) {\n haveCachedParent = true;\n break;\n }\n parent = parent.parent;\n }\n if (haveCachedParent && !top) {\n top = true;\n }\n var absoluteMatrix = this.getAbsoluteTransform(top).getMatrix(),\n absoluteTransform = new Util_1.Transform(),\n offset = this.offset();\n absoluteTransform.m = absoluteMatrix.slice();\n absoluteTransform.translate(offset.x, offset.y);\n return absoluteTransform.getTranslation();\n };\n Node.prototype.setAbsolutePosition = function (pos) {\n var origTrans = this._clearTransform(),\n it;\n this.attrs.x = origTrans.x;\n this.attrs.y = origTrans.y;\n delete origTrans.x;\n delete origTrans.y;\n it = this.getAbsoluteTransform();\n it.invert();\n it.translate(pos.x, pos.y);\n pos = {\n x: this.attrs.x + it.getTranslation().x,\n y: this.attrs.y + it.getTranslation().y\n };\n this.setPosition({\n x: pos.x,\n y: pos.y\n });\n this._setTransform(origTrans);\n return this;\n };\n Node.prototype._setTransform = function (trans) {\n var key;\n for (key in trans) {\n this.attrs[key] = trans[key];\n }\n this._clearCache(TRANSFORM);\n this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);\n };\n Node.prototype._clearTransform = function () {\n var trans = {\n x: this.x(),\n y: this.y(),\n rotation: this.rotation(),\n scaleX: this.scaleX(),\n scaleY: this.scaleY(),\n offsetX: this.offsetX(),\n offsetY: this.offsetY(),\n skewX: this.skewX(),\n skewY: this.skewY()\n };\n this.attrs.x = 0;\n this.attrs.y = 0;\n this.attrs.rotation = 0;\n this.attrs.scaleX = 1;\n this.attrs.scaleY = 1;\n this.attrs.offsetX = 0;\n this.attrs.offsetY = 0;\n this.attrs.skewX = 0;\n this.attrs.skewY = 0;\n this._clearCache(TRANSFORM);\n this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);\n return trans;\n };\n Node.prototype.move = function (change) {\n var changeX = change.x,\n changeY = change.y,\n x = this.x(),\n y = this.y();\n if (changeX !== undefined) {\n x += changeX;\n }\n if (changeY !== undefined) {\n y += changeY;\n }\n this.setPosition({\n x: x,\n y: y\n });\n return this;\n };\n Node.prototype._eachAncestorReverse = function (func, top) {\n var family = [],\n parent = this.getParent(),\n len,\n n;\n if (top && top._id === this._id) {\n func(this);\n return;\n }\n family.unshift(this);\n while (parent && (!top || parent._id !== top._id)) {\n family.unshift(parent);\n parent = parent.parent;\n }\n len = family.length;\n for (n = 0; n < len; n++) {\n func(family[n]);\n }\n };\n Node.prototype.rotate = function (theta) {\n this.rotation(this.rotation() + theta);\n return this;\n };\n Node.prototype.moveToTop = function () {\n if (!this.parent) {\n Util_1.Util.warn('Node has no parent. moveToTop function is ignored.');\n return false;\n }\n var index = this.index;\n this.parent.children.splice(index, 1);\n this.parent.children.push(this);\n this.parent._setChildrenIndices();\n return true;\n };\n Node.prototype.moveUp = function () {\n if (!this.parent) {\n Util_1.Util.warn('Node has no parent. moveUp function is ignored.');\n return false;\n }\n var index = this.index,\n len = this.parent.getChildren().length;\n if (index < len - 1) {\n this.parent.children.splice(index, 1);\n this.parent.children.splice(index + 1, 0, this);\n this.parent._setChildrenIndices();\n return true;\n }\n return false;\n };\n Node.prototype.moveDown = function () {\n if (!this.parent) {\n Util_1.Util.warn('Node has no parent. moveDown function is ignored.');\n return false;\n }\n var index = this.index;\n if (index > 0) {\n this.parent.children.splice(index, 1);\n this.parent.children.splice(index - 1, 0, this);\n this.parent._setChildrenIndices();\n return true;\n }\n return false;\n };\n Node.prototype.moveToBottom = function () {\n if (!this.parent) {\n Util_1.Util.warn('Node has no parent. moveToBottom function is ignored.');\n return false;\n }\n var index = this.index;\n if (index > 0) {\n this.parent.children.splice(index, 1);\n this.parent.children.unshift(this);\n this.parent._setChildrenIndices();\n return true;\n }\n return false;\n };\n Node.prototype.setZIndex = function (zIndex) {\n if (!this.parent) {\n Util_1.Util.warn('Node has no parent. zIndex parameter is ignored.');\n return this;\n }\n if (zIndex < 0 || zIndex >= this.parent.children.length) {\n Util_1.Util.warn('Unexpected value ' + zIndex + ' for zIndex property. zIndex is just index of a node in children of its parent. Expected value is from 0 to ' + (this.parent.children.length - 1) + '.');\n }\n var index = this.index;\n this.parent.children.splice(index, 1);\n this.parent.children.splice(zIndex, 0, this);\n this.parent._setChildrenIndices();\n return this;\n };\n Node.prototype.getAbsoluteOpacity = function () {\n return this._getCache(ABSOLUTE_OPACITY, this._getAbsoluteOpacity);\n };\n Node.prototype._getAbsoluteOpacity = function () {\n var absOpacity = this.opacity();\n var parent = this.getParent();\n if (parent && !parent._isUnderCache) {\n absOpacity *= parent.getAbsoluteOpacity();\n }\n return absOpacity;\n };\n Node.prototype.moveTo = function (newContainer) {\n if (this.getParent() !== newContainer) {\n this._remove();\n newContainer.add(this);\n }\n return this;\n };\n Node.prototype.toObject = function () {\n var obj = {},\n attrs = this.getAttrs(),\n key,\n val,\n getter,\n defaultValue,\n nonPlainObject;\n obj.attrs = {};\n for (key in attrs) {\n val = attrs[key];\n nonPlainObject = Util_1.Util.isObject(val) && !Util_1.Util._isPlainObject(val) && !Util_1.Util._isArray(val);\n if (nonPlainObject) {\n continue;\n }\n getter = typeof this[key] === 'function' && this[key];\n delete attrs[key];\n defaultValue = getter ? getter.call(this) : null;\n attrs[key] = val;\n if (defaultValue !== val) {\n obj.attrs[key] = val;\n }\n }\n obj.className = this.getClassName();\n return Util_1.Util._prepareToStringify(obj);\n };\n Node.prototype.toJSON = function () {\n return JSON.stringify(this.toObject());\n };\n Node.prototype.getParent = function () {\n return this.parent;\n };\n Node.prototype.findAncestors = function (selector, includeSelf, stopNode) {\n var res = [];\n if (includeSelf && this._isMatch(selector)) {\n res.push(this);\n }\n var ancestor = this.parent;\n while (ancestor) {\n if (ancestor === stopNode) {\n return res;\n }\n if (ancestor._isMatch(selector)) {\n res.push(ancestor);\n }\n ancestor = ancestor.parent;\n }\n return res;\n };\n Node.prototype.isAncestorOf = function (node) {\n return false;\n };\n Node.prototype.findAncestor = function (selector, includeSelf, stopNode) {\n return this.findAncestors(selector, includeSelf, stopNode)[0];\n };\n Node.prototype._isMatch = function (selector) {\n if (!selector) {\n return false;\n }\n if (typeof selector === 'function') {\n return selector(this);\n }\n var selectorArr = selector.replace(/ /g, '').split(','),\n len = selectorArr.length,\n n,\n sel;\n for (n = 0; n < len; n++) {\n sel = selectorArr[n];\n if (!Util_1.Util.isValidSelector(sel)) {\n Util_1.Util.warn('Selector \"' + sel + '\" is invalid. Allowed selectors examples are \"#foo\", \".bar\" or \"Group\".');\n Util_1.Util.warn('If you have a custom shape with such className, please change it to start with upper letter like \"Triangle\".');\n Util_1.Util.warn('Konva is awesome, right?');\n }\n if (sel.charAt(0) === '#') {\n if (this.id() === sel.slice(1)) {\n return true;\n }\n } else if (sel.charAt(0) === '.') {\n if (this.hasName(sel.slice(1))) {\n return true;\n }\n } else if (this.className === sel || this.nodeType === sel) {\n return true;\n }\n }\n return false;\n };\n Node.prototype.getLayer = function () {\n var parent = this.getParent();\n return parent ? parent.getLayer() : null;\n };\n Node.prototype.getStage = function () {\n return this._getCache(STAGE, this._getStage);\n };\n Node.prototype._getStage = function () {\n var parent = this.getParent();\n if (parent) {\n return parent.getStage();\n } else {\n return undefined;\n }\n };\n Node.prototype.fire = function (eventType, evt, bubble) {\n evt = evt || {};\n evt.target = evt.target || this;\n if (bubble) {\n this._fireAndBubble(eventType, evt);\n } else {\n this._fire(eventType, evt);\n }\n return this;\n };\n Node.prototype.getAbsoluteTransform = function (top) {\n if (top) {\n return this._getAbsoluteTransform(top);\n } else {\n return this._getCache(ABSOLUTE_TRANSFORM, this._getAbsoluteTransform);\n }\n };\n Node.prototype._getAbsoluteTransform = function (top) {\n var at;\n if (top) {\n at = new Util_1.Transform();\n this._eachAncestorReverse(function (node) {\n var transformsEnabled = node.transformsEnabled();\n if (transformsEnabled === 'all') {\n at.multiply(node.getTransform());\n } else if (transformsEnabled === 'position') {\n at.translate(node.x() - node.offsetX(), node.y() - node.offsetY());\n }\n }, top);\n return at;\n } else {\n if (this.parent) {\n at = this.parent.getAbsoluteTransform().copy();\n } else {\n at = new Util_1.Transform();\n }\n var transformsEnabled = this.transformsEnabled();\n if (transformsEnabled === 'all') {\n at.multiply(this.getTransform());\n } else if (transformsEnabled === 'position') {\n at.translate(this.x() - this.offsetX(), this.y() - this.offsetY());\n }\n return at;\n }\n };\n Node.prototype.getAbsoluteScale = function (top) {\n if (top) {\n return this._getAbsoluteScale(top);\n } else {\n return this._getCache(ABSOLUTE_SCALE, this._getAbsoluteScale);\n }\n };\n Node.prototype._getAbsoluteScale = function (top) {\n var parent = this;\n while (parent) {\n if (parent._isUnderCache) {\n top = parent;\n }\n parent = parent.getParent();\n }\n var scaleX = 1,\n scaleY = 1;\n this._eachAncestorReverse(function (node) {\n scaleX *= node.scaleX();\n scaleY *= node.scaleY();\n }, top);\n return {\n x: scaleX,\n y: scaleY\n };\n };\n Node.prototype.getAbsoluteRotation = function () {\n var parent = this;\n var rotation = 0;\n while (parent) {\n rotation += parent.rotation();\n parent = parent.getParent();\n }\n return rotation;\n };\n Node.prototype.getTransform = function () {\n return this._getCache(TRANSFORM, this._getTransform);\n };\n Node.prototype._getTransform = function () {\n var m = new Util_1.Transform(),\n x = this.x(),\n y = this.y(),\n rotation = Global_1.Konva.getAngle(this.rotation()),\n scaleX = this.scaleX(),\n scaleY = this.scaleY(),\n skewX = this.skewX(),\n skewY = this.skewY(),\n offsetX = this.offsetX(),\n offsetY = this.offsetY();\n if (x !== 0 || y !== 0) {\n m.translate(x, y);\n }\n if (rotation !== 0) {\n m.rotate(rotation);\n }\n if (skewX !== 0 || skewY !== 0) {\n m.skew(skewX, skewY);\n }\n if (scaleX !== 1 || scaleY !== 1) {\n m.scale(scaleX, scaleY);\n }\n if (offsetX !== 0 || offsetY !== 0) {\n m.translate(-1 * offsetX, -1 * offsetY);\n }\n return m;\n };\n Node.prototype.clone = function (obj) {\n var attrs = Util_1.Util.cloneObject(this.attrs),\n key,\n allListeners,\n len,\n n,\n listener;\n for (key in obj) {\n attrs[key] = obj[key];\n }\n var node = new this.constructor(attrs);\n for (key in this.eventListeners) {\n allListeners = this.eventListeners[key];\n len = allListeners.length;\n for (n = 0; n < len; n++) {\n listener = allListeners[n];\n if (listener.name.indexOf(KONVA) < 0) {\n if (!node.eventListeners[key]) {\n node.eventListeners[key] = [];\n }\n node.eventListeners[key].push(listener);\n }\n }\n }\n return node;\n };\n Node.prototype._toKonvaCanvas = function (config) {\n config = config || {};\n var box = this.getClientRect();\n var stage = this.getStage(),\n x = config.x !== undefined ? config.x : box.x,\n y = config.y !== undefined ? config.y : box.y,\n pixelRatio = config.pixelRatio || 1,\n canvas = new Canvas_1.SceneCanvas({\n width: config.width || box.width || (stage ? stage.width() : 0),\n height: config.height || box.height || (stage ? stage.height() : 0),\n pixelRatio: pixelRatio\n }),\n context = canvas.getContext();\n context.save();\n if (x || y) {\n context.translate(-1 * x, -1 * y);\n }\n this.drawScene(canvas);\n context.restore();\n return canvas;\n };\n Node.prototype.toCanvas = function (config) {\n return this._toKonvaCanvas(config)._canvas;\n };\n Node.prototype.toDataURL = function (config) {\n config = config || {};\n var mimeType = config.mimeType || null,\n quality = config.quality || null;\n var url = this._toKonvaCanvas(config).toDataURL(mimeType, quality);\n if (config.callback) {\n config.callback(url);\n }\n return url;\n };\n Node.prototype.toImage = function (config) {\n if (!config || !config.callback) {\n throw 'callback required for toImage method config argument';\n }\n var callback = config.callback;\n delete config.callback;\n Util_1.Util._urlToImage(this.toDataURL(config), function (img) {\n callback(img);\n });\n };\n Node.prototype.setSize = function (size) {\n this.width(size.width);\n this.height(size.height);\n return this;\n };\n Node.prototype.getSize = function () {\n return {\n width: this.width(),\n height: this.height()\n };\n };\n Node.prototype.getClassName = function () {\n return this.className || this.nodeType;\n };\n Node.prototype.getType = function () {\n return this.nodeType;\n };\n Node.prototype.getDragDistance = function () {\n if (this.attrs.dragDistance !== undefined) {\n return this.attrs.dragDistance;\n } else if (this.parent) {\n return this.parent.getDragDistance();\n } else {\n return Global_1.Konva.dragDistance;\n }\n };\n Node.prototype._off = function (type, name, callback) {\n var evtListeners = this.eventListeners[type],\n i,\n evtName,\n handler;\n for (i = 0; i < evtListeners.length; i++) {\n evtName = evtListeners[i].name;\n handler = evtListeners[i].handler;\n if ((evtName !== 'konva' || name === 'konva') && (!name || evtName === name) && (!callback || callback === handler)) {\n evtListeners.splice(i, 1);\n if (evtListeners.length === 0) {\n delete this.eventListeners[type];\n break;\n }\n i--;\n }\n }\n };\n Node.prototype._fireChangeEvent = function (attr, oldVal, newVal) {\n this._fire(attr + CHANGE, {\n oldVal: oldVal,\n newVal: newVal\n });\n };\n Node.prototype.setId = function (id) {\n var oldId = this.id();\n exports._removeId(oldId, this);\n _addId(this, id);\n this._setAttr('id', id);\n return this;\n };\n Node.prototype.setName = function (name) {\n var oldNames = (this.name() || '').split(/\\s/g);\n var newNames = (name || '').split(/\\s/g);\n var subname, i;\n for (i = 0; i < oldNames.length; i++) {\n subname = oldNames[i];\n if (newNames.indexOf(subname) === -1 && subname) {\n exports._removeName(subname, this._id);\n }\n }\n for (i = 0; i < newNames.length; i++) {\n subname = newNames[i];\n if (oldNames.indexOf(subname) === -1 && subname) {\n exports._addName(this, subname);\n }\n }\n this._setAttr(NAME, name);\n return this;\n };\n Node.prototype.addName = function (name) {\n if (!this.hasName(name)) {\n var oldName = this.name();\n var newName = oldName ? oldName + ' ' + name : name;\n this.setName(newName);\n }\n return this;\n };\n Node.prototype.hasName = function (name) {\n if (!name) {\n return false;\n }\n var fullName = this.name();\n if (!fullName) {\n return false;\n }\n var names = (fullName || '').split(/\\s/g);\n return names.indexOf(name) !== -1;\n };\n Node.prototype.removeName = function (name) {\n var names = (this.name() || '').split(/\\s/g);\n var index = names.indexOf(name);\n if (index !== -1) {\n names.splice(index, 1);\n this.setName(names.join(' '));\n }\n return this;\n };\n Node.prototype.setAttr = function (attr, val) {\n var func = this[SET + Util_1.Util._capitalize(attr)];\n if (Util_1.Util._isFunction(func)) {\n func.call(this, val);\n } else {\n this._setAttr(attr, val);\n }\n return this;\n };\n Node.prototype._setAttr = function (key, val) {\n var oldVal = this.attrs[key];\n if (oldVal === val && !Util_1.Util.isObject(val)) {\n return;\n }\n if (val === undefined || val === null) {\n delete this.attrs[key];\n } else {\n this.attrs[key] = val;\n }\n this._fireChangeEvent(key, oldVal, val);\n };\n Node.prototype._setComponentAttr = function (key, component, val) {\n var oldVal;\n if (val !== undefined) {\n oldVal = this.attrs[key];\n if (!oldVal) {\n this.attrs[key] = this.getAttr(key);\n }\n this.attrs[key][component] = val;\n this._fireChangeEvent(key, oldVal, val);\n }\n };\n Node.prototype._fireAndBubble = function (eventType, evt, compareShape) {\n if (evt && this.nodeType === SHAPE) {\n evt.target = this;\n }\n var shouldStop = (eventType === MOUSEENTER || eventType === MOUSELEAVE) && (compareShape && (this === compareShape || this.isAncestorOf && this.isAncestorOf(compareShape)) || this.nodeType === 'Stage' && !compareShape);\n if (!shouldStop) {\n this._fire(eventType, evt);\n var stopBubble = (eventType === MOUSEENTER || eventType === MOUSELEAVE) && compareShape && compareShape.isAncestorOf && compareShape.isAncestorOf(this) && !compareShape.isAncestorOf(this.parent);\n if ((evt && !evt.cancelBubble || !evt) && this.parent && this.parent.isListening() && !stopBubble) {\n if (compareShape && compareShape.parent) {\n this._fireAndBubble.call(this.parent, eventType, evt, compareShape);\n } else {\n this._fireAndBubble.call(this.parent, eventType, evt);\n }\n }\n }\n };\n Node.prototype._fire = function (eventType, evt) {\n var events = this.eventListeners[eventType],\n i;\n if (events) {\n evt = evt || {};\n evt.currentTarget = this;\n evt.type = eventType;\n for (i = 0; i < events.length; i++) {\n events[i].handler.call(this, evt);\n }\n }\n };\n Node.prototype.draw = function () {\n this.drawScene();\n this.drawHit();\n return this;\n };\n Node.prototype._createDragElement = function (evt) {\n var pointerId = evt ? evt.pointerId : undefined;\n var stage = this.getStage();\n var ap = this.getAbsolutePosition();\n var pos = stage._getPointerById(pointerId) || stage._changedPointerPositions[0] || ap;\n DragAndDrop_1.DD._dragElements.set(this._id, {\n node: this,\n startPointerPos: pos,\n offset: {\n x: pos.x - ap.x,\n y: pos.y - ap.y\n },\n dragStatus: 'ready',\n pointerId: pointerId\n });\n };\n Node.prototype.startDrag = function (evt) {\n if (!DragAndDrop_1.DD._dragElements.has(this._id)) {\n this._createDragElement(evt);\n }\n var elem = DragAndDrop_1.DD._dragElements.get(this._id);\n elem.dragStatus = 'dragging';\n this.fire('dragstart', {\n type: 'dragstart',\n target: this,\n evt: evt && evt.evt\n }, true);\n };\n Node.prototype._setDragPosition = function (evt, elem) {\n var pos = this.getStage()._getPointerById(elem.pointerId);\n if (!pos) {\n return;\n }\n var newNodePos = {\n x: pos.x - elem.offset.x,\n y: pos.y - elem.offset.y\n };\n var dbf = this.dragBoundFunc();\n if (dbf !== undefined) {\n var bounded = dbf.call(this, newNodePos, evt);\n if (!bounded) {\n Util_1.Util.warn('dragBoundFunc did not return any value. That is unexpected behavior. You must return new absolute position from dragBoundFunc.');\n } else {\n newNodePos = bounded;\n }\n }\n if (!this._lastPos || this._lastPos.x !== newNodePos.x || this._lastPos.y !== newNodePos.y) {\n this.setAbsolutePosition(newNodePos);\n if (this.getLayer()) {\n this.getLayer().batchDraw();\n } else if (this.getStage()) {\n this.getStage().batchDraw();\n }\n }\n this._lastPos = newNodePos;\n };\n Node.prototype.stopDrag = function (evt) {\n var elem = DragAndDrop_1.DD._dragElements.get(this._id);\n if (elem) {\n elem.dragStatus = 'stopped';\n }\n DragAndDrop_1.DD._endDragBefore(evt);\n DragAndDrop_1.DD._endDragAfter(evt);\n };\n Node.prototype.setDraggable = function (draggable) {\n this._setAttr('draggable', draggable);\n this._dragChange();\n };\n Node.prototype.isDragging = function () {\n var elem = DragAndDrop_1.DD._dragElements.get(this._id);\n return elem ? elem.dragStatus === 'dragging' : false;\n };\n Node.prototype._listenDrag = function () {\n this._dragCleanup();\n this.on('mousedown.konva touchstart.konva', function (evt) {\n var _this = this;\n var shouldCheckButton = evt.evt['button'] !== undefined;\n var canDrag = !shouldCheckButton || Global_1.Konva.dragButtons.indexOf(evt.evt['button']) >= 0;\n if (!canDrag) {\n return;\n }\n if (this.isDragging()) {\n return;\n }\n var hasDraggingChild = false;\n DragAndDrop_1.DD._dragElements.forEach(function (elem) {\n if (_this.isAncestorOf(elem.node)) {\n hasDraggingChild = true;\n }\n });\n if (!hasDraggingChild) {\n this._createDragElement(evt);\n }\n });\n };\n Node.prototype._dragChange = function () {\n if (this.attrs.draggable) {\n this._listenDrag();\n } else {\n this._dragCleanup();\n var stage = this.getStage();\n if (stage && DragAndDrop_1.DD._dragElements.has(this._id)) {\n this.stopDrag();\n }\n }\n };\n Node.prototype._dragCleanup = function () {\n this.off('mousedown.konva');\n this.off('touchstart.konva');\n };\n Node.create = function (data, container) {\n if (Util_1.Util._isString(data)) {\n data = JSON.parse(data);\n }\n return this._createNode(data, container);\n };\n Node._createNode = function (obj, container) {\n var className = Node.prototype.getClassName.call(obj),\n children = obj.children,\n no,\n len,\n n;\n if (container) {\n obj.attrs.container = container;\n }\n if (!Global_1._NODES_REGISTRY[className]) {\n Util_1.Util.warn('Can not find a node with class name \"' + className + '\". Fallback to \"Shape\".');\n className = 'Shape';\n }\n var Class = Global_1._NODES_REGISTRY[className];\n no = new Class(obj.attrs);\n if (children) {\n len = children.length;\n for (n = 0; n < len; n++) {\n no.add(Node._createNode(children[n]));\n }\n }\n return no;\n };\n return Node;\n}();\nexports.Node = Node;\nNode.prototype.nodeType = 'Node';\nNode.prototype._attrsAffectingSize = [];\nFactory_1.Factory.addGetterSetter(Node, 'zIndex');\nFactory_1.Factory.addGetterSetter(Node, 'absolutePosition');\nFactory_1.Factory.addGetterSetter(Node, 'position');\nFactory_1.Factory.addGetterSetter(Node, 'x', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Node, 'y', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Node, 'globalCompositeOperation', 'source-over', Validators_1.getStringValidator());\nFactory_1.Factory.addGetterSetter(Node, 'opacity', 1, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Node, 'name', '', Validators_1.getStringValidator());\nFactory_1.Factory.addGetterSetter(Node, 'id', '', Validators_1.getStringValidator());\nFactory_1.Factory.addGetterSetter(Node, 'rotation', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addComponentsGetterSetter(Node, 'scale', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Node, 'scaleX', 1, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Node, 'scaleY', 1, Validators_1.getNumberValidator());\nFactory_1.Factory.addComponentsGetterSetter(Node, 'skew', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Node, 'skewX', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Node, 'skewY', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addComponentsGetterSetter(Node, 'offset', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Node, 'offsetX', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Node, 'offsetY', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Node, 'dragDistance', null, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Node, 'width', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Node, 'height', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Node, 'listening', 'inherit', function (val) {\n var isValid = val === true || val === false || val === 'inherit';\n if (!isValid) {\n Util_1.Util.warn(val + ' is a not valid value for \"listening\" attribute. The value may be true, false or \"inherit\".');\n }\n return val;\n});\nFactory_1.Factory.addGetterSetter(Node, 'preventDefault', true, Validators_1.getBooleanValidator());\nFactory_1.Factory.addGetterSetter(Node, 'filters', null, function (val) {\n this._filterUpToDate = false;\n return val;\n});\nFactory_1.Factory.addGetterSetter(Node, 'visible', 'inherit', function (val) {\n var isValid = val === true || val === false || val === 'inherit';\n if (!isValid) {\n Util_1.Util.warn(val + ' is a not valid value for \"visible\" attribute. The value may be true, false or \"inherit\".');\n }\n return val;\n});\nFactory_1.Factory.addGetterSetter(Node, 'transformsEnabled', 'all', Validators_1.getStringValidator());\nFactory_1.Factory.addGetterSetter(Node, 'size');\nFactory_1.Factory.addGetterSetter(Node, 'dragBoundFunc');\nFactory_1.Factory.addGetterSetter(Node, 'draggable', false, Validators_1.getBooleanValidator());\nFactory_1.Factory.backCompat(Node, {\n rotateDeg: 'rotate',\n setRotationDeg: 'setRotation',\n getRotationDeg: 'getRotation'\n});\nUtil_1.Collection.mapMethods(Node);","define(function () {\n \"use strict\";\n\n return function isFunction(obj) {\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\";\n };\n});","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"./Util\");\nvar Factory_1 = require(\"./Factory\");\nvar Node_1 = require(\"./Node\");\nvar Validators_1 = require(\"./Validators\");\nvar Global_1 = require(\"./Global\");\nvar PointerEvents = require(\"./PointerEvents\");\nvar HAS_SHADOW = 'hasShadow';\nvar SHADOW_RGBA = 'shadowRGBA';\nvar patternImage = 'patternImage';\nvar linearGradient = 'linearGradient';\nvar radialGradient = 'radialGradient';\nvar dummyContext;\nfunction getDummyContext() {\n if (dummyContext) {\n return dummyContext;\n }\n dummyContext = Util_1.Util.createCanvasElement().getContext('2d');\n return dummyContext;\n}\nexports.shapes = {};\nfunction _fillFunc(context) {\n context.fill();\n}\nfunction _strokeFunc(context) {\n context.stroke();\n}\nfunction _fillFuncHit(context) {\n context.fill();\n}\nfunction _strokeFuncHit(context) {\n context.stroke();\n}\nfunction _clearHasShadowCache() {\n this._clearCache(HAS_SHADOW);\n}\nfunction _clearGetShadowRGBACache() {\n this._clearCache(SHADOW_RGBA);\n}\nfunction _clearFillPatternCache() {\n this._clearCache(patternImage);\n}\nfunction _clearLinearGradientCache() {\n this._clearCache(linearGradient);\n}\nfunction _clearRadialGradientCache() {\n this._clearCache(radialGradient);\n}\nvar Shape = function (_super) {\n __extends(Shape, _super);\n function Shape(config) {\n var _this = _super.call(this, config) || this;\n var key;\n while (true) {\n key = Util_1.Util.getRandomColor();\n if (key && !(key in exports.shapes)) {\n break;\n }\n }\n _this.colorKey = key;\n exports.shapes[key] = _this;\n _this.on('shadowColorChange.konva shadowBlurChange.konva shadowOffsetChange.konva shadowOpacityChange.konva shadowEnabledChange.konva', _clearHasShadowCache);\n _this.on('shadowColorChange.konva shadowOpacityChange.konva shadowEnabledChange.konva', _clearGetShadowRGBACache);\n _this.on('fillPriorityChange.konva fillPatternImageChange.konva fillPatternRepeatChange.konva fillPatternScaleXChange.konva fillPatternScaleYChange.konva', _clearFillPatternCache);\n _this.on('fillPriorityChange.konva fillLinearGradientColorStopsChange.konva fillLinearGradientStartPointXChange.konva fillLinearGradientStartPointYChange.konva fillLinearGradientEndPointXChange.konva fillLinearGradientEndPointYChange.konva', _clearLinearGradientCache);\n _this.on('fillPriorityChange.konva fillRadialGradientColorStopsChange.konva fillRadialGradientStartPointXChange.konva fillRadialGradientStartPointYChange.konva fillRadialGradientEndPointXChange.konva fillRadialGradientEndPointYChange.konva fillRadialGradientStartRadiusChange.konva fillRadialGradientEndRadiusChange.konva', _clearRadialGradientCache);\n return _this;\n }\n Shape.prototype.getContext = function () {\n return this.getLayer().getContext();\n };\n Shape.prototype.getCanvas = function () {\n return this.getLayer().getCanvas();\n };\n Shape.prototype.getSceneFunc = function () {\n return this.attrs.sceneFunc || this['_sceneFunc'];\n };\n Shape.prototype.getHitFunc = function () {\n return this.attrs.hitFunc || this['_hitFunc'];\n };\n Shape.prototype.hasShadow = function () {\n return this._getCache(HAS_SHADOW, this._hasShadow);\n };\n Shape.prototype._hasShadow = function () {\n return this.shadowEnabled() && this.shadowOpacity() !== 0 && !!(this.shadowColor() || this.shadowBlur() || this.shadowOffsetX() || this.shadowOffsetY());\n };\n Shape.prototype._getFillPattern = function () {\n return this._getCache(patternImage, this.__getFillPattern);\n };\n Shape.prototype.__getFillPattern = function () {\n if (this.fillPatternImage()) {\n var ctx = getDummyContext();\n var pattern = ctx.createPattern(this.fillPatternImage(), this.fillPatternRepeat() || 'repeat');\n return pattern;\n }\n };\n Shape.prototype._getLinearGradient = function () {\n return this._getCache(linearGradient, this.__getLinearGradient);\n };\n Shape.prototype.__getLinearGradient = function () {\n var colorStops = this.fillLinearGradientColorStops();\n if (colorStops) {\n var ctx = getDummyContext();\n var start = this.fillLinearGradientStartPoint();\n var end = this.fillLinearGradientEndPoint();\n var grd = ctx.createLinearGradient(start.x, start.y, end.x, end.y);\n for (var n = 0; n < colorStops.length; n += 2) {\n grd.addColorStop(colorStops[n], colorStops[n + 1]);\n }\n return grd;\n }\n };\n Shape.prototype._getRadialGradient = function () {\n return this._getCache(radialGradient, this.__getRadialGradient);\n };\n Shape.prototype.__getRadialGradient = function () {\n var colorStops = this.fillRadialGradientColorStops();\n if (colorStops) {\n var ctx = getDummyContext();\n var start = this.fillRadialGradientStartPoint();\n var end = this.fillRadialGradientEndPoint();\n var grd = ctx.createRadialGradient(start.x, start.y, this.fillRadialGradientStartRadius(), end.x, end.y, this.fillRadialGradientEndRadius());\n for (var n = 0; n < colorStops.length; n += 2) {\n grd.addColorStop(colorStops[n], colorStops[n + 1]);\n }\n return grd;\n }\n };\n Shape.prototype.getShadowRGBA = function () {\n return this._getCache(SHADOW_RGBA, this._getShadowRGBA);\n };\n Shape.prototype._getShadowRGBA = function () {\n if (this.hasShadow()) {\n var rgba = Util_1.Util.colorToRGBA(this.shadowColor());\n return 'rgba(' + rgba.r + ',' + rgba.g + ',' + rgba.b + ',' + rgba.a * (this.shadowOpacity() || 1) + ')';\n }\n };\n Shape.prototype.hasFill = function () {\n return this.fillEnabled() && !!(this.fill() || this.fillPatternImage() || this.fillLinearGradientColorStops() || this.fillRadialGradientColorStops());\n };\n Shape.prototype.hasStroke = function () {\n return this.strokeEnabled() && this.strokeWidth() && !!(this.stroke() || this.strokeLinearGradientColorStops());\n };\n Shape.prototype.hasHitStroke = function () {\n var width = this.hitStrokeWidth();\n if (width === 'auto') {\n return this.hasStroke();\n }\n return this.strokeEnabled() && !!width;\n };\n Shape.prototype.intersects = function (point) {\n var stage = this.getStage(),\n bufferHitCanvas = stage.bufferHitCanvas,\n p;\n bufferHitCanvas.getContext().clear();\n this.drawHit(bufferHitCanvas);\n p = bufferHitCanvas.context.getImageData(Math.round(point.x), Math.round(point.y), 1, 1).data;\n return p[3] > 0;\n };\n Shape.prototype.destroy = function () {\n Node_1.Node.prototype.destroy.call(this);\n delete exports.shapes[this.colorKey];\n delete this.colorKey;\n return this;\n };\n Shape.prototype._useBufferCanvas = function (caching) {\n return !!((!caching || this.hasShadow()) && this.perfectDrawEnabled() && this.getAbsoluteOpacity() !== 1 && this.hasFill() && this.hasStroke() && this.getStage());\n };\n Shape.prototype.setStrokeHitEnabled = function (val) {\n Util_1.Util.warn('strokeHitEnabled property is deprecated. Please use hitStrokeWidth instead.');\n if (val) {\n this.hitStrokeWidth('auto');\n } else {\n this.hitStrokeWidth(0);\n }\n };\n Shape.prototype.getStrokeHitEnabled = function () {\n if (this.hitStrokeWidth() === 0) {\n return false;\n } else {\n return true;\n }\n };\n Shape.prototype.getSelfRect = function () {\n var size = this.size();\n return {\n x: this._centroid ? -size.width / 2 : 0,\n y: this._centroid ? -size.height / 2 : 0,\n width: size.width,\n height: size.height\n };\n };\n Shape.prototype.getClientRect = function (attrs) {\n attrs = attrs || {};\n var skipTransform = attrs.skipTransform;\n var relativeTo = attrs.relativeTo;\n var fillRect = this.getSelfRect();\n var applyStroke = !attrs.skipStroke && this.hasStroke();\n var strokeWidth = applyStroke && this.strokeWidth() || 0;\n var fillAndStrokeWidth = fillRect.width + strokeWidth;\n var fillAndStrokeHeight = fillRect.height + strokeWidth;\n var applyShadow = !attrs.skipShadow && this.hasShadow();\n var shadowOffsetX = applyShadow ? this.shadowOffsetX() : 0;\n var shadowOffsetY = applyShadow ? this.shadowOffsetY() : 0;\n var preWidth = fillAndStrokeWidth + Math.abs(shadowOffsetX);\n var preHeight = fillAndStrokeHeight + Math.abs(shadowOffsetY);\n var blurRadius = applyShadow && this.shadowBlur() || 0;\n var width = preWidth + blurRadius * 2;\n var height = preHeight + blurRadius * 2;\n var roundingOffset = 0;\n if (Math.round(strokeWidth / 2) !== strokeWidth / 2) {\n roundingOffset = 1;\n }\n var rect = {\n width: width + roundingOffset,\n height: height + roundingOffset,\n x: -Math.round(strokeWidth / 2 + blurRadius) + Math.min(shadowOffsetX, 0) + fillRect.x,\n y: -Math.round(strokeWidth / 2 + blurRadius) + Math.min(shadowOffsetY, 0) + fillRect.y\n };\n if (!skipTransform) {\n return this._transformedRect(rect, relativeTo);\n }\n return rect;\n };\n Shape.prototype.drawScene = function (can, top, caching, skipBuffer) {\n var layer = this.getLayer(),\n canvas = can || layer.getCanvas(),\n context = canvas.getContext(),\n cachedCanvas = this._getCanvasCache(),\n drawFunc = this.sceneFunc(),\n hasShadow = this.hasShadow(),\n hasStroke = this.hasStroke(),\n stage,\n bufferCanvas,\n bufferContext;\n if (!this.isVisible() && !caching) {\n return this;\n }\n if (cachedCanvas) {\n context.save();\n layer._applyTransform(this, context, top);\n this._drawCachedSceneCanvas(context);\n context.restore();\n return this;\n }\n if (!drawFunc) {\n return this;\n }\n context.save();\n if (this._useBufferCanvas(caching) && !skipBuffer) {\n stage = this.getStage();\n bufferCanvas = stage.bufferCanvas;\n bufferContext = bufferCanvas.getContext();\n bufferContext.clear();\n bufferContext.save();\n bufferContext._applyLineJoin(this);\n if (!caching) {\n if (layer) {\n layer._applyTransform(this, bufferContext, top);\n } else {\n var m = this.getAbsoluteTransform(top).getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n }\n }\n drawFunc.call(this, bufferContext, this);\n bufferContext.restore();\n var ratio = bufferCanvas.pixelRatio;\n if (hasShadow && !canvas.hitCanvas) {\n context.save();\n context._applyShadow(this);\n context._applyOpacity(this);\n context._applyGlobalCompositeOperation(this);\n context.drawImage(bufferCanvas._canvas, 0, 0, bufferCanvas.width / ratio, bufferCanvas.height / ratio);\n context.restore();\n } else {\n context._applyOpacity(this);\n context._applyGlobalCompositeOperation(this);\n context.drawImage(bufferCanvas._canvas, 0, 0, bufferCanvas.width / ratio, bufferCanvas.height / ratio);\n }\n } else {\n context._applyLineJoin(this);\n if (!caching) {\n if (layer) {\n layer._applyTransform(this, context, top);\n } else {\n var o = this.getAbsoluteTransform(top).getMatrix();\n context.transform(o[0], o[1], o[2], o[3], o[4], o[5]);\n }\n }\n if (hasShadow && hasStroke && !canvas.hitCanvas) {\n context.save();\n if (!caching) {\n context._applyOpacity(this);\n context._applyGlobalCompositeOperation(this);\n }\n context._applyShadow(this);\n drawFunc.call(this, context, this);\n context.restore();\n if (this.hasFill() && this.shadowForStrokeEnabled()) {\n drawFunc.call(this, context, this);\n }\n } else if (hasShadow && !canvas.hitCanvas) {\n context.save();\n if (!caching) {\n context._applyOpacity(this);\n context._applyGlobalCompositeOperation(this);\n }\n context._applyShadow(this);\n drawFunc.call(this, context, this);\n context.restore();\n } else {\n if (!caching) {\n context._applyOpacity(this);\n context._applyGlobalCompositeOperation(this);\n }\n drawFunc.call(this, context, this);\n }\n }\n context.restore();\n return this;\n };\n Shape.prototype.drawHit = function (can, top, caching) {\n var layer = this.getLayer(),\n canvas = can || layer.hitCanvas,\n context = canvas && canvas.getContext(),\n drawFunc = this.hitFunc() || this.sceneFunc(),\n cachedCanvas = this._getCanvasCache(),\n cachedHitCanvas = cachedCanvas && cachedCanvas.hit;\n if (!this.colorKey) {\n console.log(this);\n Util_1.Util.warn('Looks like your canvas has a destroyed shape in it. Do not reuse shape after you destroyed it. See the shape in logs above. If you want to reuse shape you should call remove() instead of destroy()');\n }\n if (!this.shouldDrawHit() && !caching) {\n return this;\n }\n if (cachedHitCanvas) {\n context.save();\n layer._applyTransform(this, context, top);\n this._drawCachedHitCanvas(context);\n context.restore();\n return this;\n }\n if (!drawFunc) {\n return this;\n }\n context.save();\n context._applyLineJoin(this);\n if (!caching) {\n if (layer) {\n layer._applyTransform(this, context, top);\n } else {\n var o = this.getAbsoluteTransform(top).getMatrix();\n context.transform(o[0], o[1], o[2], o[3], o[4], o[5]);\n }\n }\n drawFunc.call(this, context, this);\n context.restore();\n return this;\n };\n Shape.prototype.drawHitFromCache = function (alphaThreshold) {\n if (alphaThreshold === void 0) {\n alphaThreshold = 0;\n }\n var cachedCanvas = this._getCanvasCache(),\n sceneCanvas = this._getCachedSceneCanvas(),\n hitCanvas = cachedCanvas.hit,\n hitContext = hitCanvas.getContext(),\n hitWidth = hitCanvas.getWidth(),\n hitHeight = hitCanvas.getHeight(),\n hitImageData,\n hitData,\n len,\n rgbColorKey,\n i,\n alpha;\n hitContext.clear();\n hitContext.drawImage(sceneCanvas._canvas, 0, 0, hitWidth, hitHeight);\n try {\n hitImageData = hitContext.getImageData(0, 0, hitWidth, hitHeight);\n hitData = hitImageData.data;\n len = hitData.length;\n rgbColorKey = Util_1.Util._hexToRgb(this.colorKey);\n for (i = 0; i < len; i += 4) {\n alpha = hitData[i + 3];\n if (alpha > alphaThreshold) {\n hitData[i] = rgbColorKey.r;\n hitData[i + 1] = rgbColorKey.g;\n hitData[i + 2] = rgbColorKey.b;\n hitData[i + 3] = 255;\n } else {\n hitData[i + 3] = 0;\n }\n }\n hitContext.putImageData(hitImageData, 0, 0);\n } catch (e) {\n Util_1.Util.error('Unable to draw hit graph from cached scene canvas. ' + e.message);\n }\n return this;\n };\n Shape.prototype.hasPointerCapture = function (pointerId) {\n return PointerEvents.hasPointerCapture(pointerId, this);\n };\n Shape.prototype.setPointerCapture = function (pointerId) {\n PointerEvents.setPointerCapture(pointerId, this);\n };\n Shape.prototype.releaseCapture = function (pointerId) {\n PointerEvents.releaseCapture(pointerId, this);\n };\n return Shape;\n}(Node_1.Node);\nexports.Shape = Shape;\nShape.prototype._fillFunc = _fillFunc;\nShape.prototype._strokeFunc = _strokeFunc;\nShape.prototype._fillFuncHit = _fillFuncHit;\nShape.prototype._strokeFuncHit = _strokeFuncHit;\nShape.prototype._centroid = false;\nShape.prototype.nodeType = 'Shape';\nGlobal_1._registerNode(Shape);\nFactory_1.Factory.addGetterSetter(Shape, 'stroke', undefined, Validators_1.getStringValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'strokeWidth', 2, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'hitStrokeWidth', 'auto', Validators_1.getNumberOrAutoValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'strokeHitEnabled', true, Validators_1.getBooleanValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'perfectDrawEnabled', true, Validators_1.getBooleanValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'shadowForStrokeEnabled', true, Validators_1.getBooleanValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'lineJoin');\nFactory_1.Factory.addGetterSetter(Shape, 'lineCap');\nFactory_1.Factory.addGetterSetter(Shape, 'sceneFunc');\nFactory_1.Factory.addGetterSetter(Shape, 'hitFunc');\nFactory_1.Factory.addGetterSetter(Shape, 'dash');\nFactory_1.Factory.addGetterSetter(Shape, 'dashOffset', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'shadowColor', undefined, Validators_1.getStringValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'shadowBlur', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'shadowOpacity', 1, Validators_1.getNumberValidator());\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'shadowOffset', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Shape, 'shadowOffsetX', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'shadowOffsetY', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternImage');\nFactory_1.Factory.addGetterSetter(Shape, 'fill', undefined, Validators_1.getStringValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternX', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternY', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'fillLinearGradientColorStops');\nFactory_1.Factory.addGetterSetter(Shape, 'strokeLinearGradientColorStops');\nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientStartRadius', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientEndRadius', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientColorStops');\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternRepeat', 'repeat');\nFactory_1.Factory.addGetterSetter(Shape, 'fillEnabled', true);\nFactory_1.Factory.addGetterSetter(Shape, 'strokeEnabled', true);\nFactory_1.Factory.addGetterSetter(Shape, 'shadowEnabled', true);\nFactory_1.Factory.addGetterSetter(Shape, 'dashEnabled', true);\nFactory_1.Factory.addGetterSetter(Shape, 'strokeScaleEnabled', true);\nFactory_1.Factory.addGetterSetter(Shape, 'fillPriority', 'color');\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'fillPatternOffset', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternOffsetX', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternOffsetY', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'fillPatternScale', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternScaleX', 1, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternScaleY', 1, Validators_1.getNumberValidator());\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'fillLinearGradientStartPoint', ['x', 'y']);\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'strokeLinearGradientStartPoint', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Shape, 'fillLinearGradientStartPointX', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'strokeLinearGradientStartPointX', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillLinearGradientStartPointY', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'strokeLinearGradientStartPointY', 0);\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'fillLinearGradientEndPoint', ['x', 'y']);\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'strokeLinearGradientEndPoint', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Shape, 'fillLinearGradientEndPointX', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'strokeLinearGradientEndPointX', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillLinearGradientEndPointY', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'strokeLinearGradientEndPointY', 0);\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'fillRadialGradientStartPoint', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientStartPointX', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientStartPointY', 0);\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'fillRadialGradientEndPoint', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientEndPointX', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientEndPointY', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternRotation', 0);\nFactory_1.Factory.backCompat(Shape, {\n dashArray: 'dash',\n getDashArray: 'getDash',\n setDashArray: 'getDash',\n drawFunc: 'sceneFunc',\n getDrawFunc: 'getSceneFunc',\n setDrawFunc: 'setSceneFunc',\n drawHitFunc: 'hitFunc',\n getDrawHitFunc: 'getHitFunc',\n setDrawHitFunc: 'setHitFunc'\n});\nUtil_1.Collection.mapMethods(Shape);","define(function () {\n \"use strict\";\n\n return window.document;\n});","define([\"./selector-sizzle\"], function () {\n \"use strict\";\n});","// Initialize a jQuery object\ndefine([\"../core\", \"../var/document\", \"../var/isFunction\", \"./var/rsingleTag\", \"../traversing/findFilter\"], function (jQuery, document, isFunction, rsingleTag) {\n \"use strict\";\n\n // A central reference to the root jQuery(document)\n var rootjQuery,\n // A simple way to check for HTML strings\n // Prioritize #id over to avoid XSS via location.hash (#9521)\n // Strict HTML recognition (#11290: must start with <)\n // Shortcut simple #id case for speed\n rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n init = jQuery.fn.init = function (selector, context, root) {\n var match, elem;\n\n // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n if (!selector) {\n return this;\n }\n\n // Method init() accepts an alternate rootjQuery\n // so migrate can support jQuery.sub (gh-2101)\n root = root || rootjQuery;\n\n // Handle HTML strings\n if (typeof selector === \"string\") {\n if (selector[0] === \"<\" && selector[selector.length - 1] === \">\" && selector.length >= 3) {\n // Assume that strings that start and end with <> are HTML and skip the regex check\n match = [null, selector, null];\n } else {\n match = rquickExpr.exec(selector);\n }\n\n // Match html or make sure no context is specified for #id\n if (match && (match[1] || !context)) {\n // HANDLE: $(html) -> $(array)\n if (match[1]) {\n context = context instanceof jQuery ? context[0] : context;\n\n // Option to run scripts is true for back-compat\n // Intentionally let the error be thrown if parseHTML is not present\n jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true));\n\n // HANDLE: $(html, props)\n if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n for (match in context) {\n // Properties of context are called as methods if possible\n if (isFunction(this[match])) {\n this[match](context[match]);\n\n // ...and otherwise set as attributes\n } else {\n this.attr(match, context[match]);\n }\n }\n }\n return this;\n\n // HANDLE: $(#id)\n } else {\n elem = document.getElementById(match[2]);\n if (elem) {\n // Inject the element directly into the jQuery object\n this[0] = elem;\n this.length = 1;\n }\n return this;\n }\n\n // HANDLE: $(expr, $(...))\n } else if (!context || context.jquery) {\n return (context || root).find(selector);\n\n // HANDLE: $(expr, context)\n // (which is just equivalent to: $(context).find(expr)\n } else {\n return this.constructor(context).find(selector);\n }\n\n // HANDLE: $(DOMElement)\n } else if (selector.nodeType) {\n this[0] = selector;\n this.length = 1;\n return this;\n\n // HANDLE: $(function)\n // Shortcut for document ready\n } else if (isFunction(selector)) {\n return root.ready !== undefined ? root.ready(selector) :\n // Execute immediately if ready is not present\n selector(jQuery);\n }\n return jQuery.makeArray(selector, this);\n };\n\n // Give the init function the jQuery prototype for later instantiation\n init.prototype = jQuery.fn;\n\n // Initialize central reference\n rootjQuery = jQuery(document);\n return init;\n});","var Konva = require('./_FullInternals').Konva;\nKonva._injectGlobal(Konva);\nexports['default'] = Konva;\nmodule.exports = exports['default'];","define([\"../Data\"], function (Data) {\n \"use strict\";\n\n return new Data();\n});","define(function () {\n \"use strict\";\n\n function nodeName(elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n }\n ;\n return nodeName;\n});","define(function () {\n \"use strict\";\n\n // Only count HTML whitespace\n // Other whitespace should count in values\n // https://infra.spec.whatwg.org/#ascii-whitespace\n return /[^\\x20\\t\\r\\n\\f]+/g;\n});","define(function () {\n \"use strict\";\n\n // All support tests are defined in their respective modules.\n return {};\n});","define([\"../core\", \"../core/toType\", \"../var/isFunction\"], function (jQuery, toType, isFunction) {\n \"use strict\";\n\n // Multifunctional method to get and set values of a collection\n // The value/s can optionally be executed if it's a function\n var access = function (elems, fn, key, value, chainable, emptyGet, raw) {\n var i = 0,\n len = elems.length,\n bulk = key == null;\n\n // Sets many values\n if (toType(key) === \"object\") {\n chainable = true;\n for (i in key) {\n access(elems, fn, i, key[i], true, emptyGet, raw);\n }\n\n // Sets one value\n } else if (value !== undefined) {\n chainable = true;\n if (!isFunction(value)) {\n raw = true;\n }\n if (bulk) {\n // Bulk operations run against the entire set\n if (raw) {\n fn.call(elems, value);\n fn = null;\n\n // ...except when executing function values\n } else {\n bulk = fn;\n fn = function (elem, _key, value) {\n return bulk.call(jQuery(elem), value);\n };\n }\n }\n if (fn) {\n for (; i < len; i++) {\n fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n }\n }\n }\n if (chainable) {\n return elems;\n }\n\n // Gets\n if (bulk) {\n return fn.call(elems);\n }\n return len ? fn(elems[0], key) : emptyGet;\n };\n return access;\n});","define([\"./core\", \"./var/document\", \"./var/isFunction\", \"./var/rnothtmlwhite\", \"./ajax/var/location\", \"./ajax/var/nonce\", \"./ajax/var/rquery\", \"./core/init\", \"./core/parseXML\", \"./event/trigger\", \"./deferred\", \"./serialize\" // jQuery.param\n], function (jQuery, document, isFunction, rnothtmlwhite, location, nonce, rquery) {\n \"use strict\";\n\n var r20 = /%20/g,\n rhash = /#.*$/,\n rantiCache = /([?&])_=[^&]*/,\n rheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n // #7653, #8125, #8152: local protocol detection\n rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n rnoContent = /^(?:GET|HEAD)$/,\n rprotocol = /^\\/\\//,\n /* Prefilters\n * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n * 2) These are called:\n * - BEFORE asking for a transport\n * - AFTER param serialization (s.data is a string if s.processData is true)\n * 3) key is the dataType\n * 4) the catchall symbol \"*\" can be used\n * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n */\n prefilters = {},\n /* Transports bindings\n * 1) key is the dataType\n * 2) the catchall symbol \"*\" can be used\n * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n */\n transports = {},\n // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n allTypes = \"*/\".concat(\"*\"),\n // Anchor tag for parsing the document origin\n originAnchor = document.createElement(\"a\");\n originAnchor.href = location.href;\n\n // Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\n function addToPrefiltersOrTransports(structure) {\n // dataTypeExpression is optional and defaults to \"*\"\n return function (dataTypeExpression, func) {\n if (typeof dataTypeExpression !== \"string\") {\n func = dataTypeExpression;\n dataTypeExpression = \"*\";\n }\n var dataType,\n i = 0,\n dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];\n if (isFunction(func)) {\n // For each dataType in the dataTypeExpression\n while (dataType = dataTypes[i++]) {\n // Prepend if requested\n if (dataType[0] === \"+\") {\n dataType = dataType.slice(1) || \"*\";\n (structure[dataType] = structure[dataType] || []).unshift(func);\n\n // Otherwise append\n } else {\n (structure[dataType] = structure[dataType] || []).push(func);\n }\n }\n }\n };\n }\n\n // Base inspection function for prefilters and transports\n function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\n var inspected = {},\n seekingTransport = structure === transports;\n function inspect(dataType) {\n var selected;\n inspected[dataType] = true;\n jQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) {\n var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);\n if (typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[dataTypeOrTransport]) {\n options.dataTypes.unshift(dataTypeOrTransport);\n inspect(dataTypeOrTransport);\n return false;\n } else if (seekingTransport) {\n return !(selected = dataTypeOrTransport);\n }\n });\n return selected;\n }\n return inspect(options.dataTypes[0]) || !inspected[\"*\"] && inspect(\"*\");\n }\n\n // A special extend for ajax options\n // that takes \"flat\" options (not to be deep extended)\n // Fixes #9887\n function ajaxExtend(target, src) {\n var key,\n deep,\n flatOptions = jQuery.ajaxSettings.flatOptions || {};\n for (key in src) {\n if (src[key] !== undefined) {\n (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key];\n }\n }\n if (deep) {\n jQuery.extend(true, target, deep);\n }\n return target;\n }\n\n /* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\n function ajaxHandleResponses(s, jqXHR, responses) {\n var ct,\n type,\n finalDataType,\n firstDataType,\n contents = s.contents,\n dataTypes = s.dataTypes;\n\n // Remove auto dataType and get content-type in the process\n while (dataTypes[0] === \"*\") {\n dataTypes.shift();\n if (ct === undefined) {\n ct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n }\n }\n\n // Check if we're dealing with a known content-type\n if (ct) {\n for (type in contents) {\n if (contents[type] && contents[type].test(ct)) {\n dataTypes.unshift(type);\n break;\n }\n }\n }\n\n // Check to see if we have a response for the expected dataType\n if (dataTypes[0] in responses) {\n finalDataType = dataTypes[0];\n } else {\n // Try convertible dataTypes\n for (type in responses) {\n if (!dataTypes[0] || s.converters[type + \" \" + dataTypes[0]]) {\n finalDataType = type;\n break;\n }\n if (!firstDataType) {\n firstDataType = type;\n }\n }\n\n // Or just use first one\n finalDataType = finalDataType || firstDataType;\n }\n\n // If we found a dataType\n // We add the dataType to the list if needed\n // and return the corresponding response\n if (finalDataType) {\n if (finalDataType !== dataTypes[0]) {\n dataTypes.unshift(finalDataType);\n }\n return responses[finalDataType];\n }\n }\n\n /* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\n function ajaxConvert(s, response, jqXHR, isSuccess) {\n var conv2,\n current,\n conv,\n tmp,\n prev,\n converters = {},\n // Work with a copy of dataTypes in case we need to modify it for conversion\n dataTypes = s.dataTypes.slice();\n\n // Create converters map with lowercased keys\n if (dataTypes[1]) {\n for (conv in s.converters) {\n converters[conv.toLowerCase()] = s.converters[conv];\n }\n }\n current = dataTypes.shift();\n\n // Convert to each sequential dataType\n while (current) {\n if (s.responseFields[current]) {\n jqXHR[s.responseFields[current]] = response;\n }\n\n // Apply the dataFilter if provided\n if (!prev && isSuccess && s.dataFilter) {\n response = s.dataFilter(response, s.dataType);\n }\n prev = current;\n current = dataTypes.shift();\n if (current) {\n // There's only work to do if current dataType is non-auto\n if (current === \"*\") {\n current = prev;\n\n // Convert response if prev dataType is non-auto and differs from current\n } else if (prev !== \"*\" && prev !== current) {\n // Seek a direct converter\n conv = converters[prev + \" \" + current] || converters[\"* \" + current];\n\n // If none found, seek a pair\n if (!conv) {\n for (conv2 in converters) {\n // If conv2 outputs current\n tmp = conv2.split(\" \");\n if (tmp[1] === current) {\n // If prev can be converted to accepted input\n conv = converters[prev + \" \" + tmp[0]] || converters[\"* \" + tmp[0]];\n if (conv) {\n // Condense equivalence converters\n if (conv === true) {\n conv = converters[conv2];\n\n // Otherwise, insert the intermediate dataType\n } else if (converters[conv2] !== true) {\n current = tmp[0];\n dataTypes.unshift(tmp[1]);\n }\n break;\n }\n }\n }\n }\n\n // Apply converter (if not an equivalence)\n if (conv !== true) {\n // Unless errors are allowed to bubble, catch and return them\n if (conv && s.throws) {\n response = conv(response);\n } else {\n try {\n response = conv(response);\n } catch (e) {\n return {\n state: \"parsererror\",\n error: conv ? e : \"No conversion from \" + prev + \" to \" + current\n };\n }\n }\n }\n }\n }\n }\n return {\n state: \"success\",\n data: response\n };\n }\n jQuery.extend({\n // Counter for holding the number of active queries\n active: 0,\n // Last-Modified header cache for next request\n lastModified: {},\n etag: {},\n ajaxSettings: {\n url: location.href,\n type: \"GET\",\n isLocal: rlocalProtocol.test(location.protocol),\n global: true,\n processData: true,\n async: true,\n contentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n /*\n timeout: 0,\n data: null,\n dataType: null,\n username: null,\n password: null,\n cache: null,\n throws: false,\n traditional: false,\n headers: {},\n */\n\n accepts: {\n \"*\": allTypes,\n text: \"text/plain\",\n html: \"text/html\",\n xml: \"application/xml, text/xml\",\n json: \"application/json, text/javascript\"\n },\n contents: {\n xml: /\\bxml\\b/,\n html: /\\bhtml/,\n json: /\\bjson\\b/\n },\n responseFields: {\n xml: \"responseXML\",\n text: \"responseText\",\n json: \"responseJSON\"\n },\n // Data converters\n // Keys separate source (or catchall \"*\") and destination types with a single space\n converters: {\n // Convert anything to text\n \"* text\": String,\n // Text to html (true = no transformation)\n \"text html\": true,\n // Evaluate text as a json expression\n \"text json\": JSON.parse,\n // Parse text as xml\n \"text xml\": jQuery.parseXML\n },\n // For options that shouldn't be deep extended:\n // you can add your own custom options here if\n // and when you create one that shouldn't be\n // deep extended (see ajaxExtend)\n flatOptions: {\n url: true,\n context: true\n }\n },\n // Creates a full fledged settings object into target\n // with both ajaxSettings and settings fields.\n // If target is omitted, writes into ajaxSettings.\n ajaxSetup: function (target, settings) {\n return settings ?\n // Building a settings object\n ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) :\n // Extending ajaxSettings\n ajaxExtend(jQuery.ajaxSettings, target);\n },\n ajaxPrefilter: addToPrefiltersOrTransports(prefilters),\n ajaxTransport: addToPrefiltersOrTransports(transports),\n // Main method\n ajax: function (url, options) {\n // If url is an object, simulate pre-1.5 signature\n if (typeof url === \"object\") {\n options = url;\n url = undefined;\n }\n\n // Force options to be an object\n options = options || {};\n var transport,\n // URL without anti-cache param\n cacheURL,\n // Response headers\n responseHeadersString,\n responseHeaders,\n // timeout handle\n timeoutTimer,\n // Url cleanup var\n urlAnchor,\n // Request state (becomes false upon send and true upon completion)\n completed,\n // To know if global events are to be dispatched\n fireGlobals,\n // Loop variable\n i,\n // uncached part of the url\n uncached,\n // Create the final options object\n s = jQuery.ajaxSetup({}, options),\n // Callbacks context\n callbackContext = s.context || s,\n // Context for global events is callbackContext if it is a DOM node or jQuery collection\n globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery(callbackContext) : jQuery.event,\n // Deferreds\n deferred = jQuery.Deferred(),\n completeDeferred = jQuery.Callbacks(\"once memory\"),\n // Status-dependent callbacks\n statusCode = s.statusCode || {},\n // Headers (they are sent all at once)\n requestHeaders = {},\n requestHeadersNames = {},\n // Default abort message\n strAbort = \"canceled\",\n // Fake xhr\n jqXHR = {\n readyState: 0,\n // Builds headers hashtable if needed\n getResponseHeader: function (key) {\n var match;\n if (completed) {\n if (!responseHeaders) {\n responseHeaders = {};\n while (match = rheaders.exec(responseHeadersString)) {\n responseHeaders[match[1].toLowerCase() + \" \"] = (responseHeaders[match[1].toLowerCase() + \" \"] || []).concat(match[2]);\n }\n }\n match = responseHeaders[key.toLowerCase() + \" \"];\n }\n return match == null ? null : match.join(\", \");\n },\n // Raw string\n getAllResponseHeaders: function () {\n return completed ? responseHeadersString : null;\n },\n // Caches the header\n setRequestHeader: function (name, value) {\n if (completed == null) {\n name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name;\n requestHeaders[name] = value;\n }\n return this;\n },\n // Overrides response content-type header\n overrideMimeType: function (type) {\n if (completed == null) {\n s.mimeType = type;\n }\n return this;\n },\n // Status-dependent callbacks\n statusCode: function (map) {\n var code;\n if (map) {\n if (completed) {\n // Execute the appropriate callbacks\n jqXHR.always(map[jqXHR.status]);\n } else {\n // Lazy-add the new callbacks in a way that preserves old ones\n for (code in map) {\n statusCode[code] = [statusCode[code], map[code]];\n }\n }\n }\n return this;\n },\n // Cancel the request\n abort: function (statusText) {\n var finalText = statusText || strAbort;\n if (transport) {\n transport.abort(finalText);\n }\n done(0, finalText);\n return this;\n }\n };\n\n // Attach deferreds\n deferred.promise(jqXHR);\n\n // Add protocol if not provided (prefilters might expect it)\n // Handle falsy url in the settings object (#10093: consistency with old signature)\n // We also use the url parameter if available\n s.url = ((url || s.url || location.href) + \"\").replace(rprotocol, location.protocol + \"//\");\n\n // Alias method option to type as per ticket #12004\n s.type = options.method || options.type || s.method || s.type;\n\n // Extract dataTypes list\n s.dataTypes = (s.dataType || \"*\").toLowerCase().match(rnothtmlwhite) || [\"\"];\n\n // A cross-domain request is in order when the origin doesn't match the current origin.\n if (s.crossDomain == null) {\n urlAnchor = document.createElement(\"a\");\n\n // Support: IE <=8 - 11, Edge 12 - 15\n // IE throws exception on accessing the href property if url is malformed,\n // e.g. http://example.com:80x/\n try {\n urlAnchor.href = s.url;\n\n // Support: IE <=8 - 11 only\n // Anchor's host property isn't correctly set when s.url is relative\n urlAnchor.href = urlAnchor.href;\n s.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host;\n } catch (e) {\n // If there is an error parsing the URL, assume it is crossDomain,\n // it can be rejected by the transport if it is invalid\n s.crossDomain = true;\n }\n }\n\n // Convert data if not already a string\n if (s.data && s.processData && typeof s.data !== \"string\") {\n s.data = jQuery.param(s.data, s.traditional);\n }\n\n // Apply prefilters\n inspectPrefiltersOrTransports(prefilters, s, options, jqXHR);\n\n // If request was aborted inside a prefilter, stop there\n if (completed) {\n return jqXHR;\n }\n\n // We can fire global events as of now if asked to\n // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n fireGlobals = jQuery.event && s.global;\n\n // Watch for a new set of requests\n if (fireGlobals && jQuery.active++ === 0) {\n jQuery.event.trigger(\"ajaxStart\");\n }\n\n // Uppercase the type\n s.type = s.type.toUpperCase();\n\n // Determine if request has content\n s.hasContent = !rnoContent.test(s.type);\n\n // Save the URL in case we're toying with the If-Modified-Since\n // and/or If-None-Match header later on\n // Remove hash to simplify url manipulation\n cacheURL = s.url.replace(rhash, \"\");\n\n // More options handling for requests with no content\n if (!s.hasContent) {\n // Remember the hash so we can put it back\n uncached = s.url.slice(cacheURL.length);\n\n // If data is available and should be processed, append data to url\n if (s.data && (s.processData || typeof s.data === \"string\")) {\n cacheURL += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data;\n\n // #9682: remove data so that it's not used in an eventual retry\n delete s.data;\n }\n\n // Add or update anti-cache param if needed\n if (s.cache === false) {\n cacheURL = cacheURL.replace(rantiCache, \"$1\");\n uncached = (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + nonce.guid++ + uncached;\n }\n\n // Put hash and anti-cache on the URL that will be requested (gh-1732)\n s.url = cacheURL + uncached;\n\n // Change '%20' to '+' if this is encoded form body content (gh-2658)\n } else if (s.data && s.processData && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0) {\n s.data = s.data.replace(r20, \"+\");\n }\n\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n if (jQuery.lastModified[cacheURL]) {\n jqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\n }\n if (jQuery.etag[cacheURL]) {\n jqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\n }\n }\n\n // Set the correct header, if data is being sent\n if (s.data && s.hasContent && s.contentType !== false || options.contentType) {\n jqXHR.setRequestHeader(\"Content-Type\", s.contentType);\n }\n\n // Set the Accepts header for the server, depending on the dataType\n jqXHR.setRequestHeader(\"Accept\", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\") : s.accepts[\"*\"]);\n\n // Check for headers option\n for (i in s.headers) {\n jqXHR.setRequestHeader(i, s.headers[i]);\n }\n\n // Allow custom headers/mimetypes and early abort\n if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || completed)) {\n // Abort if not done already and return\n return jqXHR.abort();\n }\n\n // Aborting is no longer a cancellation\n strAbort = \"abort\";\n\n // Install callbacks on deferreds\n completeDeferred.add(s.complete);\n jqXHR.done(s.success);\n jqXHR.fail(s.error);\n\n // Get transport\n transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR);\n\n // If no transport, we auto-abort\n if (!transport) {\n done(-1, \"No Transport\");\n } else {\n jqXHR.readyState = 1;\n\n // Send global event\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\n }\n\n // If request was aborted inside ajaxSend, stop there\n if (completed) {\n return jqXHR;\n }\n\n // Timeout\n if (s.async && s.timeout > 0) {\n timeoutTimer = window.setTimeout(function () {\n jqXHR.abort(\"timeout\");\n }, s.timeout);\n }\n try {\n completed = false;\n transport.send(requestHeaders, done);\n } catch (e) {\n // Rethrow post-completion exceptions\n if (completed) {\n throw e;\n }\n\n // Propagate others as results\n done(-1, e);\n }\n }\n\n // Callback for when everything is done\n function done(status, nativeStatusText, responses, headers) {\n var isSuccess,\n success,\n error,\n response,\n modified,\n statusText = nativeStatusText;\n\n // Ignore repeat invocations\n if (completed) {\n return;\n }\n completed = true;\n\n // Clear timeout if it exists\n if (timeoutTimer) {\n window.clearTimeout(timeoutTimer);\n }\n\n // Dereference transport for early garbage collection\n // (no matter how long the jqXHR object will be used)\n transport = undefined;\n\n // Cache response headers\n responseHeadersString = headers || \"\";\n\n // Set readyState\n jqXHR.readyState = status > 0 ? 4 : 0;\n\n // Determine if successful\n isSuccess = status >= 200 && status < 300 || status === 304;\n\n // Get response data\n if (responses) {\n response = ajaxHandleResponses(s, jqXHR, responses);\n }\n\n // Use a noop converter for missing script\n if (!isSuccess && jQuery.inArray(\"script\", s.dataTypes) > -1) {\n s.converters[\"text script\"] = function () {};\n }\n\n // Convert no matter what (that way responseXXX fields are always set)\n response = ajaxConvert(s, response, jqXHR, isSuccess);\n\n // If successful, handle type chaining\n if (isSuccess) {\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n modified = jqXHR.getResponseHeader(\"Last-Modified\");\n if (modified) {\n jQuery.lastModified[cacheURL] = modified;\n }\n modified = jqXHR.getResponseHeader(\"etag\");\n if (modified) {\n jQuery.etag[cacheURL] = modified;\n }\n }\n\n // if no content\n if (status === 204 || s.type === \"HEAD\") {\n statusText = \"nocontent\";\n\n // if not modified\n } else if (status === 304) {\n statusText = \"notmodified\";\n\n // If we have data, let's convert it\n } else {\n statusText = response.state;\n success = response.data;\n error = response.error;\n isSuccess = !error;\n }\n } else {\n // Extract error from statusText and normalize for non-aborts\n error = statusText;\n if (status || !statusText) {\n statusText = \"error\";\n if (status < 0) {\n status = 0;\n }\n }\n }\n\n // Set data for the fake xhr object\n jqXHR.status = status;\n jqXHR.statusText = (nativeStatusText || statusText) + \"\";\n\n // Success/Error\n if (isSuccess) {\n deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\n } else {\n deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\n }\n\n // Status-dependent callbacks\n jqXHR.statusCode(statusCode);\n statusCode = undefined;\n if (fireGlobals) {\n globalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\", [jqXHR, s, isSuccess ? success : error]);\n }\n\n // Complete\n completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]);\n\n // Handle the global AJAX counter\n if (! --jQuery.active) {\n jQuery.event.trigger(\"ajaxStop\");\n }\n }\n }\n return jqXHR;\n },\n getJSON: function (url, data, callback) {\n return jQuery.get(url, data, callback, \"json\");\n },\n getScript: function (url, callback) {\n return jQuery.get(url, undefined, callback, \"script\");\n }\n });\n jQuery.each([\"get\", \"post\"], function (_i, method) {\n jQuery[method] = function (url, data, callback, type) {\n // Shift arguments if data argument was omitted\n if (isFunction(data)) {\n type = type || callback;\n callback = data;\n data = undefined;\n }\n\n // The url can be an options object (which then must have .url)\n return jQuery.ajax(jQuery.extend({\n url: url,\n type: method,\n dataType: type,\n data: data,\n success: callback\n }, jQuery.isPlainObject(url) && url));\n };\n });\n jQuery.ajaxPrefilter(function (s) {\n var i;\n for (i in s.headers) {\n if (i.toLowerCase() === \"content-type\") {\n s.contentType = s.headers[i] || \"\";\n }\n }\n });\n return jQuery;\n});","define([\"../var/class2type\", \"../var/toString\"], function (class2type, toString) {\n \"use strict\";\n\n function toType(obj) {\n if (obj == null) {\n return obj + \"\";\n }\n\n // Support: Android <=2.3 only (functionish RegExp)\n return typeof obj === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : typeof obj;\n }\n return toType;\n});","define([\"./core\", \"./var/getProto\", \"./var/indexOf\", \"./traversing/var/dir\", \"./traversing/var/siblings\", \"./traversing/var/rneedsContext\", \"./core/nodeName\", \"./core/init\", \"./traversing/findFilter\", \"./selector\"], function (jQuery, getProto, indexOf, dir, siblings, rneedsContext, nodeName) {\n \"use strict\";\n\n var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n // Methods guaranteed to produce a unique set when starting from a unique set\n guaranteedUnique = {\n children: true,\n contents: true,\n next: true,\n prev: true\n };\n jQuery.fn.extend({\n has: function (target) {\n var targets = jQuery(target, this),\n l = targets.length;\n return this.filter(function () {\n var i = 0;\n for (; i < l; i++) {\n if (jQuery.contains(this, targets[i])) {\n return true;\n }\n }\n });\n },\n closest: function (selectors, context) {\n var cur,\n i = 0,\n l = this.length,\n matched = [],\n targets = typeof selectors !== \"string\" && jQuery(selectors);\n\n // Positional selectors never match, since there's no _selection_ context\n if (!rneedsContext.test(selectors)) {\n for (; i < l; i++) {\n for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n // Always skip document fragments\n if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 :\n // Don't pass non-elements to Sizzle\n cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) {\n matched.push(cur);\n break;\n }\n }\n }\n }\n return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\n },\n // Determine the position of an element within the set\n index: function (elem) {\n // No argument, return index in parent\n if (!elem) {\n return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n }\n\n // Index in selector\n if (typeof elem === \"string\") {\n return indexOf.call(jQuery(elem), this[0]);\n }\n\n // Locate the position of the desired element\n return indexOf.call(this,\n // If it receives a jQuery object, the first element is used\n elem.jquery ? elem[0] : elem);\n },\n add: function (selector, context) {\n return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context))));\n },\n addBack: function (selector) {\n return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n }\n });\n function sibling(cur, dir) {\n while ((cur = cur[dir]) && cur.nodeType !== 1) {}\n return cur;\n }\n jQuery.each({\n parent: function (elem) {\n var parent = elem.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function (elem) {\n return dir(elem, \"parentNode\");\n },\n parentsUntil: function (elem, _i, until) {\n return dir(elem, \"parentNode\", until);\n },\n next: function (elem) {\n return sibling(elem, \"nextSibling\");\n },\n prev: function (elem) {\n return sibling(elem, \"previousSibling\");\n },\n nextAll: function (elem) {\n return dir(elem, \"nextSibling\");\n },\n prevAll: function (elem) {\n return dir(elem, \"previousSibling\");\n },\n nextUntil: function (elem, _i, until) {\n return dir(elem, \"nextSibling\", until);\n },\n prevUntil: function (elem, _i, until) {\n return dir(elem, \"previousSibling\", until);\n },\n siblings: function (elem) {\n return siblings((elem.parentNode || {}).firstChild, elem);\n },\n children: function (elem) {\n return siblings(elem.firstChild);\n },\n contents: function (elem) {\n if (elem.contentDocument != null &&\n // Support: IE 11+\n // elements with no `data` attribute has an object\n // `contentDocument` with a `null` prototype.\n getProto(elem.contentDocument)) {\n return elem.contentDocument;\n }\n\n // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n // Treat the template element as a regular one in browsers that\n // don't support it.\n if (nodeName(elem, \"template\")) {\n elem = elem.content || elem;\n }\n return jQuery.merge([], elem.childNodes);\n }\n }, function (name, fn) {\n jQuery.fn[name] = function (until, selector) {\n var matched = jQuery.map(this, fn, until);\n if (name.slice(-5) !== \"Until\") {\n selector = until;\n }\n if (selector && typeof selector === \"string\") {\n matched = jQuery.filter(selector, matched);\n }\n if (this.length > 1) {\n // Remove duplicates\n if (!guaranteedUnique[name]) {\n jQuery.uniqueSort(matched);\n }\n\n // Reverse order for parents* and prev-derivatives\n if (rparentsprev.test(name)) {\n matched.reverse();\n }\n }\n return this.pushStack(matched);\n };\n });\n return jQuery;\n});","define([\"./core\", \"./var/isFunction\", \"./var/slice\", \"./callbacks\"], function (jQuery, isFunction, slice) {\n \"use strict\";\n\n function Identity(v) {\n return v;\n }\n function Thrower(ex) {\n throw ex;\n }\n function adoptValue(value, resolve, reject, noValue) {\n var method;\n try {\n // Check for promise aspect first to privilege synchronous behavior\n if (value && isFunction(method = value.promise)) {\n method.call(value).done(resolve).fail(reject);\n\n // Other thenables\n } else if (value && isFunction(method = value.then)) {\n method.call(value, resolve, reject);\n\n // Other non-thenables\n } else {\n // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n // * false: [ value ].slice( 0 ) => resolve( value )\n // * true: [ value ].slice( 1 ) => resolve()\n resolve.apply(undefined, [value].slice(noValue));\n }\n\n // For Promises/A+, convert exceptions into rejections\n // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n // Deferred#then to conditionally suppress rejection.\n } catch (value) {\n // Support: Android 4.0 only\n // Strict mode functions invoked without .call/.apply get global-object context\n reject.apply(undefined, [value]);\n }\n }\n jQuery.extend({\n Deferred: function (func) {\n var tuples = [\n // action, add listener, callbacks,\n // ... .then handlers, argument index, [final state]\n [\"notify\", \"progress\", jQuery.Callbacks(\"memory\"), jQuery.Callbacks(\"memory\"), 2], [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 0, \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 1, \"rejected\"]],\n state = \"pending\",\n promise = {\n state: function () {\n return state;\n },\n always: function () {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n \"catch\": function (fn) {\n return promise.then(null, fn);\n },\n // Keep pipe for back-compat\n pipe: function /* fnDone, fnFail, fnProgress */\n () {\n var fns = arguments;\n return jQuery.Deferred(function (newDefer) {\n jQuery.each(tuples, function (_i, tuple) {\n // Map tuples (progress, done, fail) to arguments (done, fail, progress)\n var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]];\n\n // deferred.progress(function() { bind to newDefer or newDefer.notify })\n // deferred.done(function() { bind to newDefer or newDefer.resolve })\n // deferred.fail(function() { bind to newDefer or newDefer.reject })\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n if (returned && isFunction(returned.promise)) {\n returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);\n } else {\n newDefer[tuple[0] + \"With\"](this, fn ? [returned] : arguments);\n }\n });\n });\n fns = null;\n }).promise();\n },\n then: function (onFulfilled, onRejected, onProgress) {\n var maxDepth = 0;\n function resolve(depth, deferred, handler, special) {\n return function () {\n var that = this,\n args = arguments,\n mightThrow = function () {\n var returned, then;\n\n // Support: Promises/A+ section 2.3.3.3.3\n // https://promisesaplus.com/#point-59\n // Ignore double-resolution attempts\n if (depth < maxDepth) {\n return;\n }\n returned = handler.apply(that, args);\n\n // Support: Promises/A+ section 2.3.1\n // https://promisesaplus.com/#point-48\n if (returned === deferred.promise()) {\n throw new TypeError(\"Thenable self-resolution\");\n }\n\n // Support: Promises/A+ sections 2.3.3.1, 3.5\n // https://promisesaplus.com/#point-54\n // https://promisesaplus.com/#point-75\n // Retrieve `then` only once\n then = returned && (\n // Support: Promises/A+ section 2.3.4\n // https://promisesaplus.com/#point-64\n // Only check objects and functions for thenability\n typeof returned === \"object\" || typeof returned === \"function\") && returned.then;\n\n // Handle a returned thenable\n if (isFunction(then)) {\n // Special processors (notify) just wait for resolution\n if (special) {\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special));\n\n // Normal processors (resolve) also hook into progress\n } else {\n // ...and disregard older resolution values\n maxDepth++;\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special), resolve(maxDepth, deferred, Identity, deferred.notifyWith));\n }\n\n // Handle all other returned values\n } else {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Identity) {\n that = undefined;\n args = [returned];\n }\n\n // Process the value(s)\n // Default process is resolve\n (special || deferred.resolveWith)(that, args);\n }\n },\n // Only normal processors (resolve) catch and reject exceptions\n process = special ? mightThrow : function () {\n try {\n mightThrow();\n } catch (e) {\n if (jQuery.Deferred.exceptionHook) {\n jQuery.Deferred.exceptionHook(e, process.stackTrace);\n }\n\n // Support: Promises/A+ section 2.3.3.3.4.1\n // https://promisesaplus.com/#point-61\n // Ignore post-resolution exceptions\n if (depth + 1 >= maxDepth) {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Thrower) {\n that = undefined;\n args = [e];\n }\n deferred.rejectWith(that, args);\n }\n }\n };\n\n // Support: Promises/A+ section 2.3.3.3.1\n // https://promisesaplus.com/#point-57\n // Re-resolve promises immediately to dodge false rejection from\n // subsequent errors\n if (depth) {\n process();\n } else {\n // Call an optional hook to record the stack, in case of exception\n // since it's otherwise lost when execution goes async\n if (jQuery.Deferred.getStackHook) {\n process.stackTrace = jQuery.Deferred.getStackHook();\n }\n window.setTimeout(process);\n }\n };\n }\n return jQuery.Deferred(function (newDefer) {\n // progress_handlers.add( ... )\n tuples[0][3].add(resolve(0, newDefer, isFunction(onProgress) ? onProgress : Identity, newDefer.notifyWith));\n\n // fulfilled_handlers.add( ... )\n tuples[1][3].add(resolve(0, newDefer, isFunction(onFulfilled) ? onFulfilled : Identity));\n\n // rejected_handlers.add( ... )\n tuples[2][3].add(resolve(0, newDefer, isFunction(onRejected) ? onRejected : Thrower));\n }).promise();\n },\n // Get a promise for this deferred\n // If obj is provided, the promise aspect is added to the object\n promise: function (obj) {\n return obj != null ? jQuery.extend(obj, promise) : promise;\n }\n },\n deferred = {};\n\n // Add list-specific methods\n jQuery.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[5];\n\n // promise.progress = list.add\n // promise.done = list.add\n // promise.fail = list.add\n promise[tuple[1]] = list.add;\n\n // Handle state\n if (stateString) {\n list.add(function () {\n // state = \"resolved\" (i.e., fulfilled)\n // state = \"rejected\"\n state = stateString;\n },\n // rejected_callbacks.disable\n // fulfilled_callbacks.disable\n tuples[3 - i][2].disable,\n // rejected_handlers.disable\n // fulfilled_handlers.disable\n tuples[3 - i][3].disable,\n // progress_callbacks.lock\n tuples[0][2].lock,\n // progress_handlers.lock\n tuples[0][3].lock);\n }\n\n // progress_handlers.fire\n // fulfilled_handlers.fire\n // rejected_handlers.fire\n list.add(tuple[3].fire);\n\n // deferred.notify = function() { deferred.notifyWith(...) }\n // deferred.resolve = function() { deferred.resolveWith(...) }\n // deferred.reject = function() { deferred.rejectWith(...) }\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? undefined : this, arguments);\n return this;\n };\n\n // deferred.notifyWith = list.fireWith\n // deferred.resolveWith = list.fireWith\n // deferred.rejectWith = list.fireWith\n deferred[tuple[0] + \"With\"] = list.fireWith;\n });\n\n // Make the deferred a promise\n promise.promise(deferred);\n\n // Call given func if any\n if (func) {\n func.call(deferred, deferred);\n }\n\n // All done!\n return deferred;\n },\n // Deferred helper\n when: function (singleValue) {\n var\n // count of uncompleted subordinates\n remaining = arguments.length,\n // count of unprocessed arguments\n i = remaining,\n // subordinate fulfillment data\n resolveContexts = Array(i),\n resolveValues = slice.call(arguments),\n // the master Deferred\n master = jQuery.Deferred(),\n // subordinate callback factory\n updateFunc = function (i) {\n return function (value) {\n resolveContexts[i] = this;\n resolveValues[i] = arguments.length > 1 ? slice.call(arguments) : value;\n if (! --remaining) {\n master.resolveWith(resolveContexts, resolveValues);\n }\n };\n };\n\n // Single- and empty arguments are adopted like Promise.resolve\n if (remaining <= 1) {\n adoptValue(singleValue, master.done(updateFunc(i)).resolve, master.reject, !remaining);\n\n // Use .then() to unwrap secondary thenables (cf. gh-3000)\n if (master.state() === \"pending\" || isFunction(resolveValues[i] && resolveValues[i].then)) {\n return master.then();\n }\n }\n\n // Multiple arguments are aggregated like Promise.all array elements\n while (i--) {\n adoptValue(resolveValues[i], updateFunc(i), master.reject);\n }\n return master.promise();\n }\n });\n return jQuery;\n});","define([\"./core\", \"./var/document\", \"./var/documentElement\", \"./var/isFunction\", \"./var/rnothtmlwhite\", \"./var/rcheckableType\", \"./var/slice\", \"./data/var/acceptData\", \"./data/var/dataPriv\", \"./core/nodeName\", \"./core/init\", \"./selector\"], function (jQuery, document, documentElement, isFunction, rnothtmlwhite, rcheckableType, slice, acceptData, dataPriv, nodeName) {\n \"use strict\";\n\n var rkeyEvent = /^key/,\n rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n function returnTrue() {\n return true;\n }\n function returnFalse() {\n return false;\n }\n\n // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous, except when they are no-op.\n // So expect focus to be synchronous when the element is already active,\n // and blur to be synchronous when the element is not already active.\n // (focus and blur are always synchronous in other supported browsers,\n // this just defines when we can count on it).\n function expectSync(elem, type) {\n return elem === safeActiveElement() === (type === \"focus\");\n }\n\n // Support: IE <=9 only\n // Accessing document.activeElement can throw unexpectedly\n // https://bugs.jquery.com/ticket/13393\n function safeActiveElement() {\n try {\n return document.activeElement;\n } catch (err) {}\n }\n function on(elem, types, selector, data, fn, one) {\n var origFn, type;\n\n // Types can be a map of types/handlers\n if (typeof types === \"object\") {\n // ( types-Object, selector, data )\n if (typeof selector !== \"string\") {\n // ( types-Object, data )\n data = data || selector;\n selector = undefined;\n }\n for (type in types) {\n on(elem, type, selector, data, types[type], one);\n }\n return elem;\n }\n if (data == null && fn == null) {\n // ( types, fn )\n fn = selector;\n data = selector = undefined;\n } else if (fn == null) {\n if (typeof selector === \"string\") {\n // ( types, selector, fn )\n fn = data;\n data = undefined;\n } else {\n // ( types, data, fn )\n fn = data;\n data = selector;\n selector = undefined;\n }\n }\n if (fn === false) {\n fn = returnFalse;\n } else if (!fn) {\n return elem;\n }\n if (one === 1) {\n origFn = fn;\n fn = function (event) {\n // Can use an empty set, since event contains the info\n jQuery().off(event);\n return origFn.apply(this, arguments);\n };\n\n // Use same guid so caller can remove using origFn\n fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n }\n return elem.each(function () {\n jQuery.event.add(this, types, fn, data, selector);\n });\n }\n\n /*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\n jQuery.event = {\n global: {},\n add: function (elem, types, handler, data, selector) {\n var handleObjIn,\n eventHandle,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.get(elem);\n\n // Only attach events to objects that accept data\n if (!acceptData(elem)) {\n return;\n }\n\n // Caller can pass in an object of custom data in lieu of the handler\n if (handler.handler) {\n handleObjIn = handler;\n handler = handleObjIn.handler;\n selector = handleObjIn.selector;\n }\n\n // Ensure that invalid selectors throw exceptions at attach time\n // Evaluate against documentElement in case elem is a non-element node (e.g., document)\n if (selector) {\n jQuery.find.matchesSelector(documentElement, selector);\n }\n\n // Make sure that the handler has a unique ID, used to find/remove it later\n if (!handler.guid) {\n handler.guid = jQuery.guid++;\n }\n\n // Init the element's event structure and main handler, if this is the first\n if (!(events = elemData.events)) {\n events = elemData.events = Object.create(null);\n }\n if (!(eventHandle = elemData.handle)) {\n eventHandle = elemData.handle = function (e) {\n // Discard the second event of a jQuery.event.trigger() and\n // when an event is called after a page has unloaded\n return typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply(elem, arguments) : undefined;\n };\n }\n\n // Handle multiple events separated by a space\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort();\n\n // There *must* be a type, no attaching namespace-only handlers\n if (!type) {\n continue;\n }\n\n // If event changes its type, use the special event handlers for the changed type\n special = jQuery.event.special[type] || {};\n\n // If selector defined, determine special event api type, otherwise given type\n type = (selector ? special.delegateType : special.bindType) || type;\n\n // Update special based on newly reset type\n special = jQuery.event.special[type] || {};\n\n // handleObj is passed to all event handlers\n handleObj = jQuery.extend({\n type: type,\n origType: origType,\n data: data,\n handler: handler,\n guid: handler.guid,\n selector: selector,\n needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n namespace: namespaces.join(\".\")\n }, handleObjIn);\n\n // Init the event handler queue if we're the first\n if (!(handlers = events[type])) {\n handlers = events[type] = [];\n handlers.delegateCount = 0;\n\n // Only use addEventListener if the special events handler returns false\n if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle);\n }\n }\n }\n if (special.add) {\n special.add.call(elem, handleObj);\n if (!handleObj.handler.guid) {\n handleObj.handler.guid = handler.guid;\n }\n }\n\n // Add to the element's handler list, delegates in front\n if (selector) {\n handlers.splice(handlers.delegateCount++, 0, handleObj);\n } else {\n handlers.push(handleObj);\n }\n\n // Keep track of which events have ever been used, for event optimization\n jQuery.event.global[type] = true;\n }\n },\n // Detach an event or set of events from an element\n remove: function (elem, types, handler, selector, mappedTypes) {\n var j,\n origCount,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.hasData(elem) && dataPriv.get(elem);\n if (!elemData || !(events = elemData.events)) {\n return;\n }\n\n // Once for each type.namespace in types; type may be omitted\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort();\n\n // Unbind all events (on this namespace, if provided) for the element\n if (!type) {\n for (type in events) {\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\n }\n continue;\n }\n special = jQuery.event.special[type] || {};\n type = (selector ? special.delegateType : special.bindType) || type;\n handlers = events[type] || [];\n tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\");\n\n // Remove matching events\n origCount = j = handlers.length;\n while (j--) {\n handleObj = handlers[j];\n if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n handlers.splice(j, 1);\n if (handleObj.selector) {\n handlers.delegateCount--;\n }\n if (special.remove) {\n special.remove.call(elem, handleObj);\n }\n }\n }\n\n // Remove generic event handler if we removed something and no more handlers exist\n // (avoids potential for endless recursion during removal of special event handlers)\n if (origCount && !handlers.length) {\n if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n jQuery.removeEvent(elem, type, elemData.handle);\n }\n delete events[type];\n }\n }\n\n // Remove data and the expando if it's no longer used\n if (jQuery.isEmptyObject(events)) {\n dataPriv.remove(elem, \"handle events\");\n }\n },\n dispatch: function (nativeEvent) {\n var i,\n j,\n ret,\n matched,\n handleObj,\n handlerQueue,\n args = new Array(arguments.length),\n // Make a writable jQuery.Event from the native event object\n event = jQuery.event.fix(nativeEvent),\n handlers = (dataPriv.get(this, \"events\") || Object.create(null))[event.type] || [],\n special = jQuery.event.special[event.type] || {};\n\n // Use the fix-ed jQuery.Event rather than the (read-only) native event\n args[0] = event;\n for (i = 1; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n event.delegateTarget = this;\n\n // Call the preDispatch hook for the mapped type, and let it bail if desired\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n return;\n }\n\n // Determine handlers\n handlerQueue = jQuery.event.handlers.call(this, event, handlers);\n\n // Run delegates first; they may want to stop propagation beneath us\n i = 0;\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n event.currentTarget = matched.elem;\n j = 0;\n while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n // If the event is namespaced, then each handler is only invoked if it is\n // specially universal or its namespaces are a superset of the event's.\n if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) {\n event.handleObj = handleObj;\n event.data = handleObj.data;\n ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);\n if (ret !== undefined) {\n if ((event.result = ret) === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n }\n\n // Call the postDispatch hook for the mapped type\n if (special.postDispatch) {\n special.postDispatch.call(this, event);\n }\n return event.result;\n },\n handlers: function (event, handlers) {\n var i,\n handleObj,\n sel,\n matchedHandlers,\n matchedSelectors,\n handlerQueue = [],\n delegateCount = handlers.delegateCount,\n cur = event.target;\n\n // Find delegate handlers\n if (delegateCount &&\n // Support: IE <=9\n // Black-hole SVG instance trees (trac-13180)\n cur.nodeType &&\n // Support: Firefox <=42\n // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n // Support: IE 11 only\n // ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n !(event.type === \"click\" && event.button >= 1)) {\n for (; cur !== this; cur = cur.parentNode || this) {\n // Don't check non-elements (#13208)\n // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n if (cur.nodeType === 1 && !(event.type === \"click\" && cur.disabled === true)) {\n matchedHandlers = [];\n matchedSelectors = {};\n for (i = 0; i < delegateCount; i++) {\n handleObj = handlers[i];\n\n // Don't conflict with Object.prototype properties (#13203)\n sel = handleObj.selector + \" \";\n if (matchedSelectors[sel] === undefined) {\n matchedSelectors[sel] = handleObj.needsContext ? jQuery(sel, this).index(cur) > -1 : jQuery.find(sel, this, null, [cur]).length;\n }\n if (matchedSelectors[sel]) {\n matchedHandlers.push(handleObj);\n }\n }\n if (matchedHandlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: matchedHandlers\n });\n }\n }\n }\n }\n\n // Add the remaining (directly-bound) handlers\n cur = this;\n if (delegateCount < handlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: handlers.slice(delegateCount)\n });\n }\n return handlerQueue;\n },\n addProp: function (name, hook) {\n Object.defineProperty(jQuery.Event.prototype, name, {\n enumerable: true,\n configurable: true,\n get: isFunction(hook) ? function () {\n if (this.originalEvent) {\n return hook(this.originalEvent);\n }\n } : function () {\n if (this.originalEvent) {\n return this.originalEvent[name];\n }\n },\n set: function (value) {\n Object.defineProperty(this, name, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: value\n });\n }\n });\n },\n fix: function (originalEvent) {\n return originalEvent[jQuery.expando] ? originalEvent : new jQuery.Event(originalEvent);\n },\n special: {\n load: {\n // Prevent triggered image.load events from bubbling to window.load\n noBubble: true\n },\n click: {\n // Utilize native event to ensure correct state for checkable inputs\n setup: function (data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data;\n\n // Claim the first handler\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n // dataPriv.set( el, \"click\", ... )\n leverageNative(el, \"click\", returnTrue);\n }\n\n // Return false to allow normal processing in the caller\n return false;\n },\n trigger: function (data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data;\n\n // Force setup before triggering a click\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n leverageNative(el, \"click\");\n }\n\n // Return non-false to allow normal event-path propagation\n return true;\n },\n // For cross-browser consistency, suppress native .click() on links\n // Also prevent it if we're currently inside a leveraged native-event stack\n _default: function (event) {\n var target = event.target;\n return rcheckableType.test(target.type) && target.click && nodeName(target, \"input\") && dataPriv.get(target, \"click\") || nodeName(target, \"a\");\n }\n },\n beforeunload: {\n postDispatch: function (event) {\n // Support: Firefox 20+\n // Firefox doesn't alert if the returnValue field is not set.\n if (event.result !== undefined && event.originalEvent) {\n event.originalEvent.returnValue = event.result;\n }\n }\n }\n }\n };\n\n // Ensure the presence of an event listener that handles manually-triggered\n // synthetic events by interrupting progress until reinvoked in response to\n // *native* events that it fires directly, ensuring that state changes have\n // already occurred before other listeners are invoked.\n function leverageNative(el, type, expectSync) {\n // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n if (!expectSync) {\n if (dataPriv.get(el, type) === undefined) {\n jQuery.event.add(el, type, returnTrue);\n }\n return;\n }\n\n // Register the controller as a special universal handler for all event namespaces\n dataPriv.set(el, type, false);\n jQuery.event.add(el, type, {\n namespace: false,\n handler: function (event) {\n var notAsync,\n result,\n saved = dataPriv.get(this, type);\n if (event.isTrigger & 1 && this[type]) {\n // Interrupt processing of the outer synthetic .trigger()ed event\n // Saved data should be false in such cases, but might be a leftover capture object\n // from an async native handler (gh-4350)\n if (!saved.length) {\n // Store arguments for use when handling the inner native event\n // There will always be at least one argument (an event object), so this array\n // will not be confused with a leftover capture object.\n saved = slice.call(arguments);\n dataPriv.set(this, type, saved);\n\n // Trigger the native event and capture its result\n // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous\n notAsync = expectSync(this, type);\n this[type]();\n result = dataPriv.get(this, type);\n if (saved !== result || notAsync) {\n dataPriv.set(this, type, false);\n } else {\n result = {};\n }\n if (saved !== result) {\n // Cancel the outer synthetic event\n event.stopImmediatePropagation();\n event.preventDefault();\n return result.value;\n }\n\n // If this is an inner synthetic event for an event with a bubbling surrogate\n // (focus or blur), assume that the surrogate already propagated from triggering the\n // native event and prevent that from happening again here.\n // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n // bubbling surrogate propagates *after* the non-bubbling base), but that seems\n // less bad than duplication.\n } else if ((jQuery.event.special[type] || {}).delegateType) {\n event.stopPropagation();\n }\n\n // If this is a native event triggered above, everything is now in order\n // Fire an inner synthetic event with the original arguments\n } else if (saved.length) {\n // ...and capture the result\n dataPriv.set(this, type, {\n value: jQuery.event.trigger(\n // Support: IE <=9 - 11+\n // Extend with the prototype to reset the above stopImmediatePropagation()\n jQuery.extend(saved[0], jQuery.Event.prototype), saved.slice(1), this)\n });\n\n // Abort handling of the native event\n event.stopImmediatePropagation();\n }\n }\n });\n }\n jQuery.removeEvent = function (elem, type, handle) {\n // This \"if\" is needed for plain objects\n if (elem.removeEventListener) {\n elem.removeEventListener(type, handle);\n }\n };\n jQuery.Event = function (src, props) {\n // Allow instantiation without the 'new' keyword\n if (!(this instanceof jQuery.Event)) {\n return new jQuery.Event(src, props);\n }\n\n // Event object\n if (src && src.type) {\n this.originalEvent = src;\n this.type = src.type;\n\n // Events bubbling up the document may have been marked as prevented\n // by a handler lower down the tree; reflect the correct value.\n this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined &&\n // Support: Android <=2.3 only\n src.returnValue === false ? returnTrue : returnFalse;\n\n // Create target properties\n // Support: Safari <=6 - 7 only\n // Target should not be a text node (#504, #13143)\n this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target;\n this.currentTarget = src.currentTarget;\n this.relatedTarget = src.relatedTarget;\n\n // Event type\n } else {\n this.type = src;\n }\n\n // Put explicitly provided properties onto the event object\n if (props) {\n jQuery.extend(this, props);\n }\n\n // Create a timestamp if incoming event doesn't have one\n this.timeStamp = src && src.timeStamp || Date.now();\n\n // Mark it as fixed\n this[jQuery.expando] = true;\n };\n\n // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n // https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\n jQuery.Event.prototype = {\n constructor: jQuery.Event,\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse,\n isSimulated: false,\n preventDefault: function () {\n var e = this.originalEvent;\n this.isDefaultPrevented = returnTrue;\n if (e && !this.isSimulated) {\n e.preventDefault();\n }\n },\n stopPropagation: function () {\n var e = this.originalEvent;\n this.isPropagationStopped = returnTrue;\n if (e && !this.isSimulated) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function () {\n var e = this.originalEvent;\n this.isImmediatePropagationStopped = returnTrue;\n if (e && !this.isSimulated) {\n e.stopImmediatePropagation();\n }\n this.stopPropagation();\n }\n };\n\n // Includes all common event props including KeyEvent and MouseEvent specific props\n jQuery.each({\n altKey: true,\n bubbles: true,\n cancelable: true,\n changedTouches: true,\n ctrlKey: true,\n detail: true,\n eventPhase: true,\n metaKey: true,\n pageX: true,\n pageY: true,\n shiftKey: true,\n view: true,\n \"char\": true,\n code: true,\n charCode: true,\n key: true,\n keyCode: true,\n button: true,\n buttons: true,\n clientX: true,\n clientY: true,\n offsetX: true,\n offsetY: true,\n pointerId: true,\n pointerType: true,\n screenX: true,\n screenY: true,\n targetTouches: true,\n toElement: true,\n touches: true,\n which: function (event) {\n var button = event.button;\n\n // Add which for key events\n if (event.which == null && rkeyEvent.test(event.type)) {\n return event.charCode != null ? event.charCode : event.keyCode;\n }\n\n // Add which for click: 1 === left; 2 === middle; 3 === right\n if (!event.which && button !== undefined && rmouseEvent.test(event.type)) {\n if (button & 1) {\n return 1;\n }\n if (button & 2) {\n return 3;\n }\n if (button & 4) {\n return 2;\n }\n return 0;\n }\n return event.which;\n }\n }, jQuery.event.addProp);\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (type, delegateType) {\n jQuery.event.special[type] = {\n // Utilize native event if possible so blur/focus sequence is correct\n setup: function () {\n // Claim the first handler\n // dataPriv.set( this, \"focus\", ... )\n // dataPriv.set( this, \"blur\", ... )\n leverageNative(this, type, expectSync);\n\n // Return false to allow normal processing in the caller\n return false;\n },\n trigger: function () {\n // Force setup before trigger\n leverageNative(this, type);\n\n // Return non-false to allow normal event-path propagation\n return true;\n },\n delegateType: delegateType\n };\n });\n\n // Create mouseenter/leave events using mouseover/out and event-time checks\n // so that event delegation works in jQuery.\n // Do the same for pointerenter/pointerleave and pointerover/pointerout\n //\n // Support: Safari 7 only\n // Safari sends mouseenter too often; see:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n // for the description of the bug (it existed in older Chrome versions as well).\n jQuery.each({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\",\n pointerenter: \"pointerover\",\n pointerleave: \"pointerout\"\n }, function (orig, fix) {\n jQuery.event.special[orig] = {\n delegateType: fix,\n bindType: fix,\n handle: function (event) {\n var ret,\n target = this,\n related = event.relatedTarget,\n handleObj = event.handleObj;\n\n // For mouseenter/leave call the handler if related is outside the target.\n // NB: No relatedTarget if the mouse left/entered the browser window\n if (!related || related !== target && !jQuery.contains(target, related)) {\n event.type = handleObj.origType;\n ret = handleObj.handler.apply(this, arguments);\n event.type = fix;\n }\n return ret;\n }\n };\n });\n jQuery.fn.extend({\n on: function (types, selector, data, fn) {\n return on(this, types, selector, data, fn);\n },\n one: function (types, selector, data, fn) {\n return on(this, types, selector, data, fn, 1);\n },\n off: function (types, selector, fn) {\n var handleObj, type;\n if (types && types.preventDefault && types.handleObj) {\n // ( event ) dispatched jQuery.Event\n handleObj = types.handleObj;\n jQuery(types.delegateTarget).off(handleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler);\n return this;\n }\n if (typeof types === \"object\") {\n // ( types-object [, selector] )\n for (type in types) {\n this.off(type, selector, types[type]);\n }\n return this;\n }\n if (selector === false || typeof selector === \"function\") {\n // ( types [, fn] )\n fn = selector;\n selector = undefined;\n }\n if (fn === false) {\n fn = returnFalse;\n }\n return this.each(function () {\n jQuery.event.remove(this, types, fn, selector);\n });\n }\n });\n return jQuery;\n});","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"./Util\");\nvar Factory_1 = require(\"./Factory\");\nvar Node_1 = require(\"./Node\");\nvar DragAndDrop_1 = require(\"./DragAndDrop\");\nvar Validators_1 = require(\"./Validators\");\nvar Global_1 = require(\"./Global\");\nvar Container = function (_super) {\n __extends(Container, _super);\n function Container() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.children = new Util_1.Collection();\n return _this;\n }\n Container.prototype.getChildren = function (filterFunc) {\n if (!filterFunc) {\n return this.children;\n }\n var results = new Util_1.Collection();\n this.children.each(function (child) {\n if (filterFunc(child)) {\n results.push(child);\n }\n });\n return results;\n };\n Container.prototype.hasChildren = function () {\n return this.getChildren().length > 0;\n };\n Container.prototype.removeChildren = function () {\n var child;\n for (var i = 0; i < this.children.length; i++) {\n child = this.children[i];\n child.parent = null;\n child.index = 0;\n child.remove();\n }\n this.children = new Util_1.Collection();\n return this;\n };\n Container.prototype.destroyChildren = function () {\n var child;\n for (var i = 0; i < this.children.length; i++) {\n child = this.children[i];\n child.parent = null;\n child.index = 0;\n child.destroy();\n }\n this.children = new Util_1.Collection();\n return this;\n };\n Container.prototype.add = function () {\n var children = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n children[_i] = arguments[_i];\n }\n if (arguments.length > 1) {\n for (var i = 0; i < arguments.length; i++) {\n this.add(arguments[i]);\n }\n return this;\n }\n var child = children[0];\n if (child.getParent()) {\n child.moveTo(this);\n return this;\n }\n var _children = this.children;\n this._validateAdd(child);\n child._clearCaches();\n child.index = _children.length;\n child.parent = this;\n _children.push(child);\n this._fire('add', {\n child: child\n });\n return this;\n };\n Container.prototype.destroy = function () {\n if (this.hasChildren()) {\n this.destroyChildren();\n }\n _super.prototype.destroy.call(this);\n return this;\n };\n Container.prototype.find = function (selector) {\n return this._generalFind(selector, false);\n };\n Container.prototype.get = function (selector) {\n Util_1.Util.warn('collection.get() method is deprecated. Please use collection.find() instead.');\n return this.find(selector);\n };\n Container.prototype.findOne = function (selector) {\n var result = this._generalFind(selector, true);\n return result.length > 0 ? result[0] : undefined;\n };\n Container.prototype._generalFind = function (selector, findOne) {\n var retArr = [];\n this._descendants(function (node) {\n var valid = node._isMatch(selector);\n if (valid) {\n retArr.push(node);\n }\n if (valid && findOne) {\n return true;\n }\n return false;\n });\n return Util_1.Collection.toCollection(retArr);\n };\n Container.prototype._descendants = function (fn) {\n var shouldStop = false;\n for (var i = 0; i < this.children.length; i++) {\n var child = this.children[i];\n shouldStop = fn(child);\n if (shouldStop) {\n return true;\n }\n if (!child.hasChildren()) {\n continue;\n }\n shouldStop = child._descendants(fn);\n if (shouldStop) {\n return true;\n }\n }\n return false;\n };\n Container.prototype.toObject = function () {\n var obj = Node_1.Node.prototype.toObject.call(this);\n obj.children = [];\n var children = this.getChildren();\n var len = children.length;\n for (var n = 0; n < len; n++) {\n var child = children[n];\n obj.children.push(child.toObject());\n }\n return obj;\n };\n Container.prototype._getDescendants = function (arr) {\n var retArr = [];\n var len = arr.length;\n for (var n = 0; n < len; n++) {\n var node = arr[n];\n if (this.isAncestorOf(node)) {\n retArr.push(node);\n }\n }\n return retArr;\n };\n Container.prototype.isAncestorOf = function (node) {\n var parent = node.getParent();\n while (parent) {\n if (parent._id === this._id) {\n return true;\n }\n parent = parent.getParent();\n }\n return false;\n };\n Container.prototype.clone = function (obj) {\n var node = Node_1.Node.prototype.clone.call(this, obj);\n this.getChildren().each(function (no) {\n node.add(no.clone());\n });\n return node;\n };\n Container.prototype.getAllIntersections = function (pos) {\n var arr = [];\n this.find('Shape').each(function (shape) {\n if (shape.isVisible() && shape.intersects(pos)) {\n arr.push(shape);\n }\n });\n return arr;\n };\n Container.prototype._setChildrenIndices = function () {\n this.children.each(function (child, n) {\n child.index = n;\n });\n };\n Container.prototype.drawScene = function (can, top, caching) {\n var layer = this.getLayer(),\n canvas = can || layer && layer.getCanvas(),\n context = canvas && canvas.getContext(),\n cachedCanvas = this._getCanvasCache(),\n cachedSceneCanvas = cachedCanvas && cachedCanvas.scene;\n if (this.isVisible() || caching) {\n if (!caching && cachedSceneCanvas) {\n context.save();\n layer._applyTransform(this, context, top);\n this._drawCachedSceneCanvas(context);\n context.restore();\n } else {\n this._drawChildren(canvas, 'drawScene', top, false, caching, caching);\n }\n }\n return this;\n };\n Container.prototype.drawHit = function (can, top, caching) {\n var layer = this.getLayer(),\n canvas = can || layer && layer.hitCanvas,\n context = canvas && canvas.getContext(),\n cachedCanvas = this._getCanvasCache(),\n cachedHitCanvas = cachedCanvas && cachedCanvas.hit;\n if (this.shouldDrawHit(canvas) || caching) {\n if (!caching && cachedHitCanvas) {\n context.save();\n layer._applyTransform(this, context, top);\n this._drawCachedHitCanvas(context);\n context.restore();\n } else {\n this._drawChildren(canvas, 'drawHit', top, false, caching, caching);\n }\n }\n return this;\n };\n Container.prototype._drawChildren = function (canvas, drawMethod, top, caching, skipBuffer, skipComposition) {\n var layer = this.getLayer(),\n context = canvas && canvas.getContext(),\n clipWidth = this.clipWidth(),\n clipHeight = this.clipHeight(),\n clipFunc = this.clipFunc(),\n hasClip = clipWidth && clipHeight || clipFunc,\n clipX,\n clipY;\n if (hasClip && layer) {\n context.save();\n var transform = this.getAbsoluteTransform(top);\n var m = transform.getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n context.beginPath();\n if (clipFunc) {\n clipFunc.call(this, context, this);\n } else {\n clipX = this.clipX();\n clipY = this.clipY();\n context.rect(clipX, clipY, clipWidth, clipHeight);\n }\n context.clip();\n m = transform.copy().invert().getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n }\n var hasComposition = this.globalCompositeOperation() !== 'source-over' && !skipComposition && drawMethod === 'drawScene';\n if (hasComposition && layer) {\n context.save();\n context._applyGlobalCompositeOperation(this);\n }\n this.children.each(function (child) {\n child[drawMethod](canvas, top, caching, skipBuffer);\n });\n if (hasComposition && layer) {\n context.restore();\n }\n if (hasClip && layer) {\n context.restore();\n }\n };\n Container.prototype.shouldDrawHit = function (canvas) {\n if (canvas && canvas.isCache) {\n return true;\n }\n var layer = this.getLayer();\n var layerUnderDrag = false;\n DragAndDrop_1.DD._dragElements.forEach(function (elem) {\n if (elem.dragStatus === 'dragging' && elem.node.getLayer() === layer) {\n layerUnderDrag = true;\n }\n });\n var dragSkip = !Global_1.Konva.hitOnDragEnabled && layerUnderDrag;\n return layer && layer.hitGraphEnabled() && this.isVisible() && !dragSkip;\n };\n Container.prototype.getClientRect = function (attrs) {\n attrs = attrs || {};\n var skipTransform = attrs.skipTransform;\n var relativeTo = attrs.relativeTo;\n var minX, minY, maxX, maxY;\n var selfRect = {\n x: Infinity,\n y: Infinity,\n width: 0,\n height: 0\n };\n var that = this;\n this.children.each(function (child) {\n if (!child.visible()) {\n return;\n }\n var rect = child.getClientRect({\n relativeTo: that,\n skipShadow: attrs.skipShadow,\n skipStroke: attrs.skipStroke\n });\n if (rect.width === 0 && rect.height === 0) {\n return;\n }\n if (minX === undefined) {\n minX = rect.x;\n minY = rect.y;\n maxX = rect.x + rect.width;\n maxY = rect.y + rect.height;\n } else {\n minX = Math.min(minX, rect.x);\n minY = Math.min(minY, rect.y);\n maxX = Math.max(maxX, rect.x + rect.width);\n maxY = Math.max(maxY, rect.y + rect.height);\n }\n });\n var shapes = this.find('Shape');\n var hasVisible = false;\n for (var i = 0; i < shapes.length; i++) {\n var shape = shapes[i];\n if (shape._isVisible(this)) {\n hasVisible = true;\n break;\n }\n }\n if (hasVisible && minX !== undefined) {\n selfRect = {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n } else {\n selfRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n }\n if (!skipTransform) {\n return this._transformedRect(selfRect, relativeTo);\n }\n return selfRect;\n };\n return Container;\n}(Node_1.Node);\nexports.Container = Container;\nFactory_1.Factory.addComponentsGetterSetter(Container, 'clip', ['x', 'y', 'width', 'height']);\nFactory_1.Factory.addGetterSetter(Container, 'clipX', undefined, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Container, 'clipY', undefined, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Container, 'clipWidth', undefined, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Container, 'clipHeight', undefined, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Container, 'clipFunc');\nUtil_1.Collection.mapMethods(Container);","define(function () {\n \"use strict\";\n\n return [];\n});","define(function () {\n \"use strict\";\n\n return function isWindow(obj) {\n return obj != null && obj === obj.window;\n };\n});","define([], function () {\n \"use strict\";\n\n // Matches dashed string for camelizing\n var rmsPrefix = /^-ms-/,\n rdashAlpha = /-([a-z])/g;\n\n // Used by camelCase as callback to replace()\n function fcamelCase(_all, letter) {\n return letter.toUpperCase();\n }\n\n // Convert dashed to camelCase; used by the css and data modules\n // Support: IE <=9 - 11, Edge 12 - 15\n // Microsoft forgot to hump their vendor prefix (#9572)\n function camelCase(string) {\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n }\n return camelCase;\n});","define([\"./core\", \"./core/access\", \"./core/camelCase\", \"./core/nodeName\", \"./var/rcssNum\", \"./css/var/rnumnonpx\", \"./css/var/cssExpand\", \"./css/var/getStyles\", \"./css/var/swap\", \"./css/curCSS\", \"./css/adjustCSS\", \"./css/addGetHookIf\", \"./css/support\", \"./css/finalPropName\", \"./core/init\", \"./core/ready\", \"./selector\" // contains\n], function (jQuery, access, camelCase, nodeName, rcssNum, rnumnonpx, cssExpand, getStyles, swap, curCSS, adjustCSS, addGetHookIf, support, finalPropName) {\n \"use strict\";\n\n var\n // Swappable if display is none or starts with table\n // except \"table\", \"table-cell\", or \"table-caption\"\n // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n rdisplayswap = /^(none|table(?!-c[ea]).+)/,\n rcustomProp = /^--/,\n cssShow = {\n position: \"absolute\",\n visibility: \"hidden\",\n display: \"block\"\n },\n cssNormalTransform = {\n letterSpacing: \"0\",\n fontWeight: \"400\"\n };\n function setPositiveNumber(_elem, value, subtract) {\n // Any relative (+/-) values have already been\n // normalized at this point\n var matches = rcssNum.exec(value);\n return matches ?\n // Guard against undefined \"subtract\", e.g., when used as in cssHooks\n Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || \"px\") : value;\n }\n function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) {\n var i = dimension === \"width\" ? 1 : 0,\n extra = 0,\n delta = 0;\n\n // Adjustment may not be necessary\n if (box === (isBorderBox ? \"border\" : \"content\")) {\n return 0;\n }\n for (; i < 4; i += 2) {\n // Both box models exclude margin\n if (box === \"margin\") {\n delta += jQuery.css(elem, box + cssExpand[i], true, styles);\n }\n\n // If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n if (!isBorderBox) {\n // Add padding\n delta += jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n\n // For \"border\" or \"margin\", add border\n if (box !== \"padding\") {\n delta += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n\n // But still keep track of it otherwise\n } else {\n extra += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n\n // If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n // \"padding\" or \"margin\"\n } else {\n // For \"content\", subtract padding\n if (box === \"content\") {\n delta -= jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n }\n\n // For \"content\" or \"padding\", subtract border\n if (box !== \"margin\") {\n delta -= jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n }\n }\n\n // Account for positive content-box scroll gutter when requested by providing computedVal\n if (!isBorderBox && computedVal >= 0) {\n // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n // Assuming integer scroll gutter, subtract the rest and round down\n delta += Math.max(0, Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5\n\n // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n // Use an explicit zero to avoid NaN (gh-3964)\n )) || 0;\n }\n return delta;\n }\n function getWidthOrHeight(elem, dimension, extra) {\n // Start with computed style\n var styles = getStyles(elem),\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n // Fake content-box until we know it's needed to know the true value.\n boxSizingNeeded = !support.boxSizingReliable() || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n valueIsBorderBox = isBorderBox,\n val = curCSS(elem, dimension, styles),\n offsetProp = \"offset\" + dimension[0].toUpperCase() + dimension.slice(1);\n\n // Support: Firefox <=54\n // Return a confounding non-pixel value or feign ignorance, as appropriate.\n if (rnumnonpx.test(val)) {\n if (!extra) {\n return val;\n }\n val = \"auto\";\n }\n\n // Support: IE 9 - 11 only\n // Use offsetWidth/offsetHeight for when box sizing is unreliable.\n // In those cases, the computed value can be trusted to be border-box.\n if ((!support.boxSizingReliable() && isBorderBox ||\n // Support: IE 10 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Interestingly, in some cases IE 9 doesn't suffer from this issue.\n !support.reliableTrDimensions() && nodeName(elem, \"tr\") ||\n // Fall back to offsetWidth/offsetHeight when value is \"auto\"\n // This happens for inline elements with no explicit setting (gh-3571)\n val === \"auto\" ||\n // Support: Android <=4.1 - 4.3 only\n // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n !parseFloat(val) && jQuery.css(elem, \"display\", false, styles) === \"inline\") &&\n // Make sure the element is visible & connected\n elem.getClientRects().length) {\n isBorderBox = jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\";\n\n // Where available, offsetWidth/offsetHeight approximate border box dimensions.\n // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n // retrieved value as a content box dimension.\n valueIsBorderBox = offsetProp in elem;\n if (valueIsBorderBox) {\n val = elem[offsetProp];\n }\n }\n\n // Normalize \"\" and auto\n val = parseFloat(val) || 0;\n\n // Adjust for the element's box model\n return val + boxModelAdjustment(elem, dimension, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles,\n // Provide the current computed size to request scroll gutter calculation (gh-3589)\n val) + \"px\";\n }\n jQuery.extend({\n // Add in style property hooks for overriding the default\n // behavior of getting and setting a style property\n cssHooks: {\n opacity: {\n get: function (elem, computed) {\n if (computed) {\n // We should always get a number back from opacity\n var ret = curCSS(elem, \"opacity\");\n return ret === \"\" ? \"1\" : ret;\n }\n }\n }\n },\n // Don't automatically add \"px\" to these possibly-unitless properties\n cssNumber: {\n \"animationIterationCount\": true,\n \"columnCount\": true,\n \"fillOpacity\": true,\n \"flexGrow\": true,\n \"flexShrink\": true,\n \"fontWeight\": true,\n \"gridArea\": true,\n \"gridColumn\": true,\n \"gridColumnEnd\": true,\n \"gridColumnStart\": true,\n \"gridRow\": true,\n \"gridRowEnd\": true,\n \"gridRowStart\": true,\n \"lineHeight\": true,\n \"opacity\": true,\n \"order\": true,\n \"orphans\": true,\n \"widows\": true,\n \"zIndex\": true,\n \"zoom\": true\n },\n // Add in properties whose names you wish to fix before\n // setting or getting the value\n cssProps: {},\n // Get and set the style property on a DOM Node\n style: function (elem, name, value, extra) {\n // Don't set styles on text and comment nodes\n if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {\n return;\n }\n\n // Make sure that we're working with the right name\n var ret,\n type,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name),\n style = elem.style;\n\n // Make sure that we're working with the right name. We don't\n // want to query the value if it is a CSS custom property\n // since they are user-defined.\n if (!isCustomProp) {\n name = finalPropName(origName);\n }\n\n // Gets hook for the prefixed version, then unprefixed version\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName];\n\n // Check if we're setting a value\n if (value !== undefined) {\n type = typeof value;\n\n // Convert \"+=\" or \"-=\" to relative numbers (#7345)\n if (type === \"string\" && (ret = rcssNum.exec(value)) && ret[1]) {\n value = adjustCSS(elem, name, ret);\n\n // Fixes bug #9237\n type = \"number\";\n }\n\n // Make sure that null and NaN values aren't set (#7116)\n if (value == null || value !== value) {\n return;\n }\n\n // If a number was passed in, add the unit (except for certain CSS properties)\n // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n // \"px\" to a few hardcoded values.\n if (type === \"number\" && !isCustomProp) {\n value += ret && ret[3] || (jQuery.cssNumber[origName] ? \"\" : \"px\");\n }\n\n // background-* props affect original clone's values\n if (!support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0) {\n style[name] = \"inherit\";\n }\n\n // If a hook was provided, use that value, otherwise just set the specified value\n if (!hooks || !(\"set\" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) {\n if (isCustomProp) {\n style.setProperty(name, value);\n } else {\n style[name] = value;\n }\n }\n } else {\n // If a hook was provided get the non-computed value from there\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) {\n return ret;\n }\n\n // Otherwise just get the value from the style object\n return style[name];\n }\n },\n css: function (elem, name, extra, styles) {\n var val,\n num,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name);\n\n // Make sure that we're working with the right name. We don't\n // want to modify the value if it is a CSS custom property\n // since they are user-defined.\n if (!isCustomProp) {\n name = finalPropName(origName);\n }\n\n // Try prefixed name followed by the unprefixed name\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName];\n\n // If a hook was provided get the computed value from there\n if (hooks && \"get\" in hooks) {\n val = hooks.get(elem, true, extra);\n }\n\n // Otherwise, if a way to get the computed value exists, use that\n if (val === undefined) {\n val = curCSS(elem, name, styles);\n }\n\n // Convert \"normal\" to computed value\n if (val === \"normal\" && name in cssNormalTransform) {\n val = cssNormalTransform[name];\n }\n\n // Make numeric if forced or a qualifier was provided and val looks numeric\n if (extra === \"\" || extra) {\n num = parseFloat(val);\n return extra === true || isFinite(num) ? num || 0 : val;\n }\n return val;\n }\n });\n jQuery.each([\"height\", \"width\"], function (_i, dimension) {\n jQuery.cssHooks[dimension] = {\n get: function (elem, computed, extra) {\n if (computed) {\n // Certain elements can have dimension info if we invisibly show them\n // but it must have a current display style that would benefit\n return rdisplayswap.test(jQuery.css(elem, \"display\")) && (\n // Support: Safari 8+\n // Table columns in Safari have non-zero offsetWidth & zero\n // getBoundingClientRect().width unless display is changed.\n // Support: IE <=11 only\n // Running getBoundingClientRect on a disconnected node\n // in IE throws an error.\n !elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function () {\n return getWidthOrHeight(elem, dimension, extra);\n }) : getWidthOrHeight(elem, dimension, extra);\n }\n },\n set: function (elem, value, extra) {\n var matches,\n styles = getStyles(elem),\n // Only read styles.position if the test has a chance to fail\n // to avoid forcing a reflow.\n scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === \"absolute\",\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n boxSizingNeeded = scrollboxSizeBuggy || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n subtract = extra ? boxModelAdjustment(elem, dimension, extra, isBorderBox, styles) : 0;\n\n // Account for unreliable border-box dimensions by comparing offset* to computed and\n // faking a content-box to get border and padding (gh-3699)\n if (isBorderBox && scrollboxSizeBuggy) {\n subtract -= Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, \"border\", false, styles) - 0.5);\n }\n\n // Convert to pixels if value adjustment is needed\n if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || \"px\") !== \"px\") {\n elem.style[dimension] = value;\n value = jQuery.css(elem, dimension);\n }\n return setPositiveNumber(elem, value, subtract);\n }\n };\n });\n jQuery.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft, function (elem, computed) {\n if (computed) {\n return (parseFloat(curCSS(elem, \"marginLeft\")) || elem.getBoundingClientRect().left - swap(elem, {\n marginLeft: 0\n }, function () {\n return elem.getBoundingClientRect().left;\n })) + \"px\";\n }\n });\n\n // These hooks are used by animate to expand properties\n jQuery.each({\n margin: \"\",\n padding: \"\",\n border: \"Width\"\n }, function (prefix, suffix) {\n jQuery.cssHooks[prefix + suffix] = {\n expand: function (value) {\n var i = 0,\n expanded = {},\n // Assumes a single number if not a string\n parts = typeof value === \"string\" ? value.split(\" \") : [value];\n for (; i < 4; i++) {\n expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0];\n }\n return expanded;\n }\n };\n if (prefix !== \"margin\") {\n jQuery.cssHooks[prefix + suffix].set = setPositiveNumber;\n }\n });\n jQuery.fn.extend({\n css: function (name, value) {\n return access(this, function (elem, name, value) {\n var styles,\n len,\n map = {},\n i = 0;\n if (Array.isArray(name)) {\n styles = getStyles(elem);\n len = name.length;\n for (; i < len; i++) {\n map[name[i]] = jQuery.css(elem, name[i], false, styles);\n }\n return map;\n }\n return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name);\n }, name, value, arguments.length > 1);\n }\n });\n return jQuery;\n});","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"./Util\");\nvar Context_1 = require(\"./Context\");\nvar Global_1 = require(\"./Global\");\nvar Factory_1 = require(\"./Factory\");\nvar Validators_1 = require(\"./Validators\");\nvar _pixelRatio;\nfunction getDevicePixelRatio() {\n if (_pixelRatio) {\n return _pixelRatio;\n }\n var canvas = Util_1.Util.createCanvasElement();\n var context = canvas.getContext('2d');\n _pixelRatio = function () {\n var devicePixelRatio = Global_1.Konva._global.devicePixelRatio || 1,\n backingStoreRatio = context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || context.backingStorePixelRatio || 1;\n return devicePixelRatio / backingStoreRatio;\n }();\n return _pixelRatio;\n}\nvar Canvas = function () {\n function Canvas(config) {\n this.pixelRatio = 1;\n this.width = 0;\n this.height = 0;\n this.isCache = false;\n var conf = config || {};\n var pixelRatio = conf.pixelRatio || Global_1.Konva.pixelRatio || getDevicePixelRatio();\n this.pixelRatio = pixelRatio;\n this._canvas = Util_1.Util.createCanvasElement();\n this._canvas.style.padding = '0';\n this._canvas.style.margin = '0';\n this._canvas.style.border = '0';\n this._canvas.style.background = 'transparent';\n this._canvas.style.position = 'absolute';\n this._canvas.style.top = '0';\n this._canvas.style.left = '0';\n }\n Canvas.prototype.getContext = function () {\n return this.context;\n };\n Canvas.prototype.getPixelRatio = function () {\n return this.pixelRatio;\n };\n Canvas.prototype.setPixelRatio = function (pixelRatio) {\n var previousRatio = this.pixelRatio;\n this.pixelRatio = pixelRatio;\n this.setSize(this.getWidth() / previousRatio, this.getHeight() / previousRatio);\n };\n Canvas.prototype.setWidth = function (width) {\n this.width = this._canvas.width = width * this.pixelRatio;\n this._canvas.style.width = width + 'px';\n var pixelRatio = this.pixelRatio,\n _context = this.getContext()._context;\n _context.scale(pixelRatio, pixelRatio);\n };\n Canvas.prototype.setHeight = function (height) {\n this.height = this._canvas.height = height * this.pixelRatio;\n this._canvas.style.height = height + 'px';\n var pixelRatio = this.pixelRatio,\n _context = this.getContext()._context;\n _context.scale(pixelRatio, pixelRatio);\n };\n Canvas.prototype.getWidth = function () {\n return this.width;\n };\n Canvas.prototype.getHeight = function () {\n return this.height;\n };\n Canvas.prototype.setSize = function (width, height) {\n this.setWidth(width || 0);\n this.setHeight(height || 0);\n };\n Canvas.prototype.toDataURL = function (mimeType, quality) {\n try {\n return this._canvas.toDataURL(mimeType, quality);\n } catch (e) {\n try {\n return this._canvas.toDataURL();\n } catch (err) {\n Util_1.Util.error('Unable to get data URL. ' + err.message + ' For more info read https://konvajs.org/docs/posts/Tainted_Canvas.html.');\n return '';\n }\n }\n };\n return Canvas;\n}();\nexports.Canvas = Canvas;\nFactory_1.Factory.addGetterSetter(Canvas, 'pixelRatio', undefined, Validators_1.getNumberValidator());\nvar SceneCanvas = function (_super) {\n __extends(SceneCanvas, _super);\n function SceneCanvas(config) {\n if (config === void 0) {\n config = {\n width: 0,\n height: 0\n };\n }\n var _this = _super.call(this, config) || this;\n _this.context = new Context_1.SceneContext(_this);\n _this.setSize(config.width, config.height);\n return _this;\n }\n return SceneCanvas;\n}(Canvas);\nexports.SceneCanvas = SceneCanvas;\nvar HitCanvas = function (_super) {\n __extends(HitCanvas, _super);\n function HitCanvas(config) {\n if (config === void 0) {\n config = {\n width: 0,\n height: 0\n };\n }\n var _this = _super.call(this, config) || this;\n _this.hitCanvas = true;\n _this.context = new Context_1.HitContext(_this);\n _this.setSize(config.width, config.height);\n return _this;\n }\n return HitCanvas;\n}(Canvas);\nexports.HitCanvas = HitCanvas;","define([\"./arr\"], function (arr) {\n \"use strict\";\n\n return arr.slice;\n});","define(function () {\n \"use strict\";\n\n // [[Class]] -> type pairs\n return {};\n});","define(function () {\n \"use strict\";\n\n /**\n * Determines whether an object can have data\n */\n return function (owner) {\n // Accepts only:\n // - Node\n // - Node.ELEMENT_NODE\n // - Node.DOCUMENT_NODE\n // - Object\n // - Any\n return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType;\n };\n});","define([\"../core\", \"../var/documentElement\", \"../selector\" // jQuery.contains\n], function (jQuery, documentElement) {\n \"use strict\";\n\n var isAttached = function (elem) {\n return jQuery.contains(elem.ownerDocument, elem);\n },\n composed = {\n composed: true\n };\n\n // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n // Check attachment across shadow DOM boundaries when possible (gh-3504)\n // Support: iOS 10.0-10.2 only\n // Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n // leading to errors. We need to check for `getRootNode`.\n if (documentElement.getRootNode) {\n isAttached = function (elem) {\n return jQuery.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument;\n };\n }\n return isAttached;\n});","define([\"./document\"], function (document) {\n \"use strict\";\n\n return document.documentElement;\n});","define([\"./core\", \"./core/isAttached\", \"./var/flat\", \"./var/isFunction\", \"./var/push\", \"./var/rcheckableType\", \"./core/access\", \"./manipulation/var/rtagName\", \"./manipulation/var/rscriptType\", \"./manipulation/wrapMap\", \"./manipulation/getAll\", \"./manipulation/setGlobalEval\", \"./manipulation/buildFragment\", \"./manipulation/support\", \"./data/var/dataPriv\", \"./data/var/dataUser\", \"./data/var/acceptData\", \"./core/DOMEval\", \"./core/nodeName\", \"./core/init\", \"./traversing\", \"./selector\", \"./event\"], function (jQuery, isAttached, flat, isFunction, push, rcheckableType, access, rtagName, rscriptType, wrapMap, getAll, setGlobalEval, buildFragment, support, dataPriv, dataUser, acceptData, DOMEval, nodeName) {\n \"use strict\";\n\n var\n // Support: IE <=10 - 11, Edge 12 - 13 only\n // In IE/Edge using regex groups here causes severe slowdowns.\n // See https://connect.microsoft.com/IE/feedback/details/1736512/\n rnoInnerhtml = /\\s*$/g;\n\n // Prefer a tbody over its parent table for containing new rows\n function manipulationTarget(elem, content) {\n if (nodeName(elem, \"table\") && nodeName(content.nodeType !== 11 ? content : content.firstChild, \"tr\")) {\n return jQuery(elem).children(\"tbody\")[0] || elem;\n }\n return elem;\n }\n\n // Replace/restore the type attribute of script elements for safe DOM manipulation\n function disableScript(elem) {\n elem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n return elem;\n }\n function restoreScript(elem) {\n if ((elem.type || \"\").slice(0, 5) === \"true/\") {\n elem.type = elem.type.slice(5);\n } else {\n elem.removeAttribute(\"type\");\n }\n return elem;\n }\n function cloneCopyEvent(src, dest) {\n var i, l, type, pdataOld, udataOld, udataCur, events;\n if (dest.nodeType !== 1) {\n return;\n }\n\n // 1. Copy private data: events, handlers, etc.\n if (dataPriv.hasData(src)) {\n pdataOld = dataPriv.get(src);\n events = pdataOld.events;\n if (events) {\n dataPriv.remove(dest, \"handle events\");\n for (type in events) {\n for (i = 0, l = events[type].length; i < l; i++) {\n jQuery.event.add(dest, type, events[type][i]);\n }\n }\n }\n }\n\n // 2. Copy user data\n if (dataUser.hasData(src)) {\n udataOld = dataUser.access(src);\n udataCur = jQuery.extend({}, udataOld);\n dataUser.set(dest, udataCur);\n }\n }\n\n // Fix IE bugs, see support tests\n function fixInput(src, dest) {\n var nodeName = dest.nodeName.toLowerCase();\n\n // Fails to persist the checked state of a cloned checkbox or radio button.\n if (nodeName === \"input\" && rcheckableType.test(src.type)) {\n dest.checked = src.checked;\n\n // Fails to return the selected option to the default selected state when cloning options\n } else if (nodeName === \"input\" || nodeName === \"textarea\") {\n dest.defaultValue = src.defaultValue;\n }\n }\n function domManip(collection, args, callback, ignored) {\n // Flatten any nested arrays\n args = flat(args);\n var fragment,\n first,\n scripts,\n hasScripts,\n node,\n doc,\n i = 0,\n l = collection.length,\n iNoClone = l - 1,\n value = args[0],\n valueIsFunction = isFunction(value);\n\n // We can't cloneNode fragments that contain checked, in WebKit\n if (valueIsFunction || l > 1 && typeof value === \"string\" && !support.checkClone && rchecked.test(value)) {\n return collection.each(function (index) {\n var self = collection.eq(index);\n if (valueIsFunction) {\n args[0] = value.call(this, index, self.html());\n }\n domManip(self, args, callback, ignored);\n });\n }\n if (l) {\n fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored);\n first = fragment.firstChild;\n if (fragment.childNodes.length === 1) {\n fragment = first;\n }\n\n // Require either new content or an interest in ignored elements to invoke the callback\n if (first || ignored) {\n scripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\n hasScripts = scripts.length;\n\n // Use the original fragment for the last item\n // instead of the first because it can end up\n // being emptied incorrectly in certain situations (#8070).\n for (; i < l; i++) {\n node = fragment;\n if (i !== iNoClone) {\n node = jQuery.clone(node, true, true);\n\n // Keep references to cloned scripts for later restoration\n if (hasScripts) {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(scripts, getAll(node, \"script\"));\n }\n }\n callback.call(collection[i], node, i);\n }\n if (hasScripts) {\n doc = scripts[scripts.length - 1].ownerDocument;\n\n // Reenable scripts\n jQuery.map(scripts, restoreScript);\n\n // Evaluate executable scripts on first document insertion\n for (i = 0; i < hasScripts; i++) {\n node = scripts[i];\n if (rscriptType.test(node.type || \"\") && !dataPriv.access(node, \"globalEval\") && jQuery.contains(doc, node)) {\n if (node.src && (node.type || \"\").toLowerCase() !== \"module\") {\n // Optional AJAX dependency, but won't run scripts if not present\n if (jQuery._evalUrl && !node.noModule) {\n jQuery._evalUrl(node.src, {\n nonce: node.nonce || node.getAttribute(\"nonce\")\n }, doc);\n }\n } else {\n DOMEval(node.textContent.replace(rcleanScript, \"\"), node, doc);\n }\n }\n }\n }\n }\n }\n return collection;\n }\n function remove(elem, selector, keepData) {\n var node,\n nodes = selector ? jQuery.filter(selector, elem) : elem,\n i = 0;\n for (; (node = nodes[i]) != null; i++) {\n if (!keepData && node.nodeType === 1) {\n jQuery.cleanData(getAll(node));\n }\n if (node.parentNode) {\n if (keepData && isAttached(node)) {\n setGlobalEval(getAll(node, \"script\"));\n }\n node.parentNode.removeChild(node);\n }\n }\n return elem;\n }\n jQuery.extend({\n htmlPrefilter: function (html) {\n return html;\n },\n clone: function (elem, dataAndEvents, deepDataAndEvents) {\n var i,\n l,\n srcElements,\n destElements,\n clone = elem.cloneNode(true),\n inPage = isAttached(elem);\n\n // Fix IE cloning issues\n if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) {\n // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n destElements = getAll(clone);\n srcElements = getAll(elem);\n for (i = 0, l = srcElements.length; i < l; i++) {\n fixInput(srcElements[i], destElements[i]);\n }\n }\n\n // Copy the events from the original to the clone\n if (dataAndEvents) {\n if (deepDataAndEvents) {\n srcElements = srcElements || getAll(elem);\n destElements = destElements || getAll(clone);\n for (i = 0, l = srcElements.length; i < l; i++) {\n cloneCopyEvent(srcElements[i], destElements[i]);\n }\n } else {\n cloneCopyEvent(elem, clone);\n }\n }\n\n // Preserve script evaluation history\n destElements = getAll(clone, \"script\");\n if (destElements.length > 0) {\n setGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\n }\n\n // Return the cloned set\n return clone;\n },\n cleanData: function (elems) {\n var data,\n elem,\n type,\n special = jQuery.event.special,\n i = 0;\n for (; (elem = elems[i]) !== undefined; i++) {\n if (acceptData(elem)) {\n if (data = elem[dataPriv.expando]) {\n if (data.events) {\n for (type in data.events) {\n if (special[type]) {\n jQuery.event.remove(elem, type);\n\n // This is a shortcut to avoid jQuery.event.remove's overhead\n } else {\n jQuery.removeEvent(elem, type, data.handle);\n }\n }\n }\n\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataPriv.expando] = undefined;\n }\n if (elem[dataUser.expando]) {\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataUser.expando] = undefined;\n }\n }\n }\n }\n });\n jQuery.fn.extend({\n detach: function (selector) {\n return remove(this, selector, true);\n },\n remove: function (selector) {\n return remove(this, selector);\n },\n text: function (value) {\n return access(this, function (value) {\n return value === undefined ? jQuery.text(this) : this.empty().each(function () {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n this.textContent = value;\n }\n });\n }, null, value, arguments.length);\n },\n append: function () {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.appendChild(elem);\n }\n });\n },\n prepend: function () {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.insertBefore(elem, target.firstChild);\n }\n });\n },\n before: function () {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this);\n }\n });\n },\n after: function () {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this.nextSibling);\n }\n });\n },\n empty: function () {\n var elem,\n i = 0;\n for (; (elem = this[i]) != null; i++) {\n if (elem.nodeType === 1) {\n // Prevent memory leaks\n jQuery.cleanData(getAll(elem, false));\n\n // Remove any remaining nodes\n elem.textContent = \"\";\n }\n }\n return this;\n },\n clone: function (dataAndEvents, deepDataAndEvents) {\n dataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n return this.map(function () {\n return jQuery.clone(this, dataAndEvents, deepDataAndEvents);\n });\n },\n html: function (value) {\n return access(this, function (value) {\n var elem = this[0] || {},\n i = 0,\n l = this.length;\n if (value === undefined && elem.nodeType === 1) {\n return elem.innerHTML;\n }\n\n // See if we can take a shortcut and just use innerHTML\n if (typeof value === \"string\" && !rnoInnerhtml.test(value) && !wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\n value = jQuery.htmlPrefilter(value);\n try {\n for (; i < l; i++) {\n elem = this[i] || {};\n\n // Remove element nodes and prevent memory leaks\n if (elem.nodeType === 1) {\n jQuery.cleanData(getAll(elem, false));\n elem.innerHTML = value;\n }\n }\n elem = 0;\n\n // If using innerHTML throws an exception, use the fallback method\n } catch (e) {}\n }\n if (elem) {\n this.empty().append(value);\n }\n }, null, value, arguments.length);\n },\n replaceWith: function () {\n var ignored = [];\n\n // Make the changes, replacing each non-ignored context element with the new content\n return domManip(this, arguments, function (elem) {\n var parent = this.parentNode;\n if (jQuery.inArray(this, ignored) < 0) {\n jQuery.cleanData(getAll(this));\n if (parent) {\n parent.replaceChild(elem, this);\n }\n }\n\n // Force callback invocation\n }, ignored);\n }\n });\n jQuery.each({\n appendTo: \"append\",\n prependTo: \"prepend\",\n insertBefore: \"before\",\n insertAfter: \"after\",\n replaceAll: \"replaceWith\"\n }, function (name, original) {\n jQuery.fn[name] = function (selector) {\n var elems,\n ret = [],\n insert = jQuery(selector),\n last = insert.length - 1,\n i = 0;\n for (; i <= last; i++) {\n elems = i === last ? this : this.clone(true);\n jQuery(insert[i])[original](elems);\n\n // Support: Android <=4.0 only, PhantomJS 1 only\n // .get() because push.apply(_, arraylike) throws on ancient WebKit\n push.apply(ret, elems.get());\n }\n return this.pushStack(ret);\n };\n });\n return jQuery;\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Global_1 = require(\"./Global\");\nvar Util_1 = require(\"./Util\");\nexports.DD = {\n get isDragging() {\n var flag = false;\n exports.DD._dragElements.forEach(function (elem) {\n if (elem.dragStatus === 'dragging') {\n flag = true;\n }\n });\n return flag;\n },\n justDragged: false,\n get node() {\n var node;\n exports.DD._dragElements.forEach(function (elem) {\n node = elem.node;\n });\n return node;\n },\n _dragElements: new Map(),\n _drag: function (evt) {\n exports.DD._dragElements.forEach(function (elem, key) {\n var node = elem.node;\n var stage = node.getStage();\n stage.setPointersPositions(evt);\n if (elem.pointerId === undefined) {\n elem.pointerId = Util_1.Util._getFirstPointerId(evt);\n }\n var pos = stage._changedPointerPositions.find(function (pos) {\n return pos.id === elem.pointerId;\n });\n if (!pos) {\n return;\n }\n if (elem.dragStatus !== 'dragging') {\n var dragDistance = node.dragDistance();\n var distance = Math.max(Math.abs(pos.x - elem.startPointerPos.x), Math.abs(pos.y - elem.startPointerPos.y));\n if (distance < dragDistance) {\n return;\n }\n node.startDrag({\n evt: evt\n });\n if (!node.isDragging()) {\n return;\n }\n }\n node._setDragPosition(evt, elem);\n node.fire('dragmove', {\n type: 'dragmove',\n target: node,\n evt: evt\n }, true);\n });\n },\n _endDragBefore: function (evt) {\n exports.DD._dragElements.forEach(function (elem, key) {\n var node = elem.node;\n var stage = node.getStage();\n if (evt) {\n stage.setPointersPositions(evt);\n }\n var pos = stage._changedPointerPositions.find(function (pos) {\n return pos.id === elem.pointerId;\n });\n if (!pos) {\n return;\n }\n if (elem.dragStatus === 'dragging' || elem.dragStatus === 'stopped') {\n exports.DD.justDragged = true;\n Global_1.Konva.listenClickTap = false;\n elem.dragStatus = 'stopped';\n }\n var drawNode = elem.node.getLayer() || elem.node instanceof Global_1.Konva['Stage'] && elem.node;\n if (drawNode) {\n drawNode.draw();\n }\n });\n },\n _endDragAfter: function (evt) {\n exports.DD._dragElements.forEach(function (elem, key) {\n if (elem.dragStatus === 'stopped') {\n elem.node.fire('dragend', {\n type: 'dragend',\n target: elem.node,\n evt: evt\n }, true);\n }\n if (elem.dragStatus !== 'dragging') {\n exports.DD._dragElements.delete(key);\n }\n });\n }\n};\nif (Global_1.Konva.isBrowser) {\n window.addEventListener('mouseup', exports.DD._endDragBefore, true);\n window.addEventListener('touchend', exports.DD._endDragBefore, true);\n window.addEventListener('mousemove', exports.DD._drag);\n window.addEventListener('touchmove', exports.DD._drag);\n window.addEventListener('mouseup', exports.DD._endDragAfter, false);\n window.addEventListener('touchend', exports.DD._endDragAfter, false);\n}","define([\"./arr\"], function (arr) {\n \"use strict\";\n\n return arr.indexOf;\n});","define([\"./class2type\"], function (class2type) {\n \"use strict\";\n\n return class2type.hasOwnProperty;\n});","define([\"./core\", \"./core/toType\", \"./var/isFunction\", \"./var/rnothtmlwhite\"], function (jQuery, toType, isFunction, rnothtmlwhite) {\n \"use strict\";\n\n // Convert String-formatted options into Object-formatted ones\n function createOptions(options) {\n var object = {};\n jQuery.each(options.match(rnothtmlwhite) || [], function (_, flag) {\n object[flag] = true;\n });\n return object;\n }\n\n /*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\n jQuery.Callbacks = function (options) {\n // Convert options from String-formatted to Object-formatted if needed\n // (we check in cache first)\n options = typeof options === \"string\" ? createOptions(options) : jQuery.extend({}, options);\n var\n // Flag to know if list is currently firing\n firing,\n // Last fire value for non-forgettable lists\n memory,\n // Flag to know if list was already fired\n fired,\n // Flag to prevent firing\n locked,\n // Actual callback list\n list = [],\n // Queue of execution data for repeatable lists\n queue = [],\n // Index of currently firing callback (modified by add/remove as needed)\n firingIndex = -1,\n // Fire callbacks\n fire = function () {\n // Enforce single-firing\n locked = locked || options.once;\n\n // Execute callbacks for all pending executions,\n // respecting firingIndex overrides and runtime changes\n fired = firing = true;\n for (; queue.length; firingIndex = -1) {\n memory = queue.shift();\n while (++firingIndex < list.length) {\n // Run callback and check for early termination\n if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) {\n // Jump to end and forget the data so .add doesn't re-fire\n firingIndex = list.length;\n memory = false;\n }\n }\n }\n\n // Forget the data if we're done with it\n if (!options.memory) {\n memory = false;\n }\n firing = false;\n\n // Clean up if we're done firing for good\n if (locked) {\n // Keep an empty list if we have data for future add calls\n if (memory) {\n list = [];\n\n // Otherwise, this object is spent\n } else {\n list = \"\";\n }\n }\n },\n // Actual Callbacks object\n self = {\n // Add a callback or a collection of callbacks to the list\n add: function () {\n if (list) {\n // If we have memory from a past run, we should fire after adding\n if (memory && !firing) {\n firingIndex = list.length - 1;\n queue.push(memory);\n }\n (function add(args) {\n jQuery.each(args, function (_, arg) {\n if (isFunction(arg)) {\n if (!options.unique || !self.has(arg)) {\n list.push(arg);\n }\n } else if (arg && arg.length && toType(arg) !== \"string\") {\n // Inspect recursively\n add(arg);\n }\n });\n })(arguments);\n if (memory && !firing) {\n fire();\n }\n }\n return this;\n },\n // Remove a callback from the list\n remove: function () {\n jQuery.each(arguments, function (_, arg) {\n var index;\n while ((index = jQuery.inArray(arg, list, index)) > -1) {\n list.splice(index, 1);\n\n // Handle firing indexes\n if (index <= firingIndex) {\n firingIndex--;\n }\n }\n });\n return this;\n },\n // Check if a given callback is in the list.\n // If no argument is given, return whether or not list has callbacks attached.\n has: function (fn) {\n return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0;\n },\n // Remove all callbacks from the list\n empty: function () {\n if (list) {\n list = [];\n }\n return this;\n },\n // Disable .fire and .add\n // Abort any current/pending executions\n // Clear all callbacks and values\n disable: function () {\n locked = queue = [];\n list = memory = \"\";\n return this;\n },\n disabled: function () {\n return !list;\n },\n // Disable .fire\n // Also disable .add unless we have memory (since it would have no effect)\n // Abort any pending executions\n lock: function () {\n locked = queue = [];\n if (!memory && !firing) {\n list = memory = \"\";\n }\n return this;\n },\n locked: function () {\n return !!locked;\n },\n // Call all callbacks with the given context and arguments\n fireWith: function (context, args) {\n if (!locked) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n queue.push(args);\n if (!firing) {\n fire();\n }\n }\n return this;\n },\n // Call all the callbacks with the given arguments\n fire: function () {\n self.fireWith(this, arguments);\n return this;\n },\n // To know if the callbacks have already been called at least once\n fired: function () {\n return !!fired;\n }\n };\n return self;\n };\n return jQuery;\n});","define([\"./core\", \"./data/var/dataPriv\", \"./deferred\", \"./callbacks\"], function (jQuery, dataPriv) {\n \"use strict\";\n\n jQuery.extend({\n queue: function (elem, type, data) {\n var queue;\n if (elem) {\n type = (type || \"fx\") + \"queue\";\n queue = dataPriv.get(elem, type);\n\n // Speed up dequeue by getting out quickly if this is just a lookup\n if (data) {\n if (!queue || Array.isArray(data)) {\n queue = dataPriv.access(elem, type, jQuery.makeArray(data));\n } else {\n queue.push(data);\n }\n }\n return queue || [];\n }\n },\n dequeue: function (elem, type) {\n type = type || \"fx\";\n var queue = jQuery.queue(elem, type),\n startLength = queue.length,\n fn = queue.shift(),\n hooks = jQuery._queueHooks(elem, type),\n next = function () {\n jQuery.dequeue(elem, type);\n };\n\n // If the fx queue is dequeued, always remove the progress sentinel\n if (fn === \"inprogress\") {\n fn = queue.shift();\n startLength--;\n }\n if (fn) {\n // Add a progress sentinel to prevent the fx queue from being\n // automatically dequeued\n if (type === \"fx\") {\n queue.unshift(\"inprogress\");\n }\n\n // Clear up the last queue stop function\n delete hooks.stop;\n fn.call(elem, next, hooks);\n }\n if (!startLength && hooks) {\n hooks.empty.fire();\n }\n },\n // Not public - generate a queueHooks object, or return the current one\n _queueHooks: function (elem, type) {\n var key = type + \"queueHooks\";\n return dataPriv.get(elem, key) || dataPriv.access(elem, key, {\n empty: jQuery.Callbacks(\"once memory\").add(function () {\n dataPriv.remove(elem, [type + \"queue\", key]);\n })\n });\n }\n });\n jQuery.fn.extend({\n queue: function (type, data) {\n var setter = 2;\n if (typeof type !== \"string\") {\n data = type;\n type = \"fx\";\n setter--;\n }\n if (arguments.length < setter) {\n return jQuery.queue(this[0], type);\n }\n return data === undefined ? this : this.each(function () {\n var queue = jQuery.queue(this, type, data);\n\n // Ensure a hooks for this queue\n jQuery._queueHooks(this, type);\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\n jQuery.dequeue(this, type);\n }\n });\n },\n dequeue: function (type) {\n return this.each(function () {\n jQuery.dequeue(this, type);\n });\n },\n clearQueue: function (type) {\n return this.queue(type || \"fx\", []);\n },\n // Get a promise resolved when queues of a certain type\n // are emptied (fx is the type by default)\n promise: function (type, obj) {\n var tmp,\n count = 1,\n defer = jQuery.Deferred(),\n elements = this,\n i = this.length,\n resolve = function () {\n if (! --count) {\n defer.resolveWith(elements, [elements]);\n }\n };\n if (typeof type !== \"string\") {\n obj = type;\n type = undefined;\n }\n type = type || \"fx\";\n while (i--) {\n tmp = dataPriv.get(elements[i], type + \"queueHooks\");\n if (tmp && tmp.empty) {\n count++;\n tmp.empty.add(resolve);\n }\n }\n resolve();\n return defer.promise(obj);\n }\n });\n return jQuery;\n});","define([\"./core\", \"./core/camelCase\", \"./var/document\", \"./var/isFunction\", \"./var/rcssNum\", \"./var/rnothtmlwhite\", \"./css/var/cssExpand\", \"./css/var/isHiddenWithinTree\", \"./css/adjustCSS\", \"./data/var/dataPriv\", \"./css/showHide\", \"./core/init\", \"./queue\", \"./deferred\", \"./traversing\", \"./manipulation\", \"./css\", \"./effects/Tween\"], function (jQuery, camelCase, document, isFunction, rcssNum, rnothtmlwhite, cssExpand, isHiddenWithinTree, adjustCSS, dataPriv, showHide) {\n \"use strict\";\n\n var fxNow,\n inProgress,\n rfxtypes = /^(?:toggle|show|hide)$/,\n rrun = /queueHooks$/;\n function schedule() {\n if (inProgress) {\n if (document.hidden === false && window.requestAnimationFrame) {\n window.requestAnimationFrame(schedule);\n } else {\n window.setTimeout(schedule, jQuery.fx.interval);\n }\n jQuery.fx.tick();\n }\n }\n\n // Animations created synchronously will run synchronously\n function createFxNow() {\n window.setTimeout(function () {\n fxNow = undefined;\n });\n return fxNow = Date.now();\n }\n\n // Generate parameters to create a standard animation\n function genFx(type, includeWidth) {\n var which,\n i = 0,\n attrs = {\n height: type\n };\n\n // If we include width, step value is 1 to do all cssExpand values,\n // otherwise step value is 2 to skip over Left and Right\n includeWidth = includeWidth ? 1 : 0;\n for (; i < 4; i += 2 - includeWidth) {\n which = cssExpand[i];\n attrs[\"margin\" + which] = attrs[\"padding\" + which] = type;\n }\n if (includeWidth) {\n attrs.opacity = attrs.width = type;\n }\n return attrs;\n }\n function createTween(value, prop, animation) {\n var tween,\n collection = (Animation.tweeners[prop] || []).concat(Animation.tweeners[\"*\"]),\n index = 0,\n length = collection.length;\n for (; index < length; index++) {\n if (tween = collection[index].call(animation, prop, value)) {\n // We're done with this property\n return tween;\n }\n }\n }\n function defaultPrefilter(elem, props, opts) {\n var prop,\n value,\n toggle,\n hooks,\n oldfire,\n propTween,\n restoreDisplay,\n display,\n isBox = \"width\" in props || \"height\" in props,\n anim = this,\n orig = {},\n style = elem.style,\n hidden = elem.nodeType && isHiddenWithinTree(elem),\n dataShow = dataPriv.get(elem, \"fxshow\");\n\n // Queue-skipping animations hijack the fx hooks\n if (!opts.queue) {\n hooks = jQuery._queueHooks(elem, \"fx\");\n if (hooks.unqueued == null) {\n hooks.unqueued = 0;\n oldfire = hooks.empty.fire;\n hooks.empty.fire = function () {\n if (!hooks.unqueued) {\n oldfire();\n }\n };\n }\n hooks.unqueued++;\n anim.always(function () {\n // Ensure the complete handler is called before this completes\n anim.always(function () {\n hooks.unqueued--;\n if (!jQuery.queue(elem, \"fx\").length) {\n hooks.empty.fire();\n }\n });\n });\n }\n\n // Detect show/hide animations\n for (prop in props) {\n value = props[prop];\n if (rfxtypes.test(value)) {\n delete props[prop];\n toggle = toggle || value === \"toggle\";\n if (value === (hidden ? \"hide\" : \"show\")) {\n // Pretend to be hidden if this is a \"show\" and\n // there is still data from a stopped show/hide\n if (value === \"show\" && dataShow && dataShow[prop] !== undefined) {\n hidden = true;\n\n // Ignore all other no-op show/hide data\n } else {\n continue;\n }\n }\n orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop);\n }\n }\n\n // Bail out if this is a no-op like .hide().hide()\n propTween = !jQuery.isEmptyObject(props);\n if (!propTween && jQuery.isEmptyObject(orig)) {\n return;\n }\n\n // Restrict \"overflow\" and \"display\" styles during box animations\n if (isBox && elem.nodeType === 1) {\n // Support: IE <=9 - 11, Edge 12 - 15\n // Record all 3 overflow attributes because IE does not infer the shorthand\n // from identically-valued overflowX and overflowY and Edge just mirrors\n // the overflowX value there.\n opts.overflow = [style.overflow, style.overflowX, style.overflowY];\n\n // Identify a display type, preferring old show/hide data over the CSS cascade\n restoreDisplay = dataShow && dataShow.display;\n if (restoreDisplay == null) {\n restoreDisplay = dataPriv.get(elem, \"display\");\n }\n display = jQuery.css(elem, \"display\");\n if (display === \"none\") {\n if (restoreDisplay) {\n display = restoreDisplay;\n } else {\n // Get nonempty value(s) by temporarily forcing visibility\n showHide([elem], true);\n restoreDisplay = elem.style.display || restoreDisplay;\n display = jQuery.css(elem, \"display\");\n showHide([elem]);\n }\n }\n\n // Animate inline elements as inline-block\n if (display === \"inline\" || display === \"inline-block\" && restoreDisplay != null) {\n if (jQuery.css(elem, \"float\") === \"none\") {\n // Restore the original display value at the end of pure show/hide animations\n if (!propTween) {\n anim.done(function () {\n style.display = restoreDisplay;\n });\n if (restoreDisplay == null) {\n display = style.display;\n restoreDisplay = display === \"none\" ? \"\" : display;\n }\n }\n style.display = \"inline-block\";\n }\n }\n }\n if (opts.overflow) {\n style.overflow = \"hidden\";\n anim.always(function () {\n style.overflow = opts.overflow[0];\n style.overflowX = opts.overflow[1];\n style.overflowY = opts.overflow[2];\n });\n }\n\n // Implement show/hide animations\n propTween = false;\n for (prop in orig) {\n // General show/hide setup for this element animation\n if (!propTween) {\n if (dataShow) {\n if (\"hidden\" in dataShow) {\n hidden = dataShow.hidden;\n }\n } else {\n dataShow = dataPriv.access(elem, \"fxshow\", {\n display: restoreDisplay\n });\n }\n\n // Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n if (toggle) {\n dataShow.hidden = !hidden;\n }\n\n // Show elements before animating them\n if (hidden) {\n showHide([elem], true);\n }\n\n /* eslint-disable no-loop-func */\n\n anim.done(function () {\n /* eslint-enable no-loop-func */\n\n // The final step of a \"hide\" animation is actually hiding the element\n if (!hidden) {\n showHide([elem]);\n }\n dataPriv.remove(elem, \"fxshow\");\n for (prop in orig) {\n jQuery.style(elem, prop, orig[prop]);\n }\n });\n }\n\n // Per-property setup\n propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim);\n if (!(prop in dataShow)) {\n dataShow[prop] = propTween.start;\n if (hidden) {\n propTween.end = propTween.start;\n propTween.start = 0;\n }\n }\n }\n }\n function propFilter(props, specialEasing) {\n var index, name, easing, value, hooks;\n\n // camelCase, specialEasing and expand cssHook pass\n for (index in props) {\n name = camelCase(index);\n easing = specialEasing[name];\n value = props[index];\n if (Array.isArray(value)) {\n easing = value[1];\n value = props[index] = value[0];\n }\n if (index !== name) {\n props[name] = value;\n delete props[index];\n }\n hooks = jQuery.cssHooks[name];\n if (hooks && \"expand\" in hooks) {\n value = hooks.expand(value);\n delete props[name];\n\n // Not quite $.extend, this won't overwrite existing keys.\n // Reusing 'index' because we have the correct \"name\"\n for (index in value) {\n if (!(index in props)) {\n props[index] = value[index];\n specialEasing[index] = easing;\n }\n }\n } else {\n specialEasing[name] = easing;\n }\n }\n }\n function Animation(elem, properties, options) {\n var result,\n stopped,\n index = 0,\n length = Animation.prefilters.length,\n deferred = jQuery.Deferred().always(function () {\n // Don't match elem in the :animated selector\n delete tick.elem;\n }),\n tick = function () {\n if (stopped) {\n return false;\n }\n var currentTime = fxNow || createFxNow(),\n remaining = Math.max(0, animation.startTime + animation.duration - currentTime),\n // Support: Android 2.3 only\n // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n temp = remaining / animation.duration || 0,\n percent = 1 - temp,\n index = 0,\n length = animation.tweens.length;\n for (; index < length; index++) {\n animation.tweens[index].run(percent);\n }\n deferred.notifyWith(elem, [animation, percent, remaining]);\n\n // If there's more to do, yield\n if (percent < 1 && length) {\n return remaining;\n }\n\n // If this was an empty animation, synthesize a final progress notification\n if (!length) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n }\n\n // Resolve the animation and report its conclusion\n deferred.resolveWith(elem, [animation]);\n return false;\n },\n animation = deferred.promise({\n elem: elem,\n props: jQuery.extend({}, properties),\n opts: jQuery.extend(true, {\n specialEasing: {},\n easing: jQuery.easing._default\n }, options),\n originalProperties: properties,\n originalOptions: options,\n startTime: fxNow || createFxNow(),\n duration: options.duration,\n tweens: [],\n createTween: function (prop, end) {\n var tween = jQuery.Tween(elem, animation.opts, prop, end, animation.opts.specialEasing[prop] || animation.opts.easing);\n animation.tweens.push(tween);\n return tween;\n },\n stop: function (gotoEnd) {\n var index = 0,\n // If we are going to the end, we want to run all the tweens\n // otherwise we skip this part\n length = gotoEnd ? animation.tweens.length : 0;\n if (stopped) {\n return this;\n }\n stopped = true;\n for (; index < length; index++) {\n animation.tweens[index].run(1);\n }\n\n // Resolve when we played the last frame; otherwise, reject\n if (gotoEnd) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n deferred.resolveWith(elem, [animation, gotoEnd]);\n } else {\n deferred.rejectWith(elem, [animation, gotoEnd]);\n }\n return this;\n }\n }),\n props = animation.props;\n propFilter(props, animation.opts.specialEasing);\n for (; index < length; index++) {\n result = Animation.prefilters[index].call(animation, elem, props, animation.opts);\n if (result) {\n if (isFunction(result.stop)) {\n jQuery._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result);\n }\n return result;\n }\n }\n jQuery.map(props, createTween, animation);\n if (isFunction(animation.opts.start)) {\n animation.opts.start.call(elem, animation);\n }\n\n // Attach callbacks from options\n animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);\n jQuery.fx.timer(jQuery.extend(tick, {\n elem: elem,\n anim: animation,\n queue: animation.opts.queue\n }));\n return animation;\n }\n jQuery.Animation = jQuery.extend(Animation, {\n tweeners: {\n \"*\": [function (prop, value) {\n var tween = this.createTween(prop, value);\n adjustCSS(tween.elem, prop, rcssNum.exec(value), tween);\n return tween;\n }]\n },\n tweener: function (props, callback) {\n if (isFunction(props)) {\n callback = props;\n props = [\"*\"];\n } else {\n props = props.match(rnothtmlwhite);\n }\n var prop,\n index = 0,\n length = props.length;\n for (; index < length; index++) {\n prop = props[index];\n Animation.tweeners[prop] = Animation.tweeners[prop] || [];\n Animation.tweeners[prop].unshift(callback);\n }\n },\n prefilters: [defaultPrefilter],\n prefilter: function (callback, prepend) {\n if (prepend) {\n Animation.prefilters.unshift(callback);\n } else {\n Animation.prefilters.push(callback);\n }\n }\n });\n jQuery.speed = function (speed, easing, fn) {\n var opt = speed && typeof speed === \"object\" ? jQuery.extend({}, speed) : {\n complete: fn || !fn && easing || isFunction(speed) && speed,\n duration: speed,\n easing: fn && easing || easing && !isFunction(easing) && easing\n };\n\n // Go to the end state if fx are off\n if (jQuery.fx.off) {\n opt.duration = 0;\n } else {\n if (typeof opt.duration !== \"number\") {\n if (opt.duration in jQuery.fx.speeds) {\n opt.duration = jQuery.fx.speeds[opt.duration];\n } else {\n opt.duration = jQuery.fx.speeds._default;\n }\n }\n }\n\n // Normalize opt.queue - true/undefined/null -> \"fx\"\n if (opt.queue == null || opt.queue === true) {\n opt.queue = \"fx\";\n }\n\n // Queueing\n opt.old = opt.complete;\n opt.complete = function () {\n if (isFunction(opt.old)) {\n opt.old.call(this);\n }\n if (opt.queue) {\n jQuery.dequeue(this, opt.queue);\n }\n };\n return opt;\n };\n jQuery.fn.extend({\n fadeTo: function (speed, to, easing, callback) {\n // Show any hidden elements after setting opacity to 0\n return this.filter(isHiddenWithinTree).css(\"opacity\", 0).show()\n\n // Animate to the value specified\n .end().animate({\n opacity: to\n }, speed, easing, callback);\n },\n animate: function (prop, speed, easing, callback) {\n var empty = jQuery.isEmptyObject(prop),\n optall = jQuery.speed(speed, easing, callback),\n doAnimation = function () {\n // Operate on a copy of prop so per-property easing won't be lost\n var anim = Animation(this, jQuery.extend({}, prop), optall);\n\n // Empty animations, or finishing resolves immediately\n if (empty || dataPriv.get(this, \"finish\")) {\n anim.stop(true);\n }\n };\n doAnimation.finish = doAnimation;\n return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation);\n },\n stop: function (type, clearQueue, gotoEnd) {\n var stopQueue = function (hooks) {\n var stop = hooks.stop;\n delete hooks.stop;\n stop(gotoEnd);\n };\n if (typeof type !== \"string\") {\n gotoEnd = clearQueue;\n clearQueue = type;\n type = undefined;\n }\n if (clearQueue) {\n this.queue(type || \"fx\", []);\n }\n return this.each(function () {\n var dequeue = true,\n index = type != null && type + \"queueHooks\",\n timers = jQuery.timers,\n data = dataPriv.get(this);\n if (index) {\n if (data[index] && data[index].stop) {\n stopQueue(data[index]);\n }\n } else {\n for (index in data) {\n if (data[index] && data[index].stop && rrun.test(index)) {\n stopQueue(data[index]);\n }\n }\n }\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && (type == null || timers[index].queue === type)) {\n timers[index].anim.stop(gotoEnd);\n dequeue = false;\n timers.splice(index, 1);\n }\n }\n\n // Start the next in the queue if the last step wasn't forced.\n // Timers currently will call their complete callbacks, which\n // will dequeue but only if they were gotoEnd.\n if (dequeue || !gotoEnd) {\n jQuery.dequeue(this, type);\n }\n });\n },\n finish: function (type) {\n if (type !== false) {\n type = type || \"fx\";\n }\n return this.each(function () {\n var index,\n data = dataPriv.get(this),\n queue = data[type + \"queue\"],\n hooks = data[type + \"queueHooks\"],\n timers = jQuery.timers,\n length = queue ? queue.length : 0;\n\n // Enable finishing flag on private data\n data.finish = true;\n\n // Empty the queue first\n jQuery.queue(this, type, []);\n if (hooks && hooks.stop) {\n hooks.stop.call(this, true);\n }\n\n // Look for any active animations, and finish them\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && timers[index].queue === type) {\n timers[index].anim.stop(true);\n timers.splice(index, 1);\n }\n }\n\n // Look for any animations in the old queue and finish them\n for (index = 0; index < length; index++) {\n if (queue[index] && queue[index].finish) {\n queue[index].finish.call(this);\n }\n }\n\n // Turn off finishing flag\n delete data.finish;\n });\n }\n });\n jQuery.each([\"toggle\", \"show\", \"hide\"], function (_i, name) {\n var cssFn = jQuery.fn[name];\n jQuery.fn[name] = function (speed, easing, callback) {\n return speed == null || typeof speed === \"boolean\" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback);\n };\n });\n\n // Generate shortcuts for custom animations\n jQuery.each({\n slideDown: genFx(\"show\"),\n slideUp: genFx(\"hide\"),\n slideToggle: genFx(\"toggle\"),\n fadeIn: {\n opacity: \"show\"\n },\n fadeOut: {\n opacity: \"hide\"\n },\n fadeToggle: {\n opacity: \"toggle\"\n }\n }, function (name, props) {\n jQuery.fn[name] = function (speed, easing, callback) {\n return this.animate(props, speed, easing, callback);\n };\n });\n jQuery.timers = [];\n jQuery.fx.tick = function () {\n var timer,\n i = 0,\n timers = jQuery.timers;\n fxNow = Date.now();\n for (; i < timers.length; i++) {\n timer = timers[i];\n\n // Run the timer and safely remove it when done (allowing for external removal)\n if (!timer() && timers[i] === timer) {\n timers.splice(i--, 1);\n }\n }\n if (!timers.length) {\n jQuery.fx.stop();\n }\n fxNow = undefined;\n };\n jQuery.fx.timer = function (timer) {\n jQuery.timers.push(timer);\n jQuery.fx.start();\n };\n jQuery.fx.interval = 13;\n jQuery.fx.start = function () {\n if (inProgress) {\n return;\n }\n inProgress = true;\n schedule();\n };\n jQuery.fx.stop = function () {\n inProgress = null;\n };\n jQuery.fx.speeds = {\n slow: 600,\n fast: 200,\n // Default speed\n _default: 400\n };\n return jQuery;\n});","define([\"../var/pnum\"], function (pnum) {\n \"use strict\";\n\n return new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\n});","define(function () {\n \"use strict\";\n\n return [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n});","define(function () {\n \"use strict\";\n\n return /^(?:checkbox|radio)$/i;\n});","define([\"../../var/pnum\"], function (pnum) {\n \"use strict\";\n\n return new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n});","define([\"../core\", \"../var/document\", \"../var/documentElement\", \"../var/support\"], function (jQuery, document, documentElement, support) {\n \"use strict\";\n\n (function () {\n // Executing both pixelPosition & boxSizingReliable tests require only one layout\n // so they're executed at the same time to save the second computation.\n function computeStyleTests() {\n // This is a singleton, we need to execute it only once\n if (!div) {\n return;\n }\n container.style.cssText = \"position:absolute;left:-11111px;width:60px;\" + \"margin-top:1px;padding:0;border:0\";\n div.style.cssText = \"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" + \"margin:auto;border:1px;padding:1px;\" + \"width:60%;top:1%\";\n documentElement.appendChild(container).appendChild(div);\n var divStyle = window.getComputedStyle(div);\n pixelPositionVal = divStyle.top !== \"1%\";\n\n // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12;\n\n // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n // Some styles come back with percentage values, even though they shouldn't\n div.style.right = \"60%\";\n pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36;\n\n // Support: IE 9 - 11 only\n // Detect misreporting of content dimensions for box-sizing:border-box elements\n boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36;\n\n // Support: IE 9 only\n // Detect overflow:scroll screwiness (gh-3699)\n // Support: Chrome <=64\n // Don't get tricked when zoom affects offsetWidth (gh-4029)\n div.style.position = \"absolute\";\n scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12;\n documentElement.removeChild(container);\n\n // Nullify the div so it wouldn't be stored in the memory and\n // it will also be a sign that checks already performed\n div = null;\n }\n function roundPixelMeasures(measure) {\n return Math.round(parseFloat(measure));\n }\n var pixelPositionVal,\n boxSizingReliableVal,\n scrollboxSizeVal,\n pixelBoxStylesVal,\n reliableTrDimensionsVal,\n reliableMarginLeftVal,\n container = document.createElement(\"div\"),\n div = document.createElement(\"div\");\n\n // Finish early in limited (non-browser) environments\n if (!div.style) {\n return;\n }\n\n // Support: IE <=9 - 11 only\n // Style of cloned element affects source element cloned (#8908)\n div.style.backgroundClip = \"content-box\";\n div.cloneNode(true).style.backgroundClip = \"\";\n support.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n jQuery.extend(support, {\n boxSizingReliable: function () {\n computeStyleTests();\n return boxSizingReliableVal;\n },\n pixelBoxStyles: function () {\n computeStyleTests();\n return pixelBoxStylesVal;\n },\n pixelPosition: function () {\n computeStyleTests();\n return pixelPositionVal;\n },\n reliableMarginLeft: function () {\n computeStyleTests();\n return reliableMarginLeftVal;\n },\n scrollboxSize: function () {\n computeStyleTests();\n return scrollboxSizeVal;\n },\n // Support: IE 9 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Behavior in IE 9 is more subtle than in newer versions & it passes\n // some versions of this test; make sure not to make it pass there!\n reliableTrDimensions: function () {\n var table, tr, trChild, trStyle;\n if (reliableTrDimensionsVal == null) {\n table = document.createElement(\"table\");\n tr = document.createElement(\"tr\");\n trChild = document.createElement(\"div\");\n table.style.cssText = \"position:absolute;left:-11111px\";\n tr.style.height = \"1px\";\n trChild.style.height = \"9px\";\n documentElement.appendChild(table).appendChild(tr).appendChild(trChild);\n trStyle = window.getComputedStyle(tr);\n reliableTrDimensionsVal = parseInt(trStyle.height) > 3;\n documentElement.removeChild(table);\n }\n return reliableTrDimensionsVal;\n }\n });\n })();\n return support;\n});","define([\"../var/document\", \"../var/support\"], function (document, support) {\n \"use strict\";\n\n (function () {\n var input = document.createElement(\"input\"),\n select = document.createElement(\"select\"),\n opt = select.appendChild(document.createElement(\"option\"));\n input.type = \"checkbox\";\n\n // Support: Android <=4.3 only\n // Default value for a checkbox should be \"on\"\n support.checkOn = input.value !== \"\";\n\n // Support: IE <=11 only\n // Must access selectedIndex to make default options select\n support.optSelected = opt.selected;\n\n // Support: IE <=11 only\n // An input loses its value after becoming a radio\n input = document.createElement(\"input\");\n input.value = \"t\";\n input.type = \"radio\";\n support.radioValue = input.value === \"t\";\n })();\n return support;\n});","define([\"../var/rnothtmlwhite\"], function (rnothtmlwhite) {\n \"use strict\";\n\n // Strip and collapse whitespace according to HTML spec\n // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n function stripAndCollapse(value) {\n var tokens = value.match(rnothtmlwhite) || [];\n return tokens.join(\" \");\n }\n return stripAndCollapse;\n});","define([\"../core\", \"../var/document\", \"../data/var/dataPriv\", \"../data/var/acceptData\", \"../var/hasOwn\", \"../var/isFunction\", \"../var/isWindow\", \"../event\"], function (jQuery, document, dataPriv, acceptData, hasOwn, isFunction, isWindow) {\n \"use strict\";\n\n var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n stopPropagationCallback = function (e) {\n e.stopPropagation();\n };\n jQuery.extend(jQuery.event, {\n trigger: function (event, data, elem, onlyHandlers) {\n var i,\n cur,\n tmp,\n bubbleType,\n ontype,\n handle,\n special,\n lastElement,\n eventPath = [elem || document],\n type = hasOwn.call(event, \"type\") ? event.type : event,\n namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n cur = lastElement = tmp = elem = elem || document;\n\n // Don't do events on text and comment nodes\n if (elem.nodeType === 3 || elem.nodeType === 8) {\n return;\n }\n\n // focus/blur morphs to focusin/out; ensure we're not firing them right now\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\n return;\n }\n if (type.indexOf(\".\") > -1) {\n // Namespaced trigger; create a regexp to match event type in handle()\n namespaces = type.split(\".\");\n type = namespaces.shift();\n namespaces.sort();\n }\n ontype = type.indexOf(\":\") < 0 && \"on\" + type;\n\n // Caller can pass in a jQuery.Event object, Object, or just an event type string\n event = event[jQuery.expando] ? event : new jQuery.Event(type, typeof event === \"object\" && event);\n\n // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n event.isTrigger = onlyHandlers ? 2 : 3;\n event.namespace = namespaces.join(\".\");\n event.rnamespace = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null;\n\n // Clean up the event in case it is being reused\n event.result = undefined;\n if (!event.target) {\n event.target = elem;\n }\n\n // Clone any incoming data and prepend the event, creating the handler arg list\n data = data == null ? [event] : jQuery.makeArray(data, [event]);\n\n // Allow special events to draw outside the lines\n special = jQuery.event.special[type] || {};\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n return;\n }\n\n // Determine event propagation path in advance, per W3C events spec (#9951)\n // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n if (!onlyHandlers && !special.noBubble && !isWindow(elem)) {\n bubbleType = special.delegateType || type;\n if (!rfocusMorph.test(bubbleType + type)) {\n cur = cur.parentNode;\n }\n for (; cur; cur = cur.parentNode) {\n eventPath.push(cur);\n tmp = cur;\n }\n\n // Only add window if we got to document (e.g., not plain obj or detached DOM)\n if (tmp === (elem.ownerDocument || document)) {\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n }\n }\n\n // Fire handlers on the event path\n i = 0;\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n lastElement = cur;\n event.type = i > 1 ? bubbleType : special.bindType || type;\n\n // jQuery handler\n handle = (dataPriv.get(cur, \"events\") || Object.create(null))[event.type] && dataPriv.get(cur, \"handle\");\n if (handle) {\n handle.apply(cur, data);\n }\n\n // Native handler\n handle = ontype && cur[ontype];\n if (handle && handle.apply && acceptData(cur)) {\n event.result = handle.apply(cur, data);\n if (event.result === false) {\n event.preventDefault();\n }\n }\n }\n event.type = type;\n\n // If nobody prevented the default action, do it now\n if (!onlyHandlers && !event.isDefaultPrevented()) {\n if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) {\n // Call a native DOM method on the target with the same name as the event.\n // Don't do default actions on window, that's where global variables be (#6170)\n if (ontype && isFunction(elem[type]) && !isWindow(elem)) {\n // Don't re-trigger an onFOO event when we call its FOO() method\n tmp = elem[ontype];\n if (tmp) {\n elem[ontype] = null;\n }\n\n // Prevent re-triggering of the same event, since we already bubbled it above\n jQuery.event.triggered = type;\n if (event.isPropagationStopped()) {\n lastElement.addEventListener(type, stopPropagationCallback);\n }\n elem[type]();\n if (event.isPropagationStopped()) {\n lastElement.removeEventListener(type, stopPropagationCallback);\n }\n jQuery.event.triggered = undefined;\n if (tmp) {\n elem[ontype] = tmp;\n }\n }\n }\n }\n return event.result;\n },\n // Piggyback on a donor event to simulate a different one\n // Used only for `focus(in | out)` events\n simulate: function (type, elem, event) {\n var e = jQuery.extend(new jQuery.Event(), event, {\n type: type,\n isSimulated: true\n });\n jQuery.event.trigger(e, null, elem);\n }\n });\n jQuery.fn.extend({\n trigger: function (type, data) {\n return this.each(function () {\n jQuery.event.trigger(type, data, this);\n });\n },\n triggerHandler: function (type, data) {\n var elem = this[0];\n if (elem) {\n return jQuery.event.trigger(type, data, elem, true);\n }\n }\n });\n return jQuery;\n});","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"./Util\");\nvar Container_1 = require(\"./Container\");\nvar Global_1 = require(\"./Global\");\nvar Group = function (_super) {\n __extends(Group, _super);\n function Group() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Group.prototype._validateAdd = function (child) {\n var type = child.getType();\n if (type !== 'Group' && type !== 'Shape') {\n Util_1.Util.throw('You may only add groups and shapes to groups.');\n }\n };\n return Group;\n}(Container_1.Container);\nexports.Group = Group;\nGroup.prototype.nodeType = 'Group';\nGlobal_1._registerNode(Group);\nUtil_1.Collection.mapMethods(Group);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Global_1 = require(\"./Global\");\nvar now = function () {\n if (Global_1.glob.performance && Global_1.glob.performance.now) {\n return function () {\n return Global_1.glob.performance.now();\n };\n }\n return function () {\n return new Date().getTime();\n };\n}();\nvar Animation = function () {\n function Animation(func, layers) {\n this.id = Animation.animIdCounter++;\n this.frame = {\n time: 0,\n timeDiff: 0,\n lastTime: now(),\n frameRate: 0\n };\n this.func = func;\n this.setLayers(layers);\n }\n Animation.prototype.setLayers = function (layers) {\n var lays = [];\n if (!layers) {\n lays = [];\n } else if (layers.length > 0) {\n lays = layers;\n } else {\n lays = [layers];\n }\n this.layers = lays;\n return this;\n };\n Animation.prototype.getLayers = function () {\n return this.layers;\n };\n Animation.prototype.addLayer = function (layer) {\n var layers = this.layers,\n len = layers.length,\n n;\n for (n = 0; n < len; n++) {\n if (layers[n]._id === layer._id) {\n return false;\n }\n }\n this.layers.push(layer);\n return true;\n };\n Animation.prototype.isRunning = function () {\n var a = Animation,\n animations = a.animations,\n len = animations.length,\n n;\n for (n = 0; n < len; n++) {\n if (animations[n].id === this.id) {\n return true;\n }\n }\n return false;\n };\n Animation.prototype.start = function () {\n this.stop();\n this.frame.timeDiff = 0;\n this.frame.lastTime = now();\n Animation._addAnimation(this);\n return this;\n };\n Animation.prototype.stop = function () {\n Animation._removeAnimation(this);\n return this;\n };\n Animation.prototype._updateFrameObject = function (time) {\n this.frame.timeDiff = time - this.frame.lastTime;\n this.frame.lastTime = time;\n this.frame.time += this.frame.timeDiff;\n this.frame.frameRate = 1000 / this.frame.timeDiff;\n };\n Animation._addAnimation = function (anim) {\n this.animations.push(anim);\n this._handleAnimation();\n };\n Animation._removeAnimation = function (anim) {\n var id = anim.id,\n animations = this.animations,\n len = animations.length,\n n;\n for (n = 0; n < len; n++) {\n if (animations[n].id === id) {\n this.animations.splice(n, 1);\n break;\n }\n }\n };\n Animation._runFrames = function () {\n var layerHash = {},\n animations = this.animations,\n anim,\n layers,\n func,\n n,\n i,\n layersLen,\n layer,\n key,\n needRedraw;\n for (n = 0; n < animations.length; n++) {\n anim = animations[n];\n layers = anim.layers;\n func = anim.func;\n anim._updateFrameObject(now());\n layersLen = layers.length;\n if (func) {\n needRedraw = func.call(anim, anim.frame) !== false;\n } else {\n needRedraw = true;\n }\n if (!needRedraw) {\n continue;\n }\n for (i = 0; i < layersLen; i++) {\n layer = layers[i];\n if (layer._id !== undefined) {\n layerHash[layer._id] = layer;\n }\n }\n }\n for (key in layerHash) {\n if (!layerHash.hasOwnProperty(key)) {\n continue;\n }\n layerHash[key].draw();\n }\n };\n Animation._animationLoop = function () {\n var Anim = Animation;\n if (Anim.animations.length) {\n Anim._runFrames();\n requestAnimationFrame(Anim._animationLoop);\n } else {\n Anim.animRunning = false;\n }\n };\n Animation._handleAnimation = function () {\n if (!this.animRunning) {\n this.animRunning = true;\n requestAnimationFrame(this._animationLoop);\n }\n };\n Animation.animations = [];\n Animation.animIdCounter = 0;\n Animation.animRunning = false;\n return Animation;\n}();\nexports.Animation = Animation;","define([\"./core\", \"./selector\", \"./traversing\", \"./callbacks\", \"./deferred\", \"./deferred/exceptionHook\", \"./core/ready\", \"./data\", \"./queue\", \"./queue/delay\", \"./attributes\", \"./event\", \"./event/focusin\", \"./manipulation\", \"./manipulation/_evalUrl\", \"./wrap\", \"./css\", \"./css/hiddenVisibleSelectors\", \"./serialize\", \"./ajax\", \"./ajax/xhr\", \"./ajax/script\", \"./ajax/jsonp\", \"./ajax/load\", \"./core/parseXML\", \"./core/parseHTML\", \"./effects\", \"./effects/animatedSelector\", \"./offset\", \"./dimensions\", \"./deprecated\", \"./exports/amd\", \"./exports/global\"], function (jQuery) {\n \"use strict\";\n\n return jQuery;\n});","define(function () {\n \"use strict\";\n\n return Object.getPrototypeOf;\n});","define([\"./arr\"], function (arr) {\n \"use strict\";\n\n // Support: IE 9 - 11+, Edge 18+, Android Browser 4.0 - 4.3 only, iOS 7 - 11 only, Safari 11 only,\n // Firefox <= 61 only\n // Provide fallback for browsers without Array#flat.\n return arr.flat ? function (array) {\n return arr.flat.call(array);\n } : function (array) {\n return arr.concat.apply([], array);\n };\n});","define([\"./arr\"], function (arr) {\n \"use strict\";\n\n return arr.push;\n});","define([\"./class2type\"], function (class2type) {\n \"use strict\";\n\n return class2type.toString;\n});","define([\"./hasOwn\"], function (hasOwn) {\n \"use strict\";\n\n return hasOwn.toString;\n});","define([\"../var/document\"], function (document) {\n \"use strict\";\n\n var preservedScriptAttributes = {\n type: true,\n src: true,\n nonce: true,\n noModule: true\n };\n function DOMEval(code, node, doc) {\n doc = doc || document;\n var i,\n val,\n script = doc.createElement(\"script\");\n script.text = code;\n if (node) {\n for (i in preservedScriptAttributes) {\n // Support: Firefox 64+, Edge 18+\n // Some browsers don't support the \"nonce\" property on scripts.\n // On the other hand, just using `getAttribute` is not enough as\n // the `nonce` attribute is reset to an empty string whenever it\n // becomes browsing-context connected.\n // See https://github.com/whatwg/html/issues/2369\n // See https://html.spec.whatwg.org/#nonce-attributes\n // The `node.getAttribute` check was added for the sake of\n // `jQuery.globalEval` so that it can fake a nonce-containing node\n // via an object.\n val = node[i] || node.getAttribute && node.getAttribute(i);\n if (val) {\n script.setAttribute(i, val);\n }\n }\n }\n doc.head.appendChild(script).parentNode.removeChild(script);\n }\n return DOMEval;\n});","define([\"../../core\", \"../../selector\"], function (jQuery) {\n \"use strict\";\n\n return jQuery.expr.match.needsContext;\n});","define(function () {\n \"use strict\";\n\n // rsingleTag matches a string consisting of a single HTML element with no attributes\n // and captures the element's name\n return /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;\n});","define([\"../core\", \"../var/indexOf\", \"../var/isFunction\", \"./var/rneedsContext\", \"../selector\"], function (jQuery, indexOf, isFunction, rneedsContext) {\n \"use strict\";\n\n // Implement the identical functionality for filter and not\n function winnow(elements, qualifier, not) {\n if (isFunction(qualifier)) {\n return jQuery.grep(elements, function (elem, i) {\n return !!qualifier.call(elem, i, elem) !== not;\n });\n }\n\n // Single element\n if (qualifier.nodeType) {\n return jQuery.grep(elements, function (elem) {\n return elem === qualifier !== not;\n });\n }\n\n // Arraylike of elements (jQuery, arguments, Array)\n if (typeof qualifier !== \"string\") {\n return jQuery.grep(elements, function (elem) {\n return indexOf.call(qualifier, elem) > -1 !== not;\n });\n }\n\n // Filtered directly for both simple and complex selectors\n return jQuery.filter(qualifier, elements, not);\n }\n jQuery.filter = function (expr, elems, not) {\n var elem = elems[0];\n if (not) {\n expr = \":not(\" + expr + \")\";\n }\n if (elems.length === 1 && elem.nodeType === 1) {\n return jQuery.find.matchesSelector(elem, expr) ? [elem] : [];\n }\n return jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n return elem.nodeType === 1;\n }));\n };\n jQuery.fn.extend({\n find: function (selector) {\n var i,\n ret,\n len = this.length,\n self = this;\n if (typeof selector !== \"string\") {\n return this.pushStack(jQuery(selector).filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(self[i], this)) {\n return true;\n }\n }\n }));\n }\n ret = this.pushStack([]);\n for (i = 0; i < len; i++) {\n jQuery.find(selector, self[i], ret);\n }\n return len > 1 ? jQuery.uniqueSort(ret) : ret;\n },\n filter: function (selector) {\n return this.pushStack(winnow(this, selector || [], false));\n },\n not: function (selector) {\n return this.pushStack(winnow(this, selector || [], true));\n },\n is: function (selector) {\n return !!winnow(this,\n // If this is a positional/relative selector, check membership in the returned set\n // so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n typeof selector === \"string\" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], false).length;\n }\n });\n});","define([\"../core\", \"../var/document\", \"../core/readyException\", \"../deferred\"], function (jQuery, document) {\n \"use strict\";\n\n // The deferred used on DOM ready\n var readyList = jQuery.Deferred();\n jQuery.fn.ready = function (fn) {\n readyList.then(fn)\n\n // Wrap jQuery.readyException in a function so that the lookup\n // happens at the time of error handling instead of callback\n // registration.\n .catch(function (error) {\n jQuery.readyException(error);\n });\n return this;\n };\n jQuery.extend({\n // Is the DOM ready to be used? Set to true once it occurs.\n isReady: false,\n // A counter to track how many items to wait for before\n // the ready event fires. See #6781\n readyWait: 1,\n // Handle when the DOM is ready\n ready: function (wait) {\n // Abort if there are pending holds or we're already ready\n if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n return;\n }\n\n // Remember that the DOM is ready\n jQuery.isReady = true;\n\n // If a normal DOM Ready event fired, decrement, and wait if need be\n if (wait !== true && --jQuery.readyWait > 0) {\n return;\n }\n\n // If there are functions bound, to execute\n readyList.resolveWith(document, [jQuery]);\n }\n });\n jQuery.ready.then = readyList.then;\n\n // The ready event handler and self cleanup method\n function completed() {\n document.removeEventListener(\"DOMContentLoaded\", completed);\n window.removeEventListener(\"load\", completed);\n jQuery.ready();\n }\n\n // Catch cases where $(document).ready() is called\n // after the browser event has already occurred.\n // Support: IE <=9 - 10 only\n // Older IE sometimes signals \"interactive\" too soon\n if (document.readyState === \"complete\" || document.readyState !== \"loading\" && !document.documentElement.doScroll) {\n // Handle it asynchronously to allow scripts the opportunity to delay ready\n window.setTimeout(jQuery.ready);\n } else {\n // Use the handy event callback\n document.addEventListener(\"DOMContentLoaded\", completed);\n\n // A fallback to window.onload, that will always work\n window.addEventListener(\"load\", completed);\n }\n});","define([\"../core\", \"../core/camelCase\", \"../var/rnothtmlwhite\", \"./var/acceptData\"], function (jQuery, camelCase, rnothtmlwhite, acceptData) {\n \"use strict\";\n\n function Data() {\n this.expando = jQuery.expando + Data.uid++;\n }\n Data.uid = 1;\n Data.prototype = {\n cache: function (owner) {\n // Check if the owner object already has a cache\n var value = owner[this.expando];\n\n // If not, create one\n if (!value) {\n value = {};\n\n // We can accept data for non-element nodes in modern browsers,\n // but we should not, see #8335.\n // Always return an empty object.\n if (acceptData(owner)) {\n // If it is a node unlikely to be stringify-ed or looped over\n // use plain assignment\n if (owner.nodeType) {\n owner[this.expando] = value;\n\n // Otherwise secure it in a non-enumerable property\n // configurable must be true to allow the property to be\n // deleted when data is removed\n } else {\n Object.defineProperty(owner, this.expando, {\n value: value,\n configurable: true\n });\n }\n }\n }\n return value;\n },\n set: function (owner, data, value) {\n var prop,\n cache = this.cache(owner);\n\n // Handle: [ owner, key, value ] args\n // Always use camelCase key (gh-2257)\n if (typeof data === \"string\") {\n cache[camelCase(data)] = value;\n\n // Handle: [ owner, { properties } ] args\n } else {\n // Copy the properties one-by-one to the cache object\n for (prop in data) {\n cache[camelCase(prop)] = data[prop];\n }\n }\n return cache;\n },\n get: function (owner, key) {\n return key === undefined ? this.cache(owner) :\n // Always use camelCase key (gh-2257)\n owner[this.expando] && owner[this.expando][camelCase(key)];\n },\n access: function (owner, key, value) {\n // In cases where either:\n //\n // 1. No key was specified\n // 2. A string key was specified, but no value provided\n //\n // Take the \"read\" path and allow the get method to determine\n // which value to return, respectively either:\n //\n // 1. The entire cache object\n // 2. The data stored at the key\n //\n if (key === undefined || key && typeof key === \"string\" && value === undefined) {\n return this.get(owner, key);\n }\n\n // When the key is not a string, or both a key and value\n // are specified, set or extend (existing objects) with either:\n //\n // 1. An object of properties\n // 2. A key and value\n //\n this.set(owner, key, value);\n\n // Since the \"set\" path can have two possible entry points\n // return the expected data based on which path was taken[*]\n return value !== undefined ? value : key;\n },\n remove: function (owner, key) {\n var i,\n cache = owner[this.expando];\n if (cache === undefined) {\n return;\n }\n if (key !== undefined) {\n // Support array or space separated string of keys\n if (Array.isArray(key)) {\n // If key is an array of keys...\n // We always set camelCase keys, so remove that.\n key = key.map(camelCase);\n } else {\n key = camelCase(key);\n\n // If a key with the spaces exists, use it.\n // Otherwise, create an array by matching non-whitespace\n key = key in cache ? [key] : key.match(rnothtmlwhite) || [];\n }\n i = key.length;\n while (i--) {\n delete cache[key[i]];\n }\n }\n\n // Remove the expando if there's no more data\n if (key === undefined || jQuery.isEmptyObject(cache)) {\n // Support: Chrome <=35 - 45\n // Webkit & Blink performance suffers when deleting properties\n // from DOM nodes, so set to undefined instead\n // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n if (owner.nodeType) {\n owner[this.expando] = undefined;\n } else {\n delete owner[this.expando];\n }\n }\n },\n hasData: function (owner) {\n var cache = owner[this.expando];\n return cache !== undefined && !jQuery.isEmptyObject(cache);\n }\n };\n return Data;\n});","define([\"../Data\"], function (Data) {\n \"use strict\";\n\n return new Data();\n});","define(function () {\n \"use strict\";\n\n return /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n});","define([\"../../core\", \"../../core/isAttached\"\n\n// css is assumed\n], function (jQuery, isAttached) {\n \"use strict\";\n\n // isHiddenWithinTree reports if an element has a non-\"none\" display style (inline and/or\n // through the CSS cascade), which is useful in deciding whether or not to make it visible.\n // It differs from the :hidden selector (jQuery.expr.pseudos.hidden) in two important ways:\n // * A hidden ancestor does not force an element to be classified as hidden.\n // * Being disconnected from the document does not force an element to be classified as hidden.\n // These differences improve the behavior of .toggle() et al. when applied to elements that are\n // detached or contained within hidden ancestors (gh-2404, gh-2863).\n return function (elem, el) {\n // isHiddenWithinTree might be called from jQuery#filter function;\n // in that case, element will be second argument\n elem = el || elem;\n\n // Inline style trumps all\n return elem.style.display === \"none\" || elem.style.display === \"\" &&\n // Otherwise, check computed style\n // Support: Firefox <=43 - 45\n // Disconnected elements can have computed display: none, so first confirm that elem is\n // in the document.\n isAttached(elem) && jQuery.css(elem, \"display\") === \"none\";\n };\n});","define([\"../core\", \"../var/rcssNum\"], function (jQuery, rcssNum) {\n \"use strict\";\n\n function adjustCSS(elem, prop, valueParts, tween) {\n var adjusted,\n scale,\n maxIterations = 20,\n currentValue = tween ? function () {\n return tween.cur();\n } : function () {\n return jQuery.css(elem, prop, \"\");\n },\n initial = currentValue(),\n unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\n // Starting value computation is required for potential unit mismatches\n initialInUnit = elem.nodeType && (jQuery.cssNumber[prop] || unit !== \"px\" && +initial) && rcssNum.exec(jQuery.css(elem, prop));\n if (initialInUnit && initialInUnit[3] !== unit) {\n // Support: Firefox <=54\n // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n initial = initial / 2;\n\n // Trust units reported by jQuery.css\n unit = unit || initialInUnit[3];\n\n // Iteratively approximate from a nonzero starting point\n initialInUnit = +initial || 1;\n while (maxIterations--) {\n // Evaluate and update our best guess (doubling guesses that zero out).\n // Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n jQuery.style(elem, prop, initialInUnit + unit);\n if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) {\n maxIterations = 0;\n }\n initialInUnit = initialInUnit / scale;\n }\n initialInUnit = initialInUnit * 2;\n jQuery.style(elem, prop, initialInUnit + unit);\n\n // Make sure we update the tween properties later on\n valueParts = valueParts || [];\n }\n if (valueParts) {\n initialInUnit = +initialInUnit || +initial || 0;\n\n // Apply relative offset (+=/-=) if specified\n adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2];\n if (tween) {\n tween.unit = unit;\n tween.start = initialInUnit;\n tween.end = adjusted;\n }\n }\n return adjusted;\n }\n return adjustCSS;\n});","define(function () {\n \"use strict\";\n\n // rtagName captures the name from the first start tag in a string of HTML\n // https://html.spec.whatwg.org/multipage/syntax.html#tag-open-state\n // https://html.spec.whatwg.org/multipage/syntax.html#tag-name-state\n return /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i;\n});","define(function () {\n \"use strict\";\n\n return /^$|^module$|\\/(?:java|ecma)script/i;\n});","define([\"./support\"], function (support) {\n \"use strict\";\n\n // We have to close these tags to support XHTML (#13200)\n var wrapMap = {\n // XHTML parsers do not magically insert elements in the\n // same way that tag soup parsers do. So we cannot shorten\n // this by omitting or other required elements.\n thead: [1, \"\", \"
\"],\n col: [2, \"\", \"
\"],\n tr: [2, \"\", \"
\"],\n td: [3, \"\", \"
\"],\n _default: [0, \"\", \"\"]\n };\n wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n wrapMap.th = wrapMap.td;\n\n // Support: IE <=9 only\n if (!support.option) {\n wrapMap.optgroup = wrapMap.option = [1, \"\"];\n }\n return wrapMap;\n});","define([\"../var/document\", \"../var/support\"], function (document, support) {\n \"use strict\";\n\n (function () {\n var fragment = document.createDocumentFragment(),\n div = fragment.appendChild(document.createElement(\"div\")),\n input = document.createElement(\"input\");\n\n // Support: Android 4.0 - 4.3 only\n // Check state lost if the name is set (#11217)\n // Support: Windows Web Apps (WWA)\n // `name` and `type` must use .setAttribute for WWA (#14901)\n input.setAttribute(\"type\", \"radio\");\n input.setAttribute(\"checked\", \"checked\");\n input.setAttribute(\"name\", \"t\");\n div.appendChild(input);\n\n // Support: Android <=4.1 only\n // Older WebKit doesn't clone checked state correctly in fragments\n support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked;\n\n // Support: IE <=11 only\n // Make sure textarea (and checkbox) defaultValue is properly cloned\n div.innerHTML = \"\";\n support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue;\n\n // Support: IE <=9 only\n // IE <=9 replaces \";\n support.option = !!div.lastChild;\n })();\n return support;\n});","define([\"../core\", \"../core/nodeName\"], function (jQuery, nodeName) {\n \"use strict\";\n\n function getAll(context, tag) {\n // Support: IE <=9 - 11 only\n // Use typeof to avoid zero-argument method invocation on host objects (#15151)\n var ret;\n if (typeof context.getElementsByTagName !== \"undefined\") {\n ret = context.getElementsByTagName(tag || \"*\");\n } else if (typeof context.querySelectorAll !== \"undefined\") {\n ret = context.querySelectorAll(tag || \"*\");\n } else {\n ret = [];\n }\n if (tag === undefined || tag && nodeName(context, tag)) {\n return jQuery.merge([context], ret);\n }\n return ret;\n }\n return getAll;\n});","define([\"../data/var/dataPriv\"], function (dataPriv) {\n \"use strict\";\n\n // Mark scripts as having already been evaluated\n function setGlobalEval(elems, refElements) {\n var i = 0,\n l = elems.length;\n for (; i < l; i++) {\n dataPriv.set(elems[i], \"globalEval\", !refElements || dataPriv.get(refElements[i], \"globalEval\"));\n }\n }\n return setGlobalEval;\n});","define([\"../core\", \"../core/toType\", \"../core/isAttached\", \"./var/rtagName\", \"./var/rscriptType\", \"./wrapMap\", \"./getAll\", \"./setGlobalEval\"], function (jQuery, toType, isAttached, rtagName, rscriptType, wrapMap, getAll, setGlobalEval) {\n \"use strict\";\n\n var rhtml = /<|&#?\\w+;/;\n function buildFragment(elems, context, scripts, selection, ignored) {\n var elem,\n tmp,\n tag,\n wrap,\n attached,\n j,\n fragment = context.createDocumentFragment(),\n nodes = [],\n i = 0,\n l = elems.length;\n for (; i < l; i++) {\n elem = elems[i];\n if (elem || elem === 0) {\n // Add nodes directly\n if (toType(elem) === \"object\") {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(nodes, elem.nodeType ? [elem] : elem);\n\n // Convert non-html into a text node\n } else if (!rhtml.test(elem)) {\n nodes.push(context.createTextNode(elem));\n\n // Convert html into DOM nodes\n } else {\n tmp = tmp || fragment.appendChild(context.createElement(\"div\"));\n\n // Deserialize a standard representation\n tag = (rtagName.exec(elem) || [\"\", \"\"])[1].toLowerCase();\n wrap = wrapMap[tag] || wrapMap._default;\n tmp.innerHTML = wrap[1] + jQuery.htmlPrefilter(elem) + wrap[2];\n\n // Descend through wrappers to the right content\n j = wrap[0];\n while (j--) {\n tmp = tmp.lastChild;\n }\n\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(nodes, tmp.childNodes);\n\n // Remember the top-level container\n tmp = fragment.firstChild;\n\n // Ensure the created nodes are orphaned (#12392)\n tmp.textContent = \"\";\n }\n }\n }\n\n // Remove wrapper from fragment\n fragment.textContent = \"\";\n i = 0;\n while (elem = nodes[i++]) {\n // Skip elements already in the context collection (trac-4087)\n if (selection && jQuery.inArray(elem, selection) > -1) {\n if (ignored) {\n ignored.push(elem);\n }\n continue;\n }\n attached = isAttached(elem);\n\n // Append to fragment\n tmp = getAll(fragment.appendChild(elem), \"script\");\n\n // Preserve script evaluation history\n if (attached) {\n setGlobalEval(tmp);\n }\n\n // Capture executables\n if (scripts) {\n j = 0;\n while (elem = tmp[j++]) {\n if (rscriptType.test(elem.type || \"\")) {\n scripts.push(elem);\n }\n }\n }\n }\n return fragment;\n }\n return buildFragment;\n});","define(function () {\n \"use strict\";\n\n return function (elem) {\n // Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n // IE throws on elements created in popups\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n var view = elem.ownerDocument.defaultView;\n if (!view || !view.opener) {\n view = window;\n }\n return view.getComputedStyle(elem);\n };\n});","define([\"../core\", \"../core/isAttached\", \"./var/rboxStyle\", \"./var/rnumnonpx\", \"./var/getStyles\", \"./support\"], function (jQuery, isAttached, rboxStyle, rnumnonpx, getStyles, support) {\n \"use strict\";\n\n function curCSS(elem, name, computed) {\n var width,\n minWidth,\n maxWidth,\n ret,\n // Support: Firefox 51+\n // Retrieving style before computed somehow\n // fixes an issue with getting wrong values\n // on detached elements\n style = elem.style;\n computed = computed || getStyles(elem);\n\n // getPropertyValue is needed for:\n // .css('filter') (IE 9 only, #12537)\n // .css('--customProperty) (#3144)\n if (computed) {\n ret = computed.getPropertyValue(name) || computed[name];\n if (ret === \"\" && !isAttached(elem)) {\n ret = jQuery.style(elem, name);\n }\n\n // A tribute to the \"awesome hack by Dean Edwards\"\n // Android Browser returns percentage for some values,\n // but width seems to be reliably pixels.\n // This is against the CSSOM draft spec:\n // https://drafts.csswg.org/cssom/#resolved-values\n if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) {\n // Remember the original values\n width = style.width;\n minWidth = style.minWidth;\n maxWidth = style.maxWidth;\n\n // Put in the new values to get a computed value out\n style.minWidth = style.maxWidth = style.width = ret;\n ret = computed.width;\n\n // Revert the changed values\n style.width = width;\n style.minWidth = minWidth;\n style.maxWidth = maxWidth;\n }\n }\n return ret !== undefined ?\n // Support: IE <=9 - 11 only\n // IE returns zIndex value as an integer.\n ret + \"\" : ret;\n }\n return curCSS;\n});","define(function () {\n \"use strict\";\n\n function addGetHookIf(conditionFn, hookFn) {\n // Define the hook, we'll check on the first run if it's really needed.\n return {\n get: function () {\n if (conditionFn()) {\n // Hook not needed (or it's not possible to use it due\n // to missing dependency), remove it.\n delete this.get;\n return;\n }\n\n // Hook needed; redefine it so that the support test is not executed again.\n return (this.get = hookFn).apply(this, arguments);\n }\n };\n }\n return addGetHookIf;\n});","define([\"../var/document\", \"../core\"], function (document, jQuery) {\n \"use strict\";\n\n var cssPrefixes = [\"Webkit\", \"Moz\", \"ms\"],\n emptyStyle = document.createElement(\"div\").style,\n vendorProps = {};\n\n // Return a vendor-prefixed property or undefined\n function vendorPropName(name) {\n // Check for vendor prefixed names\n var capName = name[0].toUpperCase() + name.slice(1),\n i = cssPrefixes.length;\n while (i--) {\n name = cssPrefixes[i] + capName;\n if (name in emptyStyle) {\n return name;\n }\n }\n }\n\n // Return a potentially-mapped jQuery.cssProps or vendor prefixed property\n function finalPropName(name) {\n var final = jQuery.cssProps[name] || vendorProps[name];\n if (final) {\n return final;\n }\n if (name in emptyStyle) {\n return name;\n }\n return vendorProps[name] = vendorPropName(name) || name;\n }\n return finalPropName;\n});","define([\"../core\", \"../core/access\", \"./support\", \"../selector\"], function (jQuery, access, support) {\n \"use strict\";\n\n var rfocusable = /^(?:input|select|textarea|button)$/i,\n rclickable = /^(?:a|area)$/i;\n jQuery.fn.extend({\n prop: function (name, value) {\n return access(this, jQuery.prop, name, value, arguments.length > 1);\n },\n removeProp: function (name) {\n return this.each(function () {\n delete this[jQuery.propFix[name] || name];\n });\n }\n });\n jQuery.extend({\n prop: function (elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType;\n\n // Don't get/set properties on text, comment and attribute nodes\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n }\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n // Fix name and attach hooks\n name = jQuery.propFix[name] || name;\n hooks = jQuery.propHooks[name];\n }\n if (value !== undefined) {\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n return elem[name] = value;\n }\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n return elem[name];\n },\n propHooks: {\n tabIndex: {\n get: function (elem) {\n // Support: IE <=9 - 11 only\n // elem.tabIndex doesn't always return the\n // correct value when it hasn't been explicitly set\n // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n // Use proper attribute retrieval(#12072)\n var tabindex = jQuery.find.attr(elem, \"tabindex\");\n if (tabindex) {\n return parseInt(tabindex, 10);\n }\n if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) {\n return 0;\n }\n return -1;\n }\n }\n },\n propFix: {\n \"for\": \"htmlFor\",\n \"class\": \"className\"\n }\n });\n\n // Support: IE <=11 only\n // Accessing the selectedIndex property\n // forces the browser to respect setting selected\n // on the option\n // The getter ensures a default option is selected\n // when in an optgroup\n // eslint rule \"no-unused-expressions\" is disabled for this code\n // since it considers such accessions noop\n if (!support.optSelected) {\n jQuery.propHooks.selected = {\n get: function (elem) {\n /* eslint no-unused-expressions: \"off\" */\n\n var parent = elem.parentNode;\n if (parent && parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n return null;\n },\n set: function (elem) {\n /* eslint no-unused-expressions: \"off\" */\n\n var parent = elem.parentNode;\n if (parent) {\n parent.selectedIndex;\n if (parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n }\n }\n };\n }\n jQuery.each([\"tabIndex\", \"readOnly\", \"maxLength\", \"cellSpacing\", \"cellPadding\", \"rowSpan\", \"colSpan\", \"useMap\", \"frameBorder\", \"contentEditable\"], function () {\n jQuery.propFix[this.toLowerCase()] = this;\n });\n});","define(function () {\n \"use strict\";\n\n return {\n guid: Date.now()\n };\n});","define(function () {\n \"use strict\";\n\n return /\\?/;\n});","define([\"../core\"], function (jQuery) {\n \"use strict\";\n\n // Cross-browser xml parsing\n jQuery.parseXML = function (data) {\n var xml;\n if (!data || typeof data !== \"string\") {\n return null;\n }\n\n // Support: IE 9 - 11 only\n // IE throws on parseFromString with invalid input.\n try {\n xml = new window.DOMParser().parseFromString(data, \"text/xml\");\n } catch (e) {\n xml = undefined;\n }\n if (!xml || xml.getElementsByTagName(\"parsererror\").length) {\n jQuery.error(\"Invalid XML: \" + data);\n }\n return xml;\n };\n return jQuery.parseXML;\n});","define([\"./core\", \"./core/toType\", \"./var/rcheckableType\", \"./var/isFunction\", \"./core/init\", \"./traversing\",\n// filter\n\"./attributes/prop\"], function (jQuery, toType, rcheckableType, isFunction) {\n \"use strict\";\n\n var rbracket = /\\[\\]$/,\n rCRLF = /\\r?\\n/g,\n rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n rsubmittable = /^(?:input|select|textarea|keygen)/i;\n function buildParams(prefix, obj, traditional, add) {\n var name;\n if (Array.isArray(obj)) {\n // Serialize array item.\n jQuery.each(obj, function (i, v) {\n if (traditional || rbracket.test(prefix)) {\n // Treat each array item as a scalar.\n add(prefix, v);\n } else {\n // Item is non-scalar (array or object), encode its numeric index.\n buildParams(prefix + \"[\" + (typeof v === \"object\" && v != null ? i : \"\") + \"]\", v, traditional, add);\n }\n });\n } else if (!traditional && toType(obj) === \"object\") {\n // Serialize object item.\n for (name in obj) {\n buildParams(prefix + \"[\" + name + \"]\", obj[name], traditional, add);\n }\n } else {\n // Serialize scalar item.\n add(prefix, obj);\n }\n }\n\n // Serialize an array of form elements or a set of\n // key/values into a query string\n jQuery.param = function (a, traditional) {\n var prefix,\n s = [],\n add = function (key, valueOrFunction) {\n // If value is a function, invoke it and use its return value\n var value = isFunction(valueOrFunction) ? valueOrFunction() : valueOrFunction;\n s[s.length] = encodeURIComponent(key) + \"=\" + encodeURIComponent(value == null ? \"\" : value);\n };\n if (a == null) {\n return \"\";\n }\n\n // If an array was passed in, assume that it is an array of form elements.\n if (Array.isArray(a) || a.jquery && !jQuery.isPlainObject(a)) {\n // Serialize the form elements\n jQuery.each(a, function () {\n add(this.name, this.value);\n });\n } else {\n // If traditional, encode the \"old\" way (the way 1.3.2 or older\n // did it), otherwise encode params recursively.\n for (prefix in a) {\n buildParams(prefix, a[prefix], traditional, add);\n }\n }\n\n // Return the resulting serialization\n return s.join(\"&\");\n };\n jQuery.fn.extend({\n serialize: function () {\n return jQuery.param(this.serializeArray());\n },\n serializeArray: function () {\n return this.map(function () {\n // Can add propHook for \"elements\" to filter or add form elements\n var elements = jQuery.prop(this, \"elements\");\n return elements ? jQuery.makeArray(elements) : this;\n }).filter(function () {\n var type = this.type;\n\n // Use .is( \":disabled\" ) so that fieldset[disabled] works\n return this.name && !jQuery(this).is(\":disabled\") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type));\n }).map(function (_i, elem) {\n var val = jQuery(this).val();\n if (val == null) {\n return null;\n }\n if (Array.isArray(val)) {\n return jQuery.map(val, function (val) {\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n });\n }\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n }).get();\n }\n });\n return jQuery;\n});","define([\"../core\", \"../var/document\", \"./var/rsingleTag\", \"../manipulation/buildFragment\",\n// This is the only module that needs core/support\n\"./support\"], function (jQuery, document, rsingleTag, buildFragment, support) {\n \"use strict\";\n\n // Argument \"data\" should be string of html\n // context (optional): If specified, the fragment will be created in this context,\n // defaults to document\n // keepScripts (optional): If true, will include scripts passed in the html string\n jQuery.parseHTML = function (data, context, keepScripts) {\n if (typeof data !== \"string\") {\n return [];\n }\n if (typeof context === \"boolean\") {\n keepScripts = context;\n context = false;\n }\n var base, parsed, scripts;\n if (!context) {\n // Stop scripts or inline event handlers from being executed immediately\n // by using document.implementation\n if (support.createHTMLDocument) {\n context = document.implementation.createHTMLDocument(\"\");\n\n // Set the base href for the created document\n // so any parsed elements with URLs\n // are based on the document's URL (gh-2965)\n base = context.createElement(\"base\");\n base.href = document.location.href;\n context.head.appendChild(base);\n } else {\n context = document;\n }\n }\n parsed = rsingleTag.exec(data);\n scripts = !keepScripts && [];\n\n // Single tag\n if (parsed) {\n return [context.createElement(parsed[1])];\n }\n parsed = buildFragment([data], context, scripts);\n if (scripts && scripts.length) {\n jQuery(scripts).remove();\n }\n return jQuery.merge([], parsed.childNodes);\n };\n return jQuery.parseHTML;\n});","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"./Util\");\nvar Global_1 = require(\"./Global\");\nvar COMMA = ',',\n OPEN_PAREN = '(',\n CLOSE_PAREN = ')',\n OPEN_PAREN_BRACKET = '([',\n CLOSE_BRACKET_PAREN = '])',\n SEMICOLON = ';',\n DOUBLE_PAREN = '()',\n EQUALS = '=',\n CONTEXT_METHODS = ['arc', 'arcTo', 'beginPath', 'bezierCurveTo', 'clearRect', 'clip', 'closePath', 'createLinearGradient', 'createPattern', 'createRadialGradient', 'drawImage', 'ellipse', 'fill', 'fillText', 'getImageData', 'createImageData', 'lineTo', 'moveTo', 'putImageData', 'quadraticCurveTo', 'rect', 'restore', 'rotate', 'save', 'scale', 'setLineDash', 'setTransform', 'stroke', 'strokeText', 'transform', 'translate'];\nvar CONTEXT_PROPERTIES = ['fillStyle', 'strokeStyle', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY', 'lineCap', 'lineDashOffset', 'lineJoin', 'lineWidth', 'miterLimit', 'font', 'textAlign', 'textBaseline', 'globalAlpha', 'globalCompositeOperation', 'imageSmoothingEnabled'];\nvar traceArrMax = 100;\nvar Context = function () {\n function Context(canvas) {\n this.canvas = canvas;\n this._context = canvas._canvas.getContext('2d');\n if (Global_1.Konva.enableTrace) {\n this.traceArr = [];\n this._enableTrace();\n }\n }\n Context.prototype.fillShape = function (shape) {\n if (shape.fillEnabled()) {\n this._fill(shape);\n }\n };\n Context.prototype._fill = function (shape) {};\n Context.prototype.strokeShape = function (shape) {\n if (shape.hasStroke()) {\n this._stroke(shape);\n }\n };\n Context.prototype._stroke = function (shape) {};\n Context.prototype.fillStrokeShape = function (shape) {\n this.fillShape(shape);\n this.strokeShape(shape);\n };\n Context.prototype.getTrace = function (relaxed) {\n var traceArr = this.traceArr,\n len = traceArr.length,\n str = '',\n n,\n trace,\n method,\n args;\n for (n = 0; n < len; n++) {\n trace = traceArr[n];\n method = trace.method;\n if (method) {\n args = trace.args;\n str += method;\n if (relaxed) {\n str += DOUBLE_PAREN;\n } else {\n if (Util_1.Util._isArray(args[0])) {\n str += OPEN_PAREN_BRACKET + args.join(COMMA) + CLOSE_BRACKET_PAREN;\n } else {\n str += OPEN_PAREN + args.join(COMMA) + CLOSE_PAREN;\n }\n }\n } else {\n str += trace.property;\n if (!relaxed) {\n str += EQUALS + trace.val;\n }\n }\n str += SEMICOLON;\n }\n return str;\n };\n Context.prototype.clearTrace = function () {\n this.traceArr = [];\n };\n Context.prototype._trace = function (str) {\n var traceArr = this.traceArr,\n len;\n traceArr.push(str);\n len = traceArr.length;\n if (len >= traceArrMax) {\n traceArr.shift();\n }\n };\n Context.prototype.reset = function () {\n var pixelRatio = this.getCanvas().getPixelRatio();\n this.setTransform(1 * pixelRatio, 0, 0, 1 * pixelRatio, 0, 0);\n };\n Context.prototype.getCanvas = function () {\n return this.canvas;\n };\n Context.prototype.clear = function (bounds) {\n var canvas = this.getCanvas();\n if (bounds) {\n this.clearRect(bounds.x || 0, bounds.y || 0, bounds.width || 0, bounds.height || 0);\n } else {\n this.clearRect(0, 0, canvas.getWidth() / canvas.pixelRatio, canvas.getHeight() / canvas.pixelRatio);\n }\n };\n Context.prototype._applyLineCap = function (shape) {\n var lineCap = shape.getLineCap();\n if (lineCap) {\n this.setAttr('lineCap', lineCap);\n }\n };\n Context.prototype._applyOpacity = function (shape) {\n var absOpacity = shape.getAbsoluteOpacity();\n if (absOpacity !== 1) {\n this.setAttr('globalAlpha', absOpacity);\n }\n };\n Context.prototype._applyLineJoin = function (shape) {\n var lineJoin = shape.getLineJoin();\n if (lineJoin) {\n this.setAttr('lineJoin', lineJoin);\n }\n };\n Context.prototype.setAttr = function (attr, val) {\n this._context[attr] = val;\n };\n Context.prototype.arc = function (a0, a1, a2, a3, a4, a5) {\n this._context.arc(a0, a1, a2, a3, a4, a5);\n };\n Context.prototype.arcTo = function (a0, a1, a2, a3, a4) {\n this._context.arcTo(a0, a1, a2, a3, a4);\n };\n Context.prototype.beginPath = function () {\n this._context.beginPath();\n };\n Context.prototype.bezierCurveTo = function (a0, a1, a2, a3, a4, a5) {\n this._context.bezierCurveTo(a0, a1, a2, a3, a4, a5);\n };\n Context.prototype.clearRect = function (a0, a1, a2, a3) {\n this._context.clearRect(a0, a1, a2, a3);\n };\n Context.prototype.clip = function () {\n this._context.clip();\n };\n Context.prototype.closePath = function () {\n this._context.closePath();\n };\n Context.prototype.createImageData = function (a0, a1) {\n var a = arguments;\n if (a.length === 2) {\n return this._context.createImageData(a0, a1);\n } else if (a.length === 1) {\n return this._context.createImageData(a0);\n }\n };\n Context.prototype.createLinearGradient = function (a0, a1, a2, a3) {\n return this._context.createLinearGradient(a0, a1, a2, a3);\n };\n Context.prototype.createPattern = function (a0, a1) {\n return this._context.createPattern(a0, a1);\n };\n Context.prototype.createRadialGradient = function (a0, a1, a2, a3, a4, a5) {\n return this._context.createRadialGradient(a0, a1, a2, a3, a4, a5);\n };\n Context.prototype.drawImage = function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n var a = arguments,\n _context = this._context;\n if (a.length === 3) {\n _context.drawImage(a0, a1, a2);\n } else if (a.length === 5) {\n _context.drawImage(a0, a1, a2, a3, a4);\n } else if (a.length === 9) {\n _context.drawImage(a0, a1, a2, a3, a4, a5, a6, a7, a8);\n }\n };\n Context.prototype.ellipse = function (a0, a1, a2, a3, a4, a5, a6, a7) {\n this._context.ellipse(a0, a1, a2, a3, a4, a5, a6, a7);\n };\n Context.prototype.isPointInPath = function (x, y) {\n return this._context.isPointInPath(x, y);\n };\n Context.prototype.fill = function () {\n this._context.fill();\n };\n Context.prototype.fillRect = function (x, y, width, height) {\n this._context.fillRect(x, y, width, height);\n };\n Context.prototype.strokeRect = function (x, y, width, height) {\n this._context.strokeRect(x, y, width, height);\n };\n Context.prototype.fillText = function (a0, a1, a2) {\n this._context.fillText(a0, a1, a2);\n };\n Context.prototype.measureText = function (text) {\n return this._context.measureText(text);\n };\n Context.prototype.getImageData = function (a0, a1, a2, a3) {\n return this._context.getImageData(a0, a1, a2, a3);\n };\n Context.prototype.lineTo = function (a0, a1) {\n this._context.lineTo(a0, a1);\n };\n Context.prototype.moveTo = function (a0, a1) {\n this._context.moveTo(a0, a1);\n };\n Context.prototype.rect = function (a0, a1, a2, a3) {\n this._context.rect(a0, a1, a2, a3);\n };\n Context.prototype.putImageData = function (a0, a1, a2) {\n this._context.putImageData(a0, a1, a2);\n };\n Context.prototype.quadraticCurveTo = function (a0, a1, a2, a3) {\n this._context.quadraticCurveTo(a0, a1, a2, a3);\n };\n Context.prototype.restore = function () {\n this._context.restore();\n };\n Context.prototype.rotate = function (a0) {\n this._context.rotate(a0);\n };\n Context.prototype.save = function () {\n this._context.save();\n };\n Context.prototype.scale = function (a0, a1) {\n this._context.scale(a0, a1);\n };\n Context.prototype.setLineDash = function (a0) {\n if (this._context.setLineDash) {\n this._context.setLineDash(a0);\n } else if ('mozDash' in this._context) {\n this._context['mozDash'] = a0;\n } else if ('webkitLineDash' in this._context) {\n this._context['webkitLineDash'] = a0;\n }\n };\n Context.prototype.getLineDash = function () {\n return this._context.getLineDash();\n };\n Context.prototype.setTransform = function (a0, a1, a2, a3, a4, a5) {\n this._context.setTransform(a0, a1, a2, a3, a4, a5);\n };\n Context.prototype.stroke = function () {\n this._context.stroke();\n };\n Context.prototype.strokeText = function (a0, a1, a2, a3) {\n this._context.strokeText(a0, a1, a2, a3);\n };\n Context.prototype.transform = function (a0, a1, a2, a3, a4, a5) {\n this._context.transform(a0, a1, a2, a3, a4, a5);\n };\n Context.prototype.translate = function (a0, a1) {\n this._context.translate(a0, a1);\n };\n Context.prototype._enableTrace = function () {\n var that = this,\n len = CONTEXT_METHODS.length,\n _simplifyArray = Util_1.Util._simplifyArray,\n origSetter = this.setAttr,\n n,\n args;\n var func = function (methodName) {\n var origMethod = that[methodName],\n ret;\n that[methodName] = function () {\n args = _simplifyArray(Array.prototype.slice.call(arguments, 0));\n ret = origMethod.apply(that, arguments);\n that._trace({\n method: methodName,\n args: args\n });\n return ret;\n };\n };\n for (n = 0; n < len; n++) {\n func(CONTEXT_METHODS[n]);\n }\n that.setAttr = function () {\n origSetter.apply(that, arguments);\n var prop = arguments[0];\n var val = arguments[1];\n if (prop === 'shadowOffsetX' || prop === 'shadowOffsetY' || prop === 'shadowBlur') {\n val = val / this.canvas.getPixelRatio();\n }\n that._trace({\n property: prop,\n val: val\n });\n };\n };\n Context.prototype._applyGlobalCompositeOperation = function (node) {\n var globalCompositeOperation = node.getGlobalCompositeOperation();\n if (globalCompositeOperation !== 'source-over') {\n this.setAttr('globalCompositeOperation', globalCompositeOperation);\n }\n };\n return Context;\n}();\nexports.Context = Context;\nCONTEXT_PROPERTIES.forEach(function (prop) {\n Object.defineProperty(Context.prototype, prop, {\n get: function () {\n return this._context[prop];\n },\n set: function (val) {\n this._context[prop] = val;\n }\n });\n});\nvar SceneContext = function (_super) {\n __extends(SceneContext, _super);\n function SceneContext() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SceneContext.prototype._fillColor = function (shape) {\n var fill = shape.fill();\n this.setAttr('fillStyle', fill);\n shape._fillFunc(this);\n };\n SceneContext.prototype._fillPattern = function (shape) {\n var fillPatternX = shape.getFillPatternX(),\n fillPatternY = shape.getFillPatternY(),\n fillPatternRotation = Global_1.Konva.getAngle(shape.getFillPatternRotation()),\n fillPatternOffsetX = shape.getFillPatternOffsetX(),\n fillPatternOffsetY = shape.getFillPatternOffsetY(),\n fillPatternScaleX = shape.getFillPatternScaleX(),\n fillPatternScaleY = shape.getFillPatternScaleY();\n if (fillPatternX || fillPatternY) {\n this.translate(fillPatternX || 0, fillPatternY || 0);\n }\n if (fillPatternRotation) {\n this.rotate(fillPatternRotation);\n }\n if (fillPatternScaleX || fillPatternScaleY) {\n this.scale(fillPatternScaleX, fillPatternScaleY);\n }\n if (fillPatternOffsetX || fillPatternOffsetY) {\n this.translate(-1 * fillPatternOffsetX, -1 * fillPatternOffsetY);\n }\n this.setAttr('fillStyle', shape._getFillPattern());\n shape._fillFunc(this);\n };\n SceneContext.prototype._fillLinearGradient = function (shape) {\n var grd = shape._getLinearGradient();\n if (grd) {\n this.setAttr('fillStyle', grd);\n shape._fillFunc(this);\n }\n };\n SceneContext.prototype._fillRadialGradient = function (shape) {\n var grd = shape._getRadialGradient();\n if (grd) {\n this.setAttr('fillStyle', grd);\n shape._fillFunc(this);\n }\n };\n SceneContext.prototype._fill = function (shape) {\n var hasColor = shape.fill(),\n fillPriority = shape.getFillPriority();\n if (hasColor && fillPriority === 'color') {\n this._fillColor(shape);\n return;\n }\n var hasPattern = shape.getFillPatternImage();\n if (hasPattern && fillPriority === 'pattern') {\n this._fillPattern(shape);\n return;\n }\n var hasLinearGradient = shape.getFillLinearGradientColorStops();\n if (hasLinearGradient && fillPriority === 'linear-gradient') {\n this._fillLinearGradient(shape);\n return;\n }\n var hasRadialGradient = shape.getFillRadialGradientColorStops();\n if (hasRadialGradient && fillPriority === 'radial-gradient') {\n this._fillRadialGradient(shape);\n return;\n }\n if (hasColor) {\n this._fillColor(shape);\n } else if (hasPattern) {\n this._fillPattern(shape);\n } else if (hasLinearGradient) {\n this._fillLinearGradient(shape);\n } else if (hasRadialGradient) {\n this._fillRadialGradient(shape);\n }\n };\n SceneContext.prototype._strokeLinearGradient = function (shape) {\n var start = shape.getStrokeLinearGradientStartPoint(),\n end = shape.getStrokeLinearGradientEndPoint(),\n colorStops = shape.getStrokeLinearGradientColorStops(),\n grd = this.createLinearGradient(start.x, start.y, end.x, end.y);\n if (colorStops) {\n for (var n = 0; n < colorStops.length; n += 2) {\n grd.addColorStop(colorStops[n], colorStops[n + 1]);\n }\n this.setAttr('strokeStyle', grd);\n }\n };\n SceneContext.prototype._stroke = function (shape) {\n var dash = shape.dash(),\n strokeScaleEnabled = shape.getStrokeScaleEnabled();\n if (shape.hasStroke()) {\n if (!strokeScaleEnabled) {\n this.save();\n var pixelRatio = this.getCanvas().getPixelRatio();\n this.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n }\n this._applyLineCap(shape);\n if (dash && shape.dashEnabled()) {\n this.setLineDash(dash);\n this.setAttr('lineDashOffset', shape.dashOffset());\n }\n this.setAttr('lineWidth', shape.strokeWidth());\n if (!shape.getShadowForStrokeEnabled()) {\n this.setAttr('shadowColor', 'rgba(0,0,0,0)');\n }\n var hasLinearGradient = shape.getStrokeLinearGradientColorStops();\n if (hasLinearGradient) {\n this._strokeLinearGradient(shape);\n } else {\n this.setAttr('strokeStyle', shape.stroke());\n }\n shape._strokeFunc(this);\n if (!strokeScaleEnabled) {\n this.restore();\n }\n }\n };\n SceneContext.prototype._applyShadow = function (shape) {\n var util = Util_1.Util,\n color = util.get(shape.getShadowRGBA(), 'black'),\n blur = util.get(shape.getShadowBlur(), 5),\n offset = util.get(shape.getShadowOffset(), {\n x: 0,\n y: 0\n }),\n scale = shape.getAbsoluteScale(),\n ratio = this.canvas.getPixelRatio(),\n scaleX = scale.x * ratio,\n scaleY = scale.y * ratio;\n this.setAttr('shadowColor', color);\n this.setAttr('shadowBlur', blur * Math.min(Math.abs(scaleX), Math.abs(scaleY)));\n this.setAttr('shadowOffsetX', offset.x * scaleX);\n this.setAttr('shadowOffsetY', offset.y * scaleY);\n };\n return SceneContext;\n}(Context);\nexports.SceneContext = SceneContext;\nvar HitContext = function (_super) {\n __extends(HitContext, _super);\n function HitContext() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n HitContext.prototype._fill = function (shape) {\n this.save();\n this.setAttr('fillStyle', shape.colorKey);\n shape._fillFuncHit(this);\n this.restore();\n };\n HitContext.prototype.strokeShape = function (shape) {\n if (shape.hasHitStroke()) {\n this._stroke(shape);\n }\n };\n HitContext.prototype._stroke = function (shape) {\n if (shape.hasHitStroke()) {\n var strokeScaleEnabled = shape.getStrokeScaleEnabled();\n if (!strokeScaleEnabled) {\n this.save();\n var pixelRatio = this.getCanvas().getPixelRatio();\n this.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n }\n this._applyLineCap(shape);\n var hitStrokeWidth = shape.hitStrokeWidth();\n var strokeWidth = hitStrokeWidth === 'auto' ? shape.strokeWidth() : hitStrokeWidth;\n this.setAttr('lineWidth', strokeWidth);\n this.setAttr('strokeStyle', shape.colorKey);\n shape._strokeFuncHit(this);\n if (!strokeScaleEnabled) {\n this.restore();\n }\n }\n };\n return HitContext;\n}(Context);\nexports.HitContext = HitContext;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Global_1 = require(\"./Global\");\nvar Captures = new Map();\nvar SUPPORT_POINTER_EVENTS = Global_1.Konva._global['PointerEvent'] !== undefined;\nfunction getCapturedShape(pointerId) {\n return Captures.get(pointerId);\n}\nexports.getCapturedShape = getCapturedShape;\nfunction createEvent(evt) {\n return {\n evt: evt,\n pointerId: evt.pointerId\n };\n}\nexports.createEvent = createEvent;\nfunction hasPointerCapture(pointerId, shape) {\n return Captures.get(pointerId) === shape;\n}\nexports.hasPointerCapture = hasPointerCapture;\nfunction setPointerCapture(pointerId, shape) {\n releaseCapture(pointerId);\n var stage = shape.getStage();\n if (!stage) return;\n Captures.set(pointerId, shape);\n if (SUPPORT_POINTER_EVENTS) {\n shape._fire('gotpointercapture', createEvent(new PointerEvent('gotpointercapture')));\n }\n}\nexports.setPointerCapture = setPointerCapture;\nfunction releaseCapture(pointerId, target) {\n var shape = Captures.get(pointerId);\n if (!shape) return;\n var stage = shape.getStage();\n if (stage && stage.content) {}\n Captures.delete(pointerId);\n if (SUPPORT_POINTER_EVENTS) {\n shape._fire('lostpointercapture', createEvent(new PointerEvent('lostpointercapture')));\n }\n}\nexports.releaseCapture = releaseCapture;","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"./Util\");\nvar Container_1 = require(\"./Container\");\nvar Node_1 = require(\"./Node\");\nvar Factory_1 = require(\"./Factory\");\nvar Canvas_1 = require(\"./Canvas\");\nvar BaseLayer = function (_super) {\n __extends(BaseLayer, _super);\n function BaseLayer(config) {\n var _this = _super.call(this, config) || this;\n _this.canvas = new Canvas_1.SceneCanvas();\n _this._waitingForDraw = false;\n _this.on('visibleChange', _this._checkVisibility);\n _this._checkVisibility();\n _this.on('imageSmoothingEnabledChange', _this._checkSmooth);\n _this._checkSmooth();\n return _this;\n }\n BaseLayer.prototype.createPNGStream = function () {\n var c = this.canvas._canvas;\n return c.createPNGStream();\n };\n BaseLayer.prototype.getCanvas = function () {\n return this.canvas;\n };\n BaseLayer.prototype.getHitCanvas = function () {\n return this.hitCanvas;\n };\n BaseLayer.prototype.getContext = function () {\n return this.getCanvas().getContext();\n };\n BaseLayer.prototype.clear = function (bounds) {\n this.getContext().clear(bounds);\n return this;\n };\n BaseLayer.prototype.setZIndex = function (index) {\n _super.prototype.setZIndex.call(this, index);\n var stage = this.getStage();\n if (stage) {\n stage.content.removeChild(this.getCanvas()._canvas);\n if (index < stage.children.length - 1) {\n stage.content.insertBefore(this.getCanvas()._canvas, stage.children[index + 1].getCanvas()._canvas);\n } else {\n stage.content.appendChild(this.getCanvas()._canvas);\n }\n }\n return this;\n };\n BaseLayer.prototype.moveToTop = function () {\n Node_1.Node.prototype.moveToTop.call(this);\n var stage = this.getStage();\n if (stage) {\n stage.content.removeChild(this.getCanvas()._canvas);\n stage.content.appendChild(this.getCanvas()._canvas);\n }\n return true;\n };\n BaseLayer.prototype.moveUp = function () {\n var moved = Node_1.Node.prototype.moveUp.call(this);\n if (!moved) {\n return false;\n }\n var stage = this.getStage();\n if (!stage) {\n return false;\n }\n stage.content.removeChild(this.getCanvas()._canvas);\n if (this.index < stage.children.length - 1) {\n stage.content.insertBefore(this.getCanvas()._canvas, stage.children[this.index + 1].getCanvas()._canvas);\n } else {\n stage.content.appendChild(this.getCanvas()._canvas);\n }\n return true;\n };\n BaseLayer.prototype.moveDown = function () {\n if (Node_1.Node.prototype.moveDown.call(this)) {\n var stage = this.getStage();\n if (stage) {\n var children = stage.children;\n stage.content.removeChild(this.getCanvas()._canvas);\n stage.content.insertBefore(this.getCanvas()._canvas, children[this.index + 1].getCanvas()._canvas);\n }\n return true;\n }\n return false;\n };\n BaseLayer.prototype.moveToBottom = function () {\n if (Node_1.Node.prototype.moveToBottom.call(this)) {\n var stage = this.getStage();\n if (stage) {\n var children = stage.children;\n stage.content.removeChild(this.getCanvas()._canvas);\n stage.content.insertBefore(this.getCanvas()._canvas, children[1].getCanvas()._canvas);\n }\n return true;\n }\n return false;\n };\n BaseLayer.prototype.getLayer = function () {\n return this;\n };\n BaseLayer.prototype.hitGraphEnabled = function () {\n return true;\n };\n BaseLayer.prototype.remove = function () {\n var _canvas = this.getCanvas()._canvas;\n Node_1.Node.prototype.remove.call(this);\n if (_canvas && _canvas.parentNode && Util_1.Util._isInDocument(_canvas)) {\n _canvas.parentNode.removeChild(_canvas);\n }\n return this;\n };\n BaseLayer.prototype.getStage = function () {\n return this.parent;\n };\n BaseLayer.prototype.setSize = function (_a) {\n var width = _a.width,\n height = _a.height;\n this.canvas.setSize(width, height);\n return this;\n };\n BaseLayer.prototype._toKonvaCanvas = function (config) {\n config = config || {};\n config.width = config.width || this.getWidth();\n config.height = config.height || this.getHeight();\n config.x = config.x !== undefined ? config.x : this.x();\n config.y = config.y !== undefined ? config.y : this.y();\n return Node_1.Node.prototype._toKonvaCanvas.call(this, config);\n };\n BaseLayer.prototype._checkVisibility = function () {\n var visible = this.visible();\n if (visible) {\n this.canvas._canvas.style.display = 'block';\n } else {\n this.canvas._canvas.style.display = 'none';\n }\n };\n BaseLayer.prototype._checkSmooth = function () {\n this.getContext()._context.imageSmoothingEnabled = this.imageSmoothingEnabled();\n };\n BaseLayer.prototype.getWidth = function () {\n if (this.parent) {\n return this.parent.width();\n }\n };\n BaseLayer.prototype.setWidth = function () {\n Util_1.Util.warn('Can not change width of layer. Use \"stage.width(value)\" function instead.');\n };\n BaseLayer.prototype.getHeight = function () {\n if (this.parent) {\n return this.parent.height();\n }\n };\n BaseLayer.prototype.setHeight = function () {\n Util_1.Util.warn('Can not change height of layer. Use \"stage.height(value)\" function instead.');\n };\n BaseLayer.prototype.getIntersection = function (pos, selector) {\n return null;\n };\n BaseLayer.prototype.batchDraw = function () {\n var _this = this;\n if (!this._waitingForDraw) {\n this._waitingForDraw = true;\n Util_1.Util.requestAnimFrame(function () {\n _this.draw();\n _this._waitingForDraw = false;\n });\n }\n return this;\n };\n BaseLayer.prototype._applyTransform = function (shape, context, top) {\n var m = shape.getAbsoluteTransform(top).getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n };\n return BaseLayer;\n}(Container_1.Container);\nexports.BaseLayer = BaseLayer;\nBaseLayer.prototype.nodeType = 'BaseLayer';\nFactory_1.Factory.addGetterSetter(BaseLayer, 'imageSmoothingEnabled', true);\nFactory_1.Factory.addGetterSetter(BaseLayer, 'clearBeforeDraw', true);\nUtil_1.Collection.mapMethods(BaseLayer);","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"../Util\");\nvar Factory_1 = require(\"../Factory\");\nvar Shape_1 = require(\"../Shape\");\nvar Validators_1 = require(\"../Validators\");\nvar Global_1 = require(\"../Global\");\nvar Line = function (_super) {\n __extends(Line, _super);\n function Line(config) {\n var _this = _super.call(this, config) || this;\n _this.on('pointsChange.konva tensionChange.konva closedChange.konva bezierChange.konva', function () {\n this._clearCache('tensionPoints');\n });\n return _this;\n }\n Line.prototype._sceneFunc = function (context) {\n var points = this.points(),\n length = points.length,\n tension = this.tension(),\n closed = this.closed(),\n bezier = this.bezier(),\n tp,\n len,\n n;\n if (!length) {\n return;\n }\n context.beginPath();\n context.moveTo(points[0], points[1]);\n if (tension !== 0 && length > 4) {\n tp = this.getTensionPoints();\n len = tp.length;\n n = closed ? 0 : 4;\n if (!closed) {\n context.quadraticCurveTo(tp[0], tp[1], tp[2], tp[3]);\n }\n while (n < len - 2) {\n context.bezierCurveTo(tp[n++], tp[n++], tp[n++], tp[n++], tp[n++], tp[n++]);\n }\n if (!closed) {\n context.quadraticCurveTo(tp[len - 2], tp[len - 1], points[length - 2], points[length - 1]);\n }\n } else if (bezier) {\n n = 2;\n while (n < length) {\n context.bezierCurveTo(points[n++], points[n++], points[n++], points[n++], points[n++], points[n++]);\n }\n } else {\n for (n = 2; n < length; n += 2) {\n context.lineTo(points[n], points[n + 1]);\n }\n }\n if (closed) {\n context.closePath();\n context.fillStrokeShape(this);\n } else {\n context.strokeShape(this);\n }\n };\n Line.prototype.getTensionPoints = function () {\n return this._getCache('tensionPoints', this._getTensionPoints);\n };\n Line.prototype._getTensionPoints = function () {\n if (this.closed()) {\n return this._getTensionPointsClosed();\n } else {\n return Util_1.Util._expandPoints(this.points(), this.tension());\n }\n };\n Line.prototype._getTensionPointsClosed = function () {\n var p = this.points(),\n len = p.length,\n tension = this.tension(),\n firstControlPoints = Util_1.Util._getControlPoints(p[len - 2], p[len - 1], p[0], p[1], p[2], p[3], tension),\n lastControlPoints = Util_1.Util._getControlPoints(p[len - 4], p[len - 3], p[len - 2], p[len - 1], p[0], p[1], tension),\n middle = Util_1.Util._expandPoints(p, tension),\n tp = [firstControlPoints[2], firstControlPoints[3]].concat(middle).concat([lastControlPoints[0], lastControlPoints[1], p[len - 2], p[len - 1], lastControlPoints[2], lastControlPoints[3], firstControlPoints[0], firstControlPoints[1], p[0], p[1]]);\n return tp;\n };\n Line.prototype.getWidth = function () {\n return this.getSelfRect().width;\n };\n Line.prototype.getHeight = function () {\n return this.getSelfRect().height;\n };\n Line.prototype.getSelfRect = function () {\n var points = this.points();\n if (points.length < 4) {\n return {\n x: points[0] || 0,\n y: points[1] || 0,\n width: 0,\n height: 0\n };\n }\n if (this.tension() !== 0) {\n points = __spreadArrays([points[0], points[1]], this._getTensionPoints(), [points[points.length - 2], points[points.length - 1]]);\n } else {\n points = this.points();\n }\n var minX = points[0];\n var maxX = points[0];\n var minY = points[1];\n var maxY = points[1];\n var x, y;\n for (var i = 0; i < points.length / 2; i++) {\n x = points[i * 2];\n y = points[i * 2 + 1];\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, x);\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, y);\n }\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n };\n return Line;\n}(Shape_1.Shape);\nexports.Line = Line;\nLine.prototype.className = 'Line';\nLine.prototype._attrsAffectingSize = ['points', 'bezier', 'tension'];\nGlobal_1._registerNode(Line);\nFactory_1.Factory.addGetterSetter(Line, 'closed', false);\nFactory_1.Factory.addGetterSetter(Line, 'bezier', false);\nFactory_1.Factory.addGetterSetter(Line, 'tension', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Line, 'points', [], Validators_1.getNumberArrayValidator());\nUtil_1.Collection.mapMethods(Line);","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"../Util\");\nvar Factory_1 = require(\"../Factory\");\nvar Shape_1 = require(\"../Shape\");\nvar Global_1 = require(\"../Global\");\nvar Path = function (_super) {\n __extends(Path, _super);\n function Path(config) {\n var _this = _super.call(this, config) || this;\n _this.dataArray = [];\n _this.pathLength = 0;\n _this.dataArray = Path.parsePathData(_this.data());\n _this.pathLength = 0;\n for (var i = 0; i < _this.dataArray.length; ++i) {\n _this.pathLength += _this.dataArray[i].pathLength;\n }\n _this.on('dataChange.konva', function () {\n this.dataArray = Path.parsePathData(this.data());\n this.pathLength = 0;\n for (var i = 0; i < this.dataArray.length; ++i) {\n this.pathLength += this.dataArray[i].pathLength;\n }\n });\n return _this;\n }\n Path.prototype._sceneFunc = function (context) {\n var ca = this.dataArray;\n context.beginPath();\n var isClosed = false;\n for (var n = 0; n < ca.length; n++) {\n var c = ca[n].command;\n var p = ca[n].points;\n switch (c) {\n case 'L':\n context.lineTo(p[0], p[1]);\n break;\n case 'M':\n context.moveTo(p[0], p[1]);\n break;\n case 'C':\n context.bezierCurveTo(p[0], p[1], p[2], p[3], p[4], p[5]);\n break;\n case 'Q':\n context.quadraticCurveTo(p[0], p[1], p[2], p[3]);\n break;\n case 'A':\n var cx = p[0],\n cy = p[1],\n rx = p[2],\n ry = p[3],\n theta = p[4],\n dTheta = p[5],\n psi = p[6],\n fs = p[7];\n var r = rx > ry ? rx : ry;\n var scaleX = rx > ry ? 1 : rx / ry;\n var scaleY = rx > ry ? ry / rx : 1;\n context.translate(cx, cy);\n context.rotate(psi);\n context.scale(scaleX, scaleY);\n context.arc(0, 0, r, theta, theta + dTheta, 1 - fs);\n context.scale(1 / scaleX, 1 / scaleY);\n context.rotate(-psi);\n context.translate(-cx, -cy);\n break;\n case 'z':\n isClosed = true;\n context.closePath();\n break;\n }\n }\n if (!isClosed && !this.hasFill()) {\n context.strokeShape(this);\n } else {\n context.fillStrokeShape(this);\n }\n };\n Path.prototype.getSelfRect = function () {\n var points = [];\n this.dataArray.forEach(function (data) {\n if (data.command === 'A') {\n var start = data.points[4];\n var dTheta = data.points[5];\n var end = data.points[4] + dTheta;\n var inc = Math.PI / 180.0;\n if (Math.abs(start - end) < inc) {\n inc = Math.abs(start - end);\n }\n if (dTheta < 0) {\n for (var t = start - inc; t > end; t -= inc) {\n var point = Path.getPointOnEllipticalArc(data.points[0], data.points[1], data.points[2], data.points[3], t, 0);\n points.push(point.x, point.y);\n }\n } else {\n for (var t = start + inc; t < end; t += inc) {\n var point = Path.getPointOnEllipticalArc(data.points[0], data.points[1], data.points[2], data.points[3], t, 0);\n points.push(point.x, point.y);\n }\n }\n } else if (data.command === 'C') {\n for (var t = 0.0; t <= 1; t += 0.01) {\n var point = Path.getPointOnCubicBezier(t, data.start.x, data.start.y, data.points[0], data.points[1], data.points[2], data.points[3], data.points[4], data.points[5]);\n points.push(point.x, point.y);\n }\n } else {\n points = points.concat(data.points);\n }\n });\n var minX = points[0];\n var maxX = points[0];\n var minY = points[1];\n var maxY = points[1];\n var x, y;\n for (var i = 0; i < points.length / 2; i++) {\n x = points[i * 2];\n y = points[i * 2 + 1];\n if (!isNaN(x)) {\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, x);\n }\n if (!isNaN(y)) {\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, y);\n }\n }\n return {\n x: Math.round(minX),\n y: Math.round(minY),\n width: Math.round(maxX - minX),\n height: Math.round(maxY - minY)\n };\n };\n Path.prototype.getLength = function () {\n return this.pathLength;\n };\n Path.prototype.getPointAtLength = function (length) {\n var point,\n i = 0,\n ii = this.dataArray.length;\n if (!ii) {\n return null;\n }\n while (i < ii && length > this.dataArray[i].pathLength) {\n length -= this.dataArray[i].pathLength;\n ++i;\n }\n if (i === ii) {\n point = this.dataArray[i - 1].points.slice(-2);\n return {\n x: point[0],\n y: point[1]\n };\n }\n if (length < 0.01) {\n point = this.dataArray[i].points.slice(0, 2);\n return {\n x: point[0],\n y: point[1]\n };\n }\n var cp = this.dataArray[i];\n var p = cp.points;\n switch (cp.command) {\n case 'L':\n return Path.getPointOnLine(length, cp.start.x, cp.start.y, p[0], p[1]);\n case 'C':\n return Path.getPointOnCubicBezier(length / cp.pathLength, cp.start.x, cp.start.y, p[0], p[1], p[2], p[3], p[4], p[5]);\n case 'Q':\n return Path.getPointOnQuadraticBezier(length / cp.pathLength, cp.start.x, cp.start.y, p[0], p[1], p[2], p[3]);\n case 'A':\n var cx = p[0],\n cy = p[1],\n rx = p[2],\n ry = p[3],\n theta = p[4],\n dTheta = p[5],\n psi = p[6];\n theta += dTheta * length / cp.pathLength;\n return Path.getPointOnEllipticalArc(cx, cy, rx, ry, theta, psi);\n }\n return null;\n };\n Path.getLineLength = function (x1, y1, x2, y2) {\n return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n };\n Path.getPointOnLine = function (dist, P1x, P1y, P2x, P2y, fromX, fromY) {\n if (fromX === undefined) {\n fromX = P1x;\n }\n if (fromY === undefined) {\n fromY = P1y;\n }\n var m = (P2y - P1y) / (P2x - P1x + 0.00000001);\n var run = Math.sqrt(dist * dist / (1 + m * m));\n if (P2x < P1x) {\n run *= -1;\n }\n var rise = m * run;\n var pt;\n if (P2x === P1x) {\n pt = {\n x: fromX,\n y: fromY + rise\n };\n } else if ((fromY - P1y) / (fromX - P1x + 0.00000001) === m) {\n pt = {\n x: fromX + run,\n y: fromY + rise\n };\n } else {\n var ix, iy;\n var len = this.getLineLength(P1x, P1y, P2x, P2y);\n if (len < 0.00000001) {\n return undefined;\n }\n var u = (fromX - P1x) * (P2x - P1x) + (fromY - P1y) * (P2y - P1y);\n u = u / (len * len);\n ix = P1x + u * (P2x - P1x);\n iy = P1y + u * (P2y - P1y);\n var pRise = this.getLineLength(fromX, fromY, ix, iy);\n var pRun = Math.sqrt(dist * dist - pRise * pRise);\n run = Math.sqrt(pRun * pRun / (1 + m * m));\n if (P2x < P1x) {\n run *= -1;\n }\n rise = m * run;\n pt = {\n x: ix + run,\n y: iy + rise\n };\n }\n return pt;\n };\n Path.getPointOnCubicBezier = function (pct, P1x, P1y, P2x, P2y, P3x, P3y, P4x, P4y) {\n function CB1(t) {\n return t * t * t;\n }\n function CB2(t) {\n return 3 * t * t * (1 - t);\n }\n function CB3(t) {\n return 3 * t * (1 - t) * (1 - t);\n }\n function CB4(t) {\n return (1 - t) * (1 - t) * (1 - t);\n }\n var x = P4x * CB1(pct) + P3x * CB2(pct) + P2x * CB3(pct) + P1x * CB4(pct);\n var y = P4y * CB1(pct) + P3y * CB2(pct) + P2y * CB3(pct) + P1y * CB4(pct);\n return {\n x: x,\n y: y\n };\n };\n Path.getPointOnQuadraticBezier = function (pct, P1x, P1y, P2x, P2y, P3x, P3y) {\n function QB1(t) {\n return t * t;\n }\n function QB2(t) {\n return 2 * t * (1 - t);\n }\n function QB3(t) {\n return (1 - t) * (1 - t);\n }\n var x = P3x * QB1(pct) + P2x * QB2(pct) + P1x * QB3(pct);\n var y = P3y * QB1(pct) + P2y * QB2(pct) + P1y * QB3(pct);\n return {\n x: x,\n y: y\n };\n };\n Path.getPointOnEllipticalArc = function (cx, cy, rx, ry, theta, psi) {\n var cosPsi = Math.cos(psi),\n sinPsi = Math.sin(psi);\n var pt = {\n x: rx * Math.cos(theta),\n y: ry * Math.sin(theta)\n };\n return {\n x: cx + (pt.x * cosPsi - pt.y * sinPsi),\n y: cy + (pt.x * sinPsi + pt.y * cosPsi)\n };\n };\n Path.parsePathData = function (data) {\n if (!data) {\n return [];\n }\n var cs = data;\n var cc = ['m', 'M', 'l', 'L', 'v', 'V', 'h', 'H', 'z', 'Z', 'c', 'C', 'q', 'Q', 't', 'T', 's', 'S', 'a', 'A'];\n cs = cs.replace(new RegExp(' ', 'g'), ',');\n for (var n = 0; n < cc.length; n++) {\n cs = cs.replace(new RegExp(cc[n], 'g'), '|' + cc[n]);\n }\n var arr = cs.split('|');\n var ca = [];\n var coords = [];\n var cpx = 0;\n var cpy = 0;\n var re = /([-+]?((\\d+\\.\\d+)|((\\d+)|(\\.\\d+)))(?:e[-+]?\\d+)?)/gi;\n var match;\n for (n = 1; n < arr.length; n++) {\n var str = arr[n];\n var c = str.charAt(0);\n str = str.slice(1);\n coords.length = 0;\n while (match = re.exec(str)) {\n coords.push(match[0]);\n }\n var p = [];\n for (var j = 0, jlen = coords.length; j < jlen; j++) {\n var parsed = parseFloat(coords[j]);\n if (!isNaN(parsed)) {\n p.push(parsed);\n } else {\n p.push(0);\n }\n }\n while (p.length > 0) {\n if (isNaN(p[0])) {\n break;\n }\n var cmd = null;\n var points = [];\n var startX = cpx,\n startY = cpy;\n var prevCmd, ctlPtx, ctlPty;\n var rx, ry, psi, fa, fs, x1, y1;\n switch (c) {\n case 'l':\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'L':\n cpx = p.shift();\n cpy = p.shift();\n points.push(cpx, cpy);\n break;\n case 'm':\n var dx = p.shift();\n var dy = p.shift();\n cpx += dx;\n cpy += dy;\n cmd = 'M';\n if (ca.length > 2 && ca[ca.length - 1].command === 'z') {\n for (var idx = ca.length - 2; idx >= 0; idx--) {\n if (ca[idx].command === 'M') {\n cpx = ca[idx].points[0] + dx;\n cpy = ca[idx].points[1] + dy;\n break;\n }\n }\n }\n points.push(cpx, cpy);\n c = 'l';\n break;\n case 'M':\n cpx = p.shift();\n cpy = p.shift();\n cmd = 'M';\n points.push(cpx, cpy);\n c = 'L';\n break;\n case 'h':\n cpx += p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'H':\n cpx = p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'v':\n cpy += p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'V':\n cpy = p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'C':\n points.push(p.shift(), p.shift(), p.shift(), p.shift());\n cpx = p.shift();\n cpy = p.shift();\n points.push(cpx, cpy);\n break;\n case 'c':\n points.push(cpx + p.shift(), cpy + p.shift(), cpx + p.shift(), cpy + p.shift());\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'C';\n points.push(cpx, cpy);\n break;\n case 'S':\n ctlPtx = cpx;\n ctlPty = cpy;\n prevCmd = ca[ca.length - 1];\n if (prevCmd.command === 'C') {\n ctlPtx = cpx + (cpx - prevCmd.points[2]);\n ctlPty = cpy + (cpy - prevCmd.points[3]);\n }\n points.push(ctlPtx, ctlPty, p.shift(), p.shift());\n cpx = p.shift();\n cpy = p.shift();\n cmd = 'C';\n points.push(cpx, cpy);\n break;\n case 's':\n ctlPtx = cpx;\n ctlPty = cpy;\n prevCmd = ca[ca.length - 1];\n if (prevCmd.command === 'C') {\n ctlPtx = cpx + (cpx - prevCmd.points[2]);\n ctlPty = cpy + (cpy - prevCmd.points[3]);\n }\n points.push(ctlPtx, ctlPty, cpx + p.shift(), cpy + p.shift());\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'C';\n points.push(cpx, cpy);\n break;\n case 'Q':\n points.push(p.shift(), p.shift());\n cpx = p.shift();\n cpy = p.shift();\n points.push(cpx, cpy);\n break;\n case 'q':\n points.push(cpx + p.shift(), cpy + p.shift());\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'Q';\n points.push(cpx, cpy);\n break;\n case 'T':\n ctlPtx = cpx;\n ctlPty = cpy;\n prevCmd = ca[ca.length - 1];\n if (prevCmd.command === 'Q') {\n ctlPtx = cpx + (cpx - prevCmd.points[0]);\n ctlPty = cpy + (cpy - prevCmd.points[1]);\n }\n cpx = p.shift();\n cpy = p.shift();\n cmd = 'Q';\n points.push(ctlPtx, ctlPty, cpx, cpy);\n break;\n case 't':\n ctlPtx = cpx;\n ctlPty = cpy;\n prevCmd = ca[ca.length - 1];\n if (prevCmd.command === 'Q') {\n ctlPtx = cpx + (cpx - prevCmd.points[0]);\n ctlPty = cpy + (cpy - prevCmd.points[1]);\n }\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'Q';\n points.push(ctlPtx, ctlPty, cpx, cpy);\n break;\n case 'A':\n rx = p.shift();\n ry = p.shift();\n psi = p.shift();\n fa = p.shift();\n fs = p.shift();\n x1 = cpx;\n y1 = cpy;\n cpx = p.shift();\n cpy = p.shift();\n cmd = 'A';\n points = this.convertEndpointToCenterParameterization(x1, y1, cpx, cpy, fa, fs, rx, ry, psi);\n break;\n case 'a':\n rx = p.shift();\n ry = p.shift();\n psi = p.shift();\n fa = p.shift();\n fs = p.shift();\n x1 = cpx;\n y1 = cpy;\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'A';\n points = this.convertEndpointToCenterParameterization(x1, y1, cpx, cpy, fa, fs, rx, ry, psi);\n break;\n }\n ca.push({\n command: cmd || c,\n points: points,\n start: {\n x: startX,\n y: startY\n },\n pathLength: this.calcLength(startX, startY, cmd || c, points)\n });\n }\n if (c === 'z' || c === 'Z') {\n ca.push({\n command: 'z',\n points: [],\n start: undefined,\n pathLength: 0\n });\n }\n }\n return ca;\n };\n Path.calcLength = function (x, y, cmd, points) {\n var len, p1, p2, t;\n var path = Path;\n switch (cmd) {\n case 'L':\n return path.getLineLength(x, y, points[0], points[1]);\n case 'C':\n len = 0.0;\n p1 = path.getPointOnCubicBezier(0, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = path.getPointOnCubicBezier(t, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n return len;\n case 'Q':\n len = 0.0;\n p1 = path.getPointOnQuadraticBezier(0, x, y, points[0], points[1], points[2], points[3]);\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = path.getPointOnQuadraticBezier(t, x, y, points[0], points[1], points[2], points[3]);\n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n return len;\n case 'A':\n len = 0.0;\n var start = points[4];\n var dTheta = points[5];\n var end = points[4] + dTheta;\n var inc = Math.PI / 180.0;\n if (Math.abs(start - end) < inc) {\n inc = Math.abs(start - end);\n }\n p1 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], start, 0);\n if (dTheta < 0) {\n for (t = start - inc; t > end; t -= inc) {\n p2 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n } else {\n for (t = start + inc; t < end; t += inc) {\n p2 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n }\n p2 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], end, 0);\n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);\n return len;\n }\n return 0;\n };\n Path.convertEndpointToCenterParameterization = function (x1, y1, x2, y2, fa, fs, rx, ry, psiDeg) {\n var psi = psiDeg * (Math.PI / 180.0);\n var xp = Math.cos(psi) * (x1 - x2) / 2.0 + Math.sin(psi) * (y1 - y2) / 2.0;\n var yp = -1 * Math.sin(psi) * (x1 - x2) / 2.0 + Math.cos(psi) * (y1 - y2) / 2.0;\n var lambda = xp * xp / (rx * rx) + yp * yp / (ry * ry);\n if (lambda > 1) {\n rx *= Math.sqrt(lambda);\n ry *= Math.sqrt(lambda);\n }\n var f = Math.sqrt((rx * rx * (ry * ry) - rx * rx * (yp * yp) - ry * ry * (xp * xp)) / (rx * rx * (yp * yp) + ry * ry * (xp * xp)));\n if (fa === fs) {\n f *= -1;\n }\n if (isNaN(f)) {\n f = 0;\n }\n var cxp = f * rx * yp / ry;\n var cyp = f * -ry * xp / rx;\n var cx = (x1 + x2) / 2.0 + Math.cos(psi) * cxp - Math.sin(psi) * cyp;\n var cy = (y1 + y2) / 2.0 + Math.sin(psi) * cxp + Math.cos(psi) * cyp;\n var vMag = function (v) {\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n };\n var vRatio = function (u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\n };\n var vAngle = function (u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vRatio(u, v));\n };\n var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\n var u = [(xp - cxp) / rx, (yp - cyp) / ry];\n var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\n var dTheta = vAngle(u, v);\n if (vRatio(u, v) <= -1) {\n dTheta = Math.PI;\n }\n if (vRatio(u, v) >= 1) {\n dTheta = 0;\n }\n if (fs === 0 && dTheta > 0) {\n dTheta = dTheta - 2 * Math.PI;\n }\n if (fs === 1 && dTheta < 0) {\n dTheta = dTheta + 2 * Math.PI;\n }\n return [cx, cy, rx, ry, theta, dTheta, psi, fs];\n };\n return Path;\n}(Shape_1.Shape);\nexports.Path = Path;\nPath.prototype.className = 'Path';\nPath.prototype._attrsAffectingSize = ['data'];\nGlobal_1._registerNode(Path);\nFactory_1.Factory.addGetterSetter(Path, 'data');\nUtil_1.Collection.mapMethods(Path);","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"../Util\");\nvar Factory_1 = require(\"../Factory\");\nvar Shape_1 = require(\"../Shape\");\nvar Global_1 = require(\"../Global\");\nvar Rect = function (_super) {\n __extends(Rect, _super);\n function Rect() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Rect.prototype._sceneFunc = function (context) {\n var cornerRadius = this.cornerRadius(),\n width = this.width(),\n height = this.height();\n context.beginPath();\n if (!cornerRadius) {\n context.rect(0, 0, width, height);\n } else {\n var topLeft = 0;\n var topRight = 0;\n var bottomLeft = 0;\n var bottomRight = 0;\n if (typeof cornerRadius === 'number') {\n topLeft = topRight = bottomLeft = bottomRight = Math.min(cornerRadius, width / 2, height / 2);\n } else {\n topLeft = Math.min(cornerRadius[0], width / 2, height / 2);\n topRight = Math.min(cornerRadius[1], width / 2, height / 2);\n bottomRight = Math.min(cornerRadius[2], width / 2, height / 2);\n bottomLeft = Math.min(cornerRadius[3], width / 2, height / 2);\n }\n context.moveTo(topLeft, 0);\n context.lineTo(width - topRight, 0);\n context.arc(width - topRight, topRight, topRight, Math.PI * 3 / 2, 0, false);\n context.lineTo(width, height - bottomRight);\n context.arc(width - bottomRight, height - bottomRight, bottomRight, 0, Math.PI / 2, false);\n context.lineTo(bottomLeft, height);\n context.arc(bottomLeft, height - bottomLeft, bottomLeft, Math.PI / 2, Math.PI, false);\n context.lineTo(0, topLeft);\n context.arc(topLeft, topLeft, topLeft, Math.PI, Math.PI * 3 / 2, false);\n }\n context.closePath();\n context.fillStrokeShape(this);\n };\n return Rect;\n}(Shape_1.Shape);\nexports.Rect = Rect;\nRect.prototype.className = 'Rect';\nGlobal_1._registerNode(Rect);\nFactory_1.Factory.addGetterSetter(Rect, 'cornerRadius', 0);\nUtil_1.Collection.mapMethods(Rect);","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"../Util\");\nvar Factory_1 = require(\"../Factory\");\nvar Shape_1 = require(\"../Shape\");\nvar Global_1 = require(\"../Global\");\nvar Validators_1 = require(\"../Validators\");\nvar Global_2 = require(\"../Global\");\nvar AUTO = 'auto',\n CENTER = 'center',\n JUSTIFY = 'justify',\n CHANGE_KONVA = 'Change.konva',\n CONTEXT_2D = '2d',\n DASH = '-',\n LEFT = 'left',\n TEXT = 'text',\n TEXT_UPPER = 'Text',\n TOP = 'top',\n BOTTOM = 'bottom',\n MIDDLE = 'middle',\n NORMAL = 'normal',\n PX_SPACE = 'px ',\n SPACE = ' ',\n RIGHT = 'right',\n WORD = 'word',\n CHAR = 'char',\n NONE = 'none',\n ELLIPSIS = '…',\n ATTR_CHANGE_LIST = ['fontFamily', 'fontSize', 'fontStyle', 'fontVariant', 'padding', 'align', 'verticalAlign', 'lineHeight', 'text', 'width', 'height', 'wrap', 'ellipsis', 'letterSpacing'],\n attrChangeListLen = ATTR_CHANGE_LIST.length;\nvar dummyContext;\nfunction getDummyContext() {\n if (dummyContext) {\n return dummyContext;\n }\n dummyContext = Util_1.Util.createCanvasElement().getContext(CONTEXT_2D);\n return dummyContext;\n}\nfunction _fillFunc(context) {\n context.fillText(this._partialText, this._partialTextX, this._partialTextY);\n}\nfunction _strokeFunc(context) {\n context.strokeText(this._partialText, this._partialTextX, this._partialTextY);\n}\nfunction checkDefaultFill(config) {\n config = config || {};\n if (!config.fillLinearGradientColorStops && !config.fillRadialGradientColorStops && !config.fillPatternImage) {\n config.fill = config.fill || 'black';\n }\n return config;\n}\nvar trimRight = String.prototype.trimRight || function polyfill() {\n return this.replace(/[\\s\\xa0]+$/, '');\n};\nvar Text = function (_super) {\n __extends(Text, _super);\n function Text(config) {\n var _this = _super.call(this, checkDefaultFill(config)) || this;\n _this._partialTextX = 0;\n _this._partialTextY = 0;\n for (var n = 0; n < attrChangeListLen; n++) {\n _this.on(ATTR_CHANGE_LIST[n] + CHANGE_KONVA, _this._setTextData);\n }\n _this._setTextData();\n return _this;\n }\n Text.prototype._sceneFunc = function (context) {\n var padding = this.padding(),\n fontSize = this.fontSize(),\n lineHeightPx = this.lineHeight() * fontSize,\n textArr = this.textArr,\n textArrLen = textArr.length,\n verticalAlign = this.verticalAlign(),\n alignY = 0,\n align = this.align(),\n totalWidth = this.getWidth(),\n letterSpacing = this.letterSpacing(),\n fill = this.fill(),\n textDecoration = this.textDecoration(),\n shouldUnderline = textDecoration.indexOf('underline') !== -1,\n shouldLineThrough = textDecoration.indexOf('line-through') !== -1,\n n;\n var translateY = 0;\n var translateY = lineHeightPx / 2;\n var lineTranslateX = 0;\n var lineTranslateY = 0;\n context.setAttr('font', this._getContextFont());\n context.setAttr('textBaseline', MIDDLE);\n context.setAttr('textAlign', LEFT);\n if (verticalAlign === MIDDLE) {\n alignY = (this.getHeight() - textArrLen * lineHeightPx - padding * 2) / 2;\n } else if (verticalAlign === BOTTOM) {\n alignY = this.getHeight() - textArrLen * lineHeightPx - padding * 2;\n }\n context.translate(padding, alignY + padding);\n for (n = 0; n < textArrLen; n++) {\n var lineTranslateX = 0;\n var lineTranslateY = 0;\n var obj = textArr[n],\n text = obj.text,\n width = obj.width,\n lastLine = n !== textArrLen - 1,\n spacesNumber,\n oneWord,\n lineWidth;\n context.save();\n if (align === RIGHT) {\n lineTranslateX += totalWidth - width - padding * 2;\n } else if (align === CENTER) {\n lineTranslateX += (totalWidth - width - padding * 2) / 2;\n }\n if (shouldUnderline) {\n context.save();\n context.beginPath();\n context.moveTo(lineTranslateX, translateY + lineTranslateY + Math.round(fontSize / 2));\n spacesNumber = text.split(' ').length - 1;\n oneWord = spacesNumber === 0;\n lineWidth = align === JUSTIFY && lastLine && !oneWord ? totalWidth - padding * 2 : width;\n context.lineTo(lineTranslateX + Math.round(lineWidth), translateY + lineTranslateY + Math.round(fontSize / 2));\n context.lineWidth = fontSize / 15;\n context.strokeStyle = fill;\n context.stroke();\n context.restore();\n }\n if (shouldLineThrough) {\n context.save();\n context.beginPath();\n context.moveTo(lineTranslateX, translateY + lineTranslateY);\n spacesNumber = text.split(' ').length - 1;\n oneWord = spacesNumber === 0;\n lineWidth = align === JUSTIFY && lastLine && !oneWord ? totalWidth - padding * 2 : width;\n context.lineTo(lineTranslateX + Math.round(lineWidth), translateY + lineTranslateY);\n context.lineWidth = fontSize / 15;\n context.strokeStyle = fill;\n context.stroke();\n context.restore();\n }\n if (letterSpacing !== 0 || align === JUSTIFY) {\n spacesNumber = text.split(' ').length - 1;\n for (var li = 0; li < text.length; li++) {\n var letter = text[li];\n if (letter === ' ' && n !== textArrLen - 1 && align === JUSTIFY) {\n lineTranslateX += Math.floor((totalWidth - padding * 2 - width) / spacesNumber);\n }\n this._partialTextX = lineTranslateX;\n this._partialTextY = translateY + lineTranslateY;\n this._partialText = letter;\n context.fillStrokeShape(this);\n lineTranslateX += Math.round(this.measureSize(letter).width) + letterSpacing;\n }\n } else {\n this._partialTextX = lineTranslateX;\n this._partialTextY = translateY + lineTranslateY;\n this._partialText = text;\n context.fillStrokeShape(this);\n }\n context.restore();\n if (textArrLen > 1) {\n translateY += lineHeightPx;\n }\n }\n };\n Text.prototype._hitFunc = function (context) {\n var width = this.getWidth(),\n height = this.getHeight();\n context.beginPath();\n context.rect(0, 0, width, height);\n context.closePath();\n context.fillStrokeShape(this);\n };\n Text.prototype.setText = function (text) {\n var str = Util_1.Util._isString(text) ? text : text === null || text === undefined ? '' : text + '';\n this._setAttr(TEXT, str);\n return this;\n };\n Text.prototype.getWidth = function () {\n var isAuto = this.attrs.width === AUTO || this.attrs.width === undefined;\n return isAuto ? this.getTextWidth() + this.padding() * 2 : this.attrs.width;\n };\n Text.prototype.getHeight = function () {\n var isAuto = this.attrs.height === AUTO || this.attrs.height === undefined;\n return isAuto ? this.fontSize() * this.textArr.length * this.lineHeight() + this.padding() * 2 : this.attrs.height;\n };\n Text.prototype.getTextWidth = function () {\n return this.textWidth;\n };\n Text.prototype.getTextHeight = function () {\n Util_1.Util.warn('text.getTextHeight() method is deprecated. Use text.height() - for full height and text.fontSize() - for one line height.');\n return this.textHeight;\n };\n Text.prototype.measureSize = function (text) {\n var _context = getDummyContext(),\n fontSize = this.fontSize(),\n metrics;\n _context.save();\n _context.font = this._getContextFont();\n metrics = _context.measureText(text);\n _context.restore();\n return {\n width: metrics.width,\n height: fontSize\n };\n };\n Text.prototype._getContextFont = function () {\n if (Global_1.Konva.UA.isIE) {\n return this.fontStyle() + SPACE + this.fontSize() + PX_SPACE + this.fontFamily();\n }\n return this.fontStyle() + SPACE + this.fontVariant() + SPACE + this.fontSize() + PX_SPACE + this.fontFamily();\n };\n Text.prototype._addTextLine = function (line) {\n if (this.align() === JUSTIFY) {\n line = line.trim();\n }\n var width = this._getTextWidth(line);\n return this.textArr.push({\n text: line,\n width: width\n });\n };\n Text.prototype._getTextWidth = function (text) {\n var letterSpacing = this.letterSpacing();\n var length = text.length;\n return getDummyContext().measureText(text).width + (length ? letterSpacing * (length - 1) : 0);\n };\n Text.prototype._setTextData = function () {\n var lines = this.text().split('\\n'),\n fontSize = +this.fontSize(),\n textWidth = 0,\n lineHeightPx = this.lineHeight() * fontSize,\n width = this.attrs.width,\n height = this.attrs.height,\n fixedWidth = width !== AUTO && width !== undefined,\n fixedHeight = height !== AUTO && height !== undefined,\n padding = this.padding(),\n maxWidth = width - padding * 2,\n maxHeightPx = height - padding * 2,\n currentHeightPx = 0,\n wrap = this.wrap(),\n shouldWrap = wrap !== NONE,\n wrapAtWord = wrap !== CHAR && shouldWrap,\n shouldAddEllipsis = this.ellipsis() && !shouldWrap;\n this.textArr = [];\n getDummyContext().font = this._getContextFont();\n var additionalWidth = shouldAddEllipsis ? this._getTextWidth(ELLIPSIS) : 0;\n for (var i = 0, max = lines.length; i < max; ++i) {\n var line = lines[i];\n var lineWidth = this._getTextWidth(line);\n if (fixedWidth && lineWidth > maxWidth) {\n while (line.length > 0) {\n var low = 0,\n high = line.length,\n match = '',\n matchWidth = 0;\n while (low < high) {\n var mid = low + high >>> 1,\n substr = line.slice(0, mid + 1),\n substrWidth = this._getTextWidth(substr) + additionalWidth;\n if (substrWidth <= maxWidth) {\n low = mid + 1;\n match = substr + (shouldAddEllipsis ? ELLIPSIS : '');\n matchWidth = substrWidth;\n } else {\n high = mid;\n }\n }\n if (match) {\n if (wrapAtWord) {\n var wrapIndex;\n var nextChar = line[match.length];\n var nextIsSpaceOrDash = nextChar === SPACE || nextChar === DASH;\n if (nextIsSpaceOrDash && matchWidth <= maxWidth) {\n wrapIndex = match.length;\n } else {\n wrapIndex = Math.max(match.lastIndexOf(SPACE), match.lastIndexOf(DASH)) + 1;\n }\n if (wrapIndex > 0) {\n low = wrapIndex;\n match = match.slice(0, low);\n matchWidth = this._getTextWidth(match);\n }\n }\n match = match.trimRight();\n this._addTextLine(match);\n textWidth = Math.max(textWidth, matchWidth);\n currentHeightPx += lineHeightPx;\n if (!shouldWrap || fixedHeight && currentHeightPx + lineHeightPx > maxHeightPx) {\n break;\n }\n line = line.slice(low);\n line = line.trimLeft();\n if (line.length > 0) {\n lineWidth = this._getTextWidth(line);\n if (lineWidth <= maxWidth) {\n this._addTextLine(line);\n currentHeightPx += lineHeightPx;\n textWidth = Math.max(textWidth, lineWidth);\n break;\n }\n }\n } else {\n break;\n }\n }\n } else {\n this._addTextLine(line);\n currentHeightPx += lineHeightPx;\n textWidth = Math.max(textWidth, lineWidth);\n }\n if (fixedHeight && currentHeightPx + lineHeightPx > maxHeightPx) {\n break;\n }\n }\n this.textHeight = fontSize;\n this.textWidth = textWidth;\n };\n Text.prototype.getStrokeScaleEnabled = function () {\n return true;\n };\n return Text;\n}(Shape_1.Shape);\nexports.Text = Text;\nText.prototype._fillFunc = _fillFunc;\nText.prototype._strokeFunc = _strokeFunc;\nText.prototype.className = TEXT_UPPER;\nText.prototype._attrsAffectingSize = ['text', 'fontSize', 'padding', 'wrap', 'lineHeight'];\nGlobal_2._registerNode(Text);\nFactory_1.Factory.overWriteSetter(Text, 'width', Validators_1.getNumberOrAutoValidator());\nFactory_1.Factory.overWriteSetter(Text, 'height', Validators_1.getNumberOrAutoValidator());\nFactory_1.Factory.addGetterSetter(Text, 'fontFamily', 'Arial');\nFactory_1.Factory.addGetterSetter(Text, 'fontSize', 12, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Text, 'fontStyle', NORMAL);\nFactory_1.Factory.addGetterSetter(Text, 'fontVariant', NORMAL);\nFactory_1.Factory.addGetterSetter(Text, 'padding', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Text, 'align', LEFT);\nFactory_1.Factory.addGetterSetter(Text, 'verticalAlign', TOP);\nFactory_1.Factory.addGetterSetter(Text, 'lineHeight', 1, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Text, 'wrap', WORD);\nFactory_1.Factory.addGetterSetter(Text, 'ellipsis', false);\nFactory_1.Factory.addGetterSetter(Text, 'letterSpacing', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Text, 'text', '', Validators_1.getStringValidator());\nFactory_1.Factory.addGetterSetter(Text, 'textDecoration', '');\nUtil_1.Collection.mapMethods(Text);","const constants = {\n background: {\n width: 750,\n height: 750,\n color: '#eee',\n strokeWidth: 5,\n },\n characters: {\n width: 25,\n height: 25,\n colorMappings: {\n black: 'black',\n blue: 'blue',\n green: 'green',\n purple: 'purple',\n red: 'red',\n yellow: '#fc0',\n },\n fontSize: 20,\n fontFamily: 'Ma Shan Zheng',\n strokeWidth: 1,\n },\n characterStates: {\n faded: {\n fill: '#999',\n opacity: 0.4,\n characterState: 'faded',\n },\n highlighted: {\n fill: 'red',\n opacity: 0.4,\n characterState: 'highlighted',\n },\n selected: {\n fill: 'red',\n opacity: 1,\n characterState: 'selected',\n },\n },\n demo: {\n fadeIn: {\n delayPerChar: 300, // ms\n delayPerReading: 2000, // ms\n duration: 0.5, // sec\n opacity: 1,\n },\n fadeOut: {\n duration: 1,\n opacity: 0.2,\n },\n },\n fadeIn: {\n delay: 1,\n maxDuration: 7,\n },\n readingText: {\n charWidthMultiplier: 1.5,\n lineHeight: 45,\n marginLeft: 60,\n fontFamily: 'Ma Shan Zheng',\n fontSize: 30,\n rightColumnOffset: 200,\n y: 100,\n pinyin: {\n fontFamily: 'Roboto Mono',\n fontSize: 14,\n },\n },\n stage: {\n height: 750,\n width: 1200,\n },\n text: {\n offset: {\n x: 10,\n y: 10,\n },\n },\n};\n\nexport default constants;\n","import Konva from 'konva';\nimport constants from './constants';\nimport { CharacterData } from './interfaces';\n\nclass Character {\n readonly node: Konva.Text;\n readonly text: string;\n readonly x: number;\n readonly y: number;\n readonly color: string;\n readonly pinyin: string;\n pinyinNode: Konva.Text;\n sidebarNode: Konva.Text;\n gridTween: Konva.Tween;\n sidebarTween: Konva.Tween;\n pinyinTween: Konva.Tween;\n\n static createNode(character: CharacterData): Konva.Text {\n const { width, height, colorMappings, fontSize, fontFamily, strokeWidth }:\n { width: number, height: number, colorMappings: object, fontSize: number, fontFamily: string, strokeWidth: number } = constants.characters;\n const { offset }: { offset: any } = constants.text;\n\n const newNode: Konva.Text = new Konva.Text({\n fontFamily,\n fontSize,\n strokeWidth,\n character,\n x: (character.x_coordinate * width) + offset.x,\n y: (character.y_coordinate * height) + offset.y,\n text: character.text,\n fill: colorMappings[character.color],\n });\n\n newNode.listening(false);\n newNode.transformsEnabled('position');\n newNode.perfectDrawEnabled(false);\n\n return newNode;\n }\n\n static fadeInNode(node: Konva.Text): void {\n const { duration, opacity }: { duration: number, opacity: number } = constants.demo.fadeIn;\n\n node.to({\n duration,\n opacity,\n });\n }\n\n constructor(characterData: CharacterData) {\n const { text, color, pinyin, x_coordinate, y_coordinate } = characterData;\n\n this.text = text;\n this.color = color;\n this.pinyin = pinyin;\n this.x = x_coordinate;\n this.y = y_coordinate;\n\n this.node = Character.createNode(characterData);\n this.node.opacity(0);\n }\n\n public initialFadeIn(): void {\n const { delay, maxDuration }: { delay: number, maxDuration: number } = constants.fadeIn;\n\n this.node.to({\n duration: Math.random() * (maxDuration - delay),\n opacity: 1,\n });\n }\n\n public fadeIn(): void {\n Character.fadeInNode(this.node);\n }\n\n public fadeOut(): void {\n const { duration, opacity }: { duration: number, opacity: number } = constants.demo.fadeOut;\n\n this.node.to({\n duration,\n opacity,\n });\n }\n\n public hide(): void {\n this.node.setAttrs({ opacity: constants.demo.fadeOut.opacity });\n }\n\n public getPinyinNodeAt(x: number, y: number): Konva.Text {\n if (this.pinyinNode === undefined) {\n this.pinyinNode = new Konva.Text({\n x,\n y,\n text: this.pinyin,\n fontFamily: constants.readingText.pinyin.fontFamily,\n fontSize: constants.readingText.pinyin.fontSize,\n fill: constants.characters.colorMappings[this.color],\n opacity: 0,\n });\n this.pinyinNode.offsetX(this.pinyinNode.width() / 2);\n this.pinyinNode.listening(false);\n this.pinyinNode.transformsEnabled('position');\n this.pinyinNode.perfectDrawEnabled(false);\n } else {\n this.pinyinNode.setAttrs({ x, y, opacity: 0 });\n }\n\n return this.pinyinNode;\n }\n\n public fadeInPinyin(): void {\n Character.fadeInNode(this.pinyinNode);\n }\n\n public getSidebarNodeAt(x: number, y: number): Konva.Text {\n if (this.sidebarNode === undefined) {\n this.sidebarNode = new Konva.Text({\n x,\n y,\n text: this.text,\n fontFamily: constants.readingText.fontFamily,\n fontSize: constants.readingText.fontSize,\n fill: constants.characters.colorMappings[this.color],\n opacity: 0,\n });\n this.sidebarNode.listening(false);\n this.sidebarNode.transformsEnabled('position');\n this.sidebarNode.perfectDrawEnabled(false);\n } else {\n this.sidebarNode.setAttrs({ x, y, opacity: 0 });\n }\n\n return this.sidebarNode;\n }\n\n public fadeInSidebar(): void {\n Character.fadeInNode(this.sidebarNode);\n }\n}\n\nexport default Character;\n","import { ReadingData } from './interfaces';\nimport Segment from './segment';\nimport Xuanjitu from './xuanjitu';\n\nclass Reading {\n readonly id: number;\n readonly color: string;\n readonly blockNumber: number;\n readonly readingNumber: number;\n readonly length: number;\n readonly index: number;\n segments: Segment[];\n\n static createReadings(readingsData: ReadingData[], segments: any): Reading[] {\n return readingsData.map((readingData: ReadingData, index: number): Reading => {\n const reading: Reading = new Reading(readingData, index);\n reading.populateSegments(readingData.segment_ids, segments);\n return reading;\n });\n }\n\n constructor(readingData: ReadingData, index: number) {\n const { id, color, block_number, length } = readingData;\n\n this.id = id;\n this.color = color;\n this.blockNumber = block_number;\n this.length = length;\n this.index = index;\n this.readingNumber = readingData.number;\n }\n\n public play(xjt: Xuanjitu): void {\n this.segments.forEach((segment: Segment, index: number) => {\n const isLastSegment: boolean = index === (this.length - 1);\n segment.play(index, isLastSegment, xjt);\n });\n }\n\n private populateSegments(segmentIds: number[], segments: Segment[]) {\n this.segments = segmentIds.map((segmentId: number) => {\n return segments[segmentId];\n });\n }\n}\n\nexport default Reading;\n","import Konva from 'konva';\nimport constants from './constants';\nimport { SegmentData } from './interfaces';\nimport Character from './character';\nimport Xuanjitu from './xuanjitu';\n\nclass Segment {\n readonly id: number;\n readonly length: number;\n readonly color: string;\n readonly characters: Character[];\n\n readonly head: {\n x: number;\n y: number;\n }\n\n readonly tail: {\n x: number;\n y: number;\n }\n\n static createSegments(segmentsData: SegmentData[], grid: Character[][]): any {\n const segments = {};\n\n segmentsData.forEach((segmentData: SegmentData) => {\n const segment: Segment = new Segment(segmentData);\n segments[segmentData.id] = segment;\n segment.populateCharacters(grid);\n });\n\n return segments;\n }\n\n constructor(segmentData: SegmentData) {\n const { id, head_x, head_y, tail_x, tail_y, length, color } = segmentData;\n\n this.id = id;\n this.head = { x: head_x, y: head_y };\n this.tail = { x: tail_x, y: tail_y };\n this.length = length;\n this.color = color;\n this.characters = [];\n }\n\n public play(lineIndex: number, isLastSegment: boolean, xjt: Xuanjitu): void {\n const { delayPerChar, delayPerReading }: { delayPerChar: number, delayPerReading: number } = constants.demo.fadeIn;\n const delayOffset: number = this.length * lineIndex * delayPerChar;\n const sidebarLineHeight = constants.readingText.lineHeight;\n\n let sidebarX;\n let sidebarLineIndex;\n\n if (lineIndex > 5) {\n sidebarLineIndex = lineIndex % 6;\n sidebarX = constants.readingText.rightColumnOffset;\n } else {\n sidebarLineIndex = lineIndex;\n sidebarX = 0;\n }\n\n const sidebarY: number = sidebarLineIndex * (2 * sidebarLineHeight);\n const pinyinY: number = sidebarY + sidebarLineHeight;\n\n this.characters.forEach((character: Character, index: number) => {\n let isRepeatChar: boolean = false;\n\n // prep grid fade-in\n if (xjt.isHighlighted(character)) {\n isRepeatChar = true;\n } else {\n xjt.highlight(character);\n }\n\n // prep sidebar fade-in\n const sidebarChar: Konva.Text = character.getSidebarNodeAt(sidebarX, sidebarY);\n const pinyinX: number = sidebarX + (sidebarChar.width() / 2);\n const sidebarPinyin: Konva.Text = character.getPinyinNodeAt(pinyinX, pinyinY);\n xjt.addSidebarNode(sidebarChar);\n xjt.addSidebarNode(sidebarPinyin);\n\n const delay: number = delayOffset + (delayPerChar * index);\n\n // set both\n setTimeout(\n () => {\n if (!isRepeatChar) { character.fadeIn(); }\n character.fadeInSidebar();\n character.fadeInPinyin();\n\n // if it's the last char of the last segment, play the next reading\n const isLastChar: boolean = index === (this.length - 1);\n if (isLastSegment && isLastChar) {\n setTimeout(xjt.continueRun.bind(xjt), delayPerReading);\n }\n },\n delay,\n );\n\n // update variables\n sidebarX += sidebarChar.width() * constants.readingText.charWidthMultiplier;\n });\n }\n\n private populateCharacters(grid: Character[][]): void {\n const getCharAtCoordinates = (x: number, y: number): Character => {\n const character = grid[y][x];\n\n if (character === undefined) {\n throw new Error(`character not found at coordinates ${x}, ${y}!`);\n } else {\n return character;\n }\n };\n\n if (this.isVertical()) {\n let y: number = this.head.y;\n while (y !== this.tail.y) {\n this.characters.push(getCharAtCoordinates(this.head.x, y));\n y += (this.head.y < this.tail.y) ? 1 : -1;\n }\n this.characters.push(getCharAtCoordinates(this.tail.x, this.tail.y));\n } else if (this.isHorizontal()) {\n let x: number = this.head.x;\n while (x !== this.tail.x) {\n this.characters.push(getCharAtCoordinates(x, this.head.y));\n x += (this.head.x < this.tail.x) ? 1 : -1;\n }\n this.characters.push(getCharAtCoordinates(this.tail.x, this.tail.y));\n } else {\n // diagonal segment\n throw new Error('diagonal segment not supported');\n }\n }\n\n private isHorizontal(): boolean {\n return (this.head.y === this.tail.y) && (this.head.x !== this.tail.x);\n }\n\n private isVertical(): boolean {\n return (this.head.x === this.tail.x) && (this.head.y !== this.tail.y);\n }\n}\n\nexport default Segment;\n","import Konva from 'konva';\nimport constants from './constants';\nimport { CharacterData, State } from './interfaces';\nimport Character from './character';\nimport Reading from './reading';\nimport Segment from './segment';\n\nclass Xuanjitu {\n private readonly characterGrid: Character[][];\n private characters: Character[];\n private readonly gridBackground: Konva.Rect;\n private readonly layers: Konva.Layer[];\n private readonly readings: Reading[];\n private readonly segments: { [index: number]: Segment; };\n private readonly sidebarGroup: Konva.Group;\n private readonly stage: Konva.Stage;\n private state: State;\n\n static createCharacterGrid(): Character[][] {\n const characterGrid: Character[][] = new Array(29);\n for (let y: number = 0; y < characterGrid.length; y += 1) {\n characterGrid[y] = new Array(29);\n }\n return characterGrid;\n }\n\n static createGridBackground(): Konva.Rect {\n const { color, width, height, strokeWidth }:\n { color: string, width: number, height: number, strokeWidth: number } = constants.background;\n\n return new Konva.Rect({\n width,\n height,\n strokeWidth,\n x: 0,\n y: 0,\n fill: color,\n });\n }\n\n static createLayers(): Konva.Layer[] {\n const layers: Konva.Layer[] = [new Konva.Layer(), new Konva.Layer()];\n layers.forEach(layer => { layer.listening(false); });\n\n return layers;\n }\n\n static createSidebarGroup(offsetX: number): Konva.Group {\n const { marginLeft, y }: { marginLeft: number, y: number } = constants.readingText;\n\n return new Konva.Group({\n y,\n x: offsetX + marginLeft,\n });\n }\n\n static createStage(): Konva.Stage {\n return new Konva.Stage({\n container: 'container', // id of container
\n width: constants.stage.width,\n height: constants.stage.height,\n });\n }\n\n static createState(): State {\n return {\n demo: {\n currentReading: undefined,\n highlightedChars: [],\n },\n };\n }\n\n constructor({ characters, segments, readings }) {\n this.state = Xuanjitu.createState();\n this.characterGrid = Xuanjitu.createCharacterGrid();\n this.stage = Xuanjitu.createStage();\n this.layers = Xuanjitu.createLayers();\n\n this.gridBackground = Xuanjitu.createGridBackground();\n this.layers[0].add(this.gridBackground);\n\n this.sidebarGroup = Xuanjitu.createSidebarGroup(this.gridBackground.width());\n this.layers[1].add(this.sidebarGroup);\n\n this.initializeChars(characters);\n\n this.segments = Segment.createSegments(segments, this.characterGrid);\n this.readings = Reading.createReadings(readings, this.segments);\n }\n\n public run(): void {\n const { delay, maxDuration }: { delay: number, maxDuration: number } = constants.fadeIn;\n\n setTimeout(this.render.bind(this), delay * 1000);\n setTimeout(this.playDemo.bind(this), maxDuration * 1000);\n }\n\n public addSidebarNode(node: any): void {\n this.sidebarGroup.add(node);\n this.layers[1].batchDraw();\n }\n\n public isHighlighted(character: Character): boolean {\n return this.state.demo.highlightedChars.includes(character);\n }\n\n public highlight(character: Character): void {\n this.state.demo.highlightedChars.push(character);\n }\n\n public continueRun(): void {\n this.playNextReading();\n }\n\n private initializeChars(characters: CharacterData[]): void {\n // set character Text objects to the grid\n this.characters = characters.map((characterData: CharacterData): Character => {\n const newCharacter = new Character(characterData);\n this.characterGrid[newCharacter.y][newCharacter.x] = newCharacter;\n this.layers[1].add(newCharacter.node);\n\n return newCharacter;\n });\n }\n\n private fadeInChars(): void {\n this.characters.forEach((character: Character): void => {\n character.initialFadeIn();\n });\n }\n\n private playDemo(): void {\n this.characters.forEach((character: Character) => {\n character.fadeOut();\n });\n\n const delay: number = constants.demo.fadeOut.duration;\n setTimeout(this.playReadings.bind(this), delay * 1000);\n }\n\n private playReadings(): void {\n this.playReading(this.readings[0]);\n }\n\n private playReading(reading: Reading) {\n // update state\n this.state.demo.currentReading = reading;\n\n // clean up grid\n this.characters.forEach((character: Character) => { character.hide(); });\n this.state.demo.highlightedChars = [];\n\n // clean up sidebar\n this.sidebarGroup.removeChildren();\n\n reading.play(this);\n }\n\n private playNextReading(): void {\n const nextIndex: number = this.state.demo.currentReading.index + 1;\n const nextReading: Reading = this.readings[nextIndex] || this.readings[0];\n\n this.playReading(nextReading);\n }\n\n private render(): void {\n this.layers.forEach((layer: Konva.Layer): void => {\n this.stage.add(layer);\n layer.draw();\n });\n\n this.fadeInChars();\n }\n}\n\nexport default Xuanjitu;\n","define([\"./fnToString\"], function (fnToString) {\n \"use strict\";\n\n return fnToString.call(Object);\n});","define([\"./core\", \"../external/sizzle/dist/sizzle\"], function (jQuery, Sizzle) {\n \"use strict\";\n\n jQuery.find = Sizzle;\n jQuery.expr = Sizzle.selectors;\n\n // Deprecated\n jQuery.expr[\":\"] = jQuery.expr.pseudos;\n jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\n jQuery.text = Sizzle.getText;\n jQuery.isXMLDoc = Sizzle.isXML;\n jQuery.contains = Sizzle.contains;\n jQuery.escapeSelector = Sizzle.escape;\n});","/*!\n * Sizzle CSS Selector Engine v2.3.5\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2020-03-14\n */\n(function (window) {\n var i,\n support,\n Expr,\n getText,\n isXML,\n tokenize,\n compile,\n select,\n outermostContext,\n sortInput,\n hasDuplicate,\n // Local document vars\n setDocument,\n document,\n docElem,\n documentIsHTML,\n rbuggyQSA,\n rbuggyMatches,\n matches,\n contains,\n // Instance-specific data\n expando = \"sizzle\" + 1 * new Date(),\n preferredDoc = window.document,\n dirruns = 0,\n done = 0,\n classCache = createCache(),\n tokenCache = createCache(),\n compilerCache = createCache(),\n nonnativeSelectorCache = createCache(),\n sortOrder = function (a, b) {\n if (a === b) {\n hasDuplicate = true;\n }\n return 0;\n },\n // Instance methods\n hasOwn = {}.hasOwnProperty,\n arr = [],\n pop = arr.pop,\n pushNative = arr.push,\n push = arr.push,\n slice = arr.slice,\n // Use a stripped-down indexOf as it's faster than native\n // https://jsperf.com/thor-indexof-vs-for/5\n indexOf = function (list, elem) {\n var i = 0,\n len = list.length;\n for (; i < len; i++) {\n if (list[i] === elem) {\n return i;\n }\n }\n return -1;\n },\n booleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" + \"ismap|loop|multiple|open|readonly|required|scoped\",\n // Regular expressions\n\n // http://www.w3.org/TR/css3-selectors/#whitespace\n whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n identifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n attributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n // Operator (capture 2)\n \"*([*^$|!~]?=)\" + whitespace +\n // \"Attribute values must be CSS identifiers [capture 5]\n // or strings [capture 3 or capture 4]\"\n \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace + \"*\\\\]\",\n pseudos = \":(\" + identifier + \")(?:\\\\((\" +\n // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n // 1. quoted (capture 3; capture 4 or capture 5)\n \"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n // 2. simple (capture 6)\n \"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n // 3. anything else (capture 2)\n \".*\" + \")\\\\)|)\",\n // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n rwhitespace = new RegExp(whitespace + \"+\", \"g\"),\n rtrim = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\"),\n rcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\n rcombinators = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\"),\n rdescend = new RegExp(whitespace + \"|>\"),\n rpseudo = new RegExp(pseudos),\n ridentifier = new RegExp(\"^\" + identifier + \"$\"),\n matchExpr = {\n \"ID\": new RegExp(\"^#(\" + identifier + \")\"),\n \"CLASS\": new RegExp(\"^\\\\.(\" + identifier + \")\"),\n \"TAG\": new RegExp(\"^(\" + identifier + \"|[*])\"),\n \"ATTR\": new RegExp(\"^\" + attributes),\n \"PSEUDO\": new RegExp(\"^\" + pseudos),\n \"CHILD\": new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\n \"bool\": new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\n // For use in libraries implementing .is()\n // We use this for POS matching in `select`\n \"needsContext\": new RegExp(\"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\n },\n rhtml = /HTML$/i,\n rinputs = /^(?:input|select|textarea|button)$/i,\n rheader = /^h\\d$/i,\n rnative = /^[^{]+\\{\\s*\\[native \\w/,\n // Easily-parseable/retrievable ID or TAG or CLASS selectors\n rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n rsibling = /[+~]/,\n // CSS escapes\n // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n runescape = new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\"),\n funescape = function (escape, nonHex) {\n var high = \"0x\" + escape.slice(1) - 0x10000;\n return nonHex ?\n // Strip the backslash prefix from a non-hex escape sequence\n nonHex :\n // Replace a hexadecimal escape sequence with the encoded Unicode code point\n // Support: IE <=11+\n // For values outside the Basic Multilingual Plane (BMP), manually construct a\n // surrogate pair\n high < 0 ? String.fromCharCode(high + 0x10000) : String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);\n },\n // CSS string/identifier serialization\n // https://drafts.csswg.org/cssom/#common-serializing-idioms\n rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n fcssescape = function (ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === \"\\0\") {\n return \"\\uFFFD\";\n }\n\n // Control characters and (dependent upon position) numbers get escaped as code points\n return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\n }\n\n // Other potentially-special ASCII characters get backslash-escaped\n return \"\\\\\" + ch;\n },\n // Used for iframes\n // See setDocument()\n // Removing the function wrapper causes a \"Permission Denied\"\n // error in IE\n unloadHandler = function () {\n setDocument();\n },\n inDisabledFieldset = addCombinator(function (elem) {\n return elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n }, {\n dir: \"parentNode\",\n next: \"legend\"\n });\n\n // Optimize for push.apply( _, NodeList )\n try {\n push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes);\n\n // Support: Android<4.0\n // Detect silently failing push.apply\n // eslint-disable-next-line no-unused-expressions\n arr[preferredDoc.childNodes.length].nodeType;\n } catch (e) {\n push = {\n apply: arr.length ?\n // Leverage slice if possible\n function (target, els) {\n pushNative.apply(target, slice.call(els));\n } :\n // Support: IE<9\n // Otherwise append directly\n function (target, els) {\n var j = target.length,\n i = 0;\n\n // Can't trust NodeList.length\n while (target[j++] = els[i++]) {}\n target.length = j - 1;\n }\n };\n }\n function Sizzle(selector, context, results, seed) {\n var m,\n i,\n elem,\n nid,\n match,\n groups,\n newSelector,\n newContext = context && context.ownerDocument,\n // nodeType defaults to 9, since context defaults to document\n nodeType = context ? context.nodeType : 9;\n results = results || [];\n\n // Return early from calls with invalid selector or context\n if (typeof selector !== \"string\" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\n return results;\n }\n\n // Try to shortcut find operations (as opposed to filters) in HTML documents\n if (!seed) {\n setDocument(context);\n context = context || document;\n if (documentIsHTML) {\n // If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n // (excepting DocumentFragment context, where the methods don't exist)\n if (nodeType !== 11 && (match = rquickExpr.exec(selector))) {\n // ID selector\n if (m = match[1]) {\n // Document context\n if (nodeType === 9) {\n if (elem = context.getElementById(m)) {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (elem.id === m) {\n results.push(elem);\n return results;\n }\n } else {\n return results;\n }\n\n // Element context\n } else {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (newContext && (elem = newContext.getElementById(m)) && contains(context, elem) && elem.id === m) {\n results.push(elem);\n return results;\n }\n }\n\n // Type selector\n } else if (match[2]) {\n push.apply(results, context.getElementsByTagName(selector));\n return results;\n\n // Class selector\n } else if ((m = match[3]) && support.getElementsByClassName && context.getElementsByClassName) {\n push.apply(results, context.getElementsByClassName(m));\n return results;\n }\n }\n\n // Take advantage of querySelectorAll\n if (support.qsa && !nonnativeSelectorCache[selector + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(selector)) && (\n // Support: IE 8 only\n // Exclude object elements\n nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\")) {\n newSelector = selector;\n newContext = context;\n\n // qSA considers elements outside a scoping root when evaluating child or\n // descendant combinators, which is not what we want.\n // In such cases, we work around the behavior by prefixing every selector in the\n // list with an ID selector referencing the scope context.\n // The technique has to be used as well when a leading combinator is used\n // as such selectors are not recognized by querySelectorAll.\n // Thanks to Andrew Dupont for this technique.\n if (nodeType === 1 && (rdescend.test(selector) || rcombinators.test(selector))) {\n // Expand context for sibling selectors\n newContext = rsibling.test(selector) && testContext(context.parentNode) || context;\n\n // We can use :scope instead of the ID hack if the browser\n // supports it & if we're not changing the context.\n if (newContext !== context || !support.scope) {\n // Capture the context ID, setting it first if necessary\n if (nid = context.getAttribute(\"id\")) {\n nid = nid.replace(rcssescape, fcssescape);\n } else {\n context.setAttribute(\"id\", nid = expando);\n }\n }\n\n // Prefix every selector in the list\n groups = tokenize(selector);\n i = groups.length;\n while (i--) {\n groups[i] = (nid ? \"#\" + nid : \":scope\") + \" \" + toSelector(groups[i]);\n }\n newSelector = groups.join(\",\");\n }\n try {\n push.apply(results, newContext.querySelectorAll(newSelector));\n return results;\n } catch (qsaError) {\n nonnativeSelectorCache(selector, true);\n } finally {\n if (nid === expando) {\n context.removeAttribute(\"id\");\n }\n }\n }\n }\n }\n\n // All others\n return select(selector.replace(rtrim, \"$1\"), context, results, seed);\n }\n\n /**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\n function createCache() {\n var keys = [];\n function cache(key, value) {\n // Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n if (keys.push(key + \" \") > Expr.cacheLength) {\n // Only keep the most recent entries\n delete cache[keys.shift()];\n }\n return cache[key + \" \"] = value;\n }\n return cache;\n }\n\n /**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\n function markFunction(fn) {\n fn[expando] = true;\n return fn;\n }\n\n /**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\n function assert(fn) {\n var el = document.createElement(\"fieldset\");\n try {\n return !!fn(el);\n } catch (e) {\n return false;\n } finally {\n // Remove from its parent by default\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n\n // release memory in IE\n el = null;\n }\n }\n\n /**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\n function addHandle(attrs, handler) {\n var arr = attrs.split(\"|\"),\n i = arr.length;\n while (i--) {\n Expr.attrHandle[arr[i]] = handler;\n }\n }\n\n /**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\n function siblingCheck(a, b) {\n var cur = b && a,\n diff = cur && a.nodeType === 1 && b.nodeType === 1 && a.sourceIndex - b.sourceIndex;\n\n // Use IE sourceIndex if available on both nodes\n if (diff) {\n return diff;\n }\n\n // Check if b follows a\n if (cur) {\n while (cur = cur.nextSibling) {\n if (cur === b) {\n return -1;\n }\n }\n }\n return a ? 1 : -1;\n }\n\n /**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\n function createInputPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === type;\n };\n }\n\n /**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\n function createButtonPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return (name === \"input\" || name === \"button\") && elem.type === type;\n };\n }\n\n /**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\n function createDisabledPseudo(disabled) {\n // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n return function (elem) {\n // Only certain elements can match :enabled or :disabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n if (\"form\" in elem) {\n // Check for inherited disabledness on relevant non-disabled elements:\n // * listed form-associated elements in a disabled fieldset\n // https://html.spec.whatwg.org/multipage/forms.html#category-listed\n // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n // * option elements in a disabled optgroup\n // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n // All such elements have a \"form\" property.\n if (elem.parentNode && elem.disabled === false) {\n // Option elements defer to a parent optgroup if present\n if (\"label\" in elem) {\n if (\"label\" in elem.parentNode) {\n return elem.parentNode.disabled === disabled;\n } else {\n return elem.disabled === disabled;\n }\n }\n\n // Support: IE 6 - 11\n // Use the isDisabled shortcut property to check for disabled fieldset ancestors\n return elem.isDisabled === disabled ||\n // Where there is no isDisabled, check manually\n /* jshint -W018 */\n elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled;\n }\n return elem.disabled === disabled;\n\n // Try to winnow out elements that can't be disabled before trusting the disabled property.\n // Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n // even exist on them, let alone have a boolean value.\n } else if (\"label\" in elem) {\n return elem.disabled === disabled;\n }\n\n // Remaining elements are neither :enabled nor :disabled\n return false;\n };\n }\n\n /**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\n function createPositionalPseudo(fn) {\n return markFunction(function (argument) {\n argument = +argument;\n return markFunction(function (seed, matches) {\n var j,\n matchIndexes = fn([], seed.length, argument),\n i = matchIndexes.length;\n\n // Match elements found at the specified indexes\n while (i--) {\n if (seed[j = matchIndexes[i]]) {\n seed[j] = !(matches[j] = seed[j]);\n }\n }\n });\n });\n }\n\n /**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\n function testContext(context) {\n return context && typeof context.getElementsByTagName !== \"undefined\" && context;\n }\n\n // Expose support vars for convenience\n support = Sizzle.support = {};\n\n /**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\n isXML = Sizzle.isXML = function (elem) {\n var namespace = elem.namespaceURI,\n docElem = (elem.ownerDocument || elem).documentElement;\n\n // Support: IE <=8\n // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n // https://bugs.jquery.com/ticket/4833\n return !rhtml.test(namespace || docElem && docElem.nodeName || \"HTML\");\n };\n\n /**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\n setDocument = Sizzle.setDocument = function (node) {\n var hasCompare,\n subWindow,\n doc = node ? node.ownerDocument || node : preferredDoc;\n\n // Return early if doc is invalid or already selected\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (doc == document || doc.nodeType !== 9 || !doc.documentElement) {\n return document;\n }\n\n // Update global variables\n document = doc;\n docElem = document.documentElement;\n documentIsHTML = !isXML(document);\n\n // Support: IE 9 - 11+, Edge 12 - 18+\n // Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (preferredDoc != document && (subWindow = document.defaultView) && subWindow.top !== subWindow) {\n // Support: IE 11, Edge\n if (subWindow.addEventListener) {\n subWindow.addEventListener(\"unload\", unloadHandler, false);\n\n // Support: IE 9 - 10 only\n } else if (subWindow.attachEvent) {\n subWindow.attachEvent(\"onunload\", unloadHandler);\n }\n }\n\n // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n // Safari 4 - 5 only, Opera <=11.6 - 12.x only\n // IE/Edge & older browsers don't support the :scope pseudo-class.\n // Support: Safari 6.0 only\n // Safari 6.0 supports :scope but it's an alias of :root there.\n support.scope = assert(function (el) {\n docElem.appendChild(el).appendChild(document.createElement(\"div\"));\n return typeof el.querySelectorAll !== \"undefined\" && !el.querySelectorAll(\":scope fieldset div\").length;\n });\n\n /* Attributes\n ---------------------------------------------------------------------- */\n\n // Support: IE<8\n // Verify that getAttribute really returns attributes and not properties\n // (excepting IE8 booleans)\n support.attributes = assert(function (el) {\n el.className = \"i\";\n return !el.getAttribute(\"className\");\n });\n\n /* getElement(s)By*\n ---------------------------------------------------------------------- */\n\n // Check if getElementsByTagName(\"*\") returns only elements\n support.getElementsByTagName = assert(function (el) {\n el.appendChild(document.createComment(\"\"));\n return !el.getElementsByTagName(\"*\").length;\n });\n\n // Support: IE<9\n support.getElementsByClassName = rnative.test(document.getElementsByClassName);\n\n // Support: IE<10\n // Check if getElementById returns elements by name\n // The broken getElementById methods don't pick up programmatically-set names,\n // so use a roundabout getElementsByName test\n support.getById = assert(function (el) {\n docElem.appendChild(el).id = expando;\n return !document.getElementsByName || !document.getElementsByName(expando).length;\n });\n\n // ID filter and find\n if (support.getById) {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n return elem.getAttribute(\"id\") === attrId;\n };\n };\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var elem = context.getElementById(id);\n return elem ? [elem] : [];\n }\n };\n } else {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n var node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n return node && node.value === attrId;\n };\n };\n\n // Support: IE 6 - 7 only\n // getElementById is not reliable as a find shortcut\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var node,\n i,\n elems,\n elem = context.getElementById(id);\n if (elem) {\n // Verify the id attribute\n node = elem.getAttributeNode(\"id\");\n if (node && node.value === id) {\n return [elem];\n }\n\n // Fall back on getElementsByName\n elems = context.getElementsByName(id);\n i = 0;\n while (elem = elems[i++]) {\n node = elem.getAttributeNode(\"id\");\n if (node && node.value === id) {\n return [elem];\n }\n }\n }\n return [];\n }\n };\n }\n\n // Tag\n Expr.find[\"TAG\"] = support.getElementsByTagName ? function (tag, context) {\n if (typeof context.getElementsByTagName !== \"undefined\") {\n return context.getElementsByTagName(tag);\n\n // DocumentFragment nodes don't have gEBTN\n } else if (support.qsa) {\n return context.querySelectorAll(tag);\n }\n } : function (tag, context) {\n var elem,\n tmp = [],\n i = 0,\n // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n results = context.getElementsByTagName(tag);\n\n // Filter out possible comments\n if (tag === \"*\") {\n while (elem = results[i++]) {\n if (elem.nodeType === 1) {\n tmp.push(elem);\n }\n }\n return tmp;\n }\n return results;\n };\n\n // Class\n Expr.find[\"CLASS\"] = support.getElementsByClassName && function (className, context) {\n if (typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML) {\n return context.getElementsByClassName(className);\n }\n };\n\n /* QSA/matchesSelector\n ---------------------------------------------------------------------- */\n\n // QSA and matchesSelector support\n\n // matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n rbuggyMatches = [];\n\n // qSa(:focus) reports false when true (Chrome 21)\n // We allow this because of a bug in IE8/9 that throws an error\n // whenever `document.activeElement` is accessed on an iframe\n // So, we allow :focus to pass through QSA all the time to avoid the IE error\n // See https://bugs.jquery.com/ticket/13378\n rbuggyQSA = [];\n if (support.qsa = rnative.test(document.querySelectorAll)) {\n // Build QSA regex\n // Regex strategy adopted from Diego Perini\n assert(function (el) {\n var input;\n\n // Select is set to empty string on purpose\n // This is to test IE's treatment of not explicitly\n // setting a boolean content attribute,\n // since its presence should be enough\n // https://bugs.jquery.com/ticket/12359\n docElem.appendChild(el).innerHTML = \"\" + \"\";\n\n // Support: IE8, Opera 11-12.16\n // Nothing should be selected when empty strings follow ^= or $= or *=\n // The test attribute must be unknown in Opera but \"safe\" for WinRT\n // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n if (el.querySelectorAll(\"[msallowcapture^='']\").length) {\n rbuggyQSA.push(\"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\");\n }\n\n // Support: IE8\n // Boolean attributes and \"value\" are not treated correctly\n if (!el.querySelectorAll(\"[selected]\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\n }\n\n // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n if (!el.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\n rbuggyQSA.push(\"~=\");\n }\n\n // Support: IE 11+, Edge 15 - 18+\n // IE 11/Edge don't find elements on a `[name='']` query in some cases.\n // Adding a temporary attribute to the document before the selection works\n // around the issue.\n // Interestingly, IE 10 & older don't seem to have the issue.\n input = document.createElement(\"input\");\n input.setAttribute(\"name\", \"\");\n el.appendChild(input);\n if (!el.querySelectorAll(\"[name='']\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" + whitespace + \"*(?:''|\\\"\\\")\");\n }\n\n // Webkit/Opera - :checked should return selected option elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n // IE8 throws error here and will not see later tests\n if (!el.querySelectorAll(\":checked\").length) {\n rbuggyQSA.push(\":checked\");\n }\n\n // Support: Safari 8+, iOS 8+\n // https://bugs.webkit.org/show_bug.cgi?id=136851\n // In-page `selector#id sibling-combinator selector` fails\n if (!el.querySelectorAll(\"a#\" + expando + \"+*\").length) {\n rbuggyQSA.push(\".#.+[+~]\");\n }\n\n // Support: Firefox <=3.6 - 5 only\n // Old Firefox doesn't throw on a badly-escaped identifier.\n el.querySelectorAll(\"\\\\\\f\");\n rbuggyQSA.push(\"[\\\\r\\\\n\\\\f]\");\n });\n assert(function (el) {\n el.innerHTML = \"\" + \"\";\n\n // Support: Windows 8 Native Apps\n // The type and name attributes are restricted during .innerHTML assignment\n var input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"hidden\");\n el.appendChild(input).setAttribute(\"name\", \"D\");\n\n // Support: IE8\n // Enforce case-sensitivity of name attribute\n if (el.querySelectorAll(\"[name=d]\").length) {\n rbuggyQSA.push(\"name\" + whitespace + \"*[*^$|!~]?=\");\n }\n\n // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n // IE8 throws error here and will not see later tests\n if (el.querySelectorAll(\":enabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n }\n\n // Support: IE9-11+\n // IE's :disabled selector does not pick up the children of disabled fieldsets\n docElem.appendChild(el).disabled = true;\n if (el.querySelectorAll(\":disabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n }\n\n // Support: Opera 10 - 11 only\n // Opera 10-11 does not throw on post-comma invalid pseudos\n el.querySelectorAll(\"*,:x\");\n rbuggyQSA.push(\",.*:\");\n });\n }\n if (support.matchesSelector = rnative.test(matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector)) {\n assert(function (el) {\n // Check to see if it's possible to do matchesSelector\n // on a disconnected node (IE 9)\n support.disconnectedMatch = matches.call(el, \"*\");\n\n // This should fail with an exception\n // Gecko does not error, returns false instead\n matches.call(el, \"[s!='']:x\");\n rbuggyMatches.push(\"!=\", pseudos);\n });\n }\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\n rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join(\"|\"));\n\n /* Contains\n ---------------------------------------------------------------------- */\n hasCompare = rnative.test(docElem.compareDocumentPosition);\n\n // Element contains another\n // Purposefully self-exclusive\n // As in, an element does not contain itself\n contains = hasCompare || rnative.test(docElem.contains) ? function (a, b) {\n var adown = a.nodeType === 9 ? a.documentElement : a,\n bup = b && b.parentNode;\n return a === bup || !!(bup && bup.nodeType === 1 && (adown.contains ? adown.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16));\n } : function (a, b) {\n if (b) {\n while (b = b.parentNode) {\n if (b === a) {\n return true;\n }\n }\n }\n return false;\n };\n\n /* Sorting\n ---------------------------------------------------------------------- */\n\n // Document order sorting\n sortOrder = hasCompare ? function (a, b) {\n // Flag for duplicate removal\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n\n // Sort on method existence if only one input has compareDocumentPosition\n var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n if (compare) {\n return compare;\n }\n\n // Calculate position if both inputs belong to the same document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n compare = (a.ownerDocument || a) == (b.ownerDocument || b) ? a.compareDocumentPosition(b) :\n // Otherwise we know they are disconnected\n 1;\n\n // Disconnected nodes\n if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) {\n // Choose the first element that is related to our preferred document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (a == document || a.ownerDocument == preferredDoc && contains(preferredDoc, a)) {\n return -1;\n }\n\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (b == document || b.ownerDocument == preferredDoc && contains(preferredDoc, b)) {\n return 1;\n }\n\n // Maintain original order\n return sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0;\n }\n return compare & 4 ? -1 : 1;\n } : function (a, b) {\n // Exit early if the nodes are identical\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n var cur,\n i = 0,\n aup = a.parentNode,\n bup = b.parentNode,\n ap = [a],\n bp = [b];\n\n // Parentless nodes are either documents or disconnected\n if (!aup || !bup) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n /* eslint-disable eqeqeq */\n return a == document ? -1 : b == document ? 1 : /* eslint-enable eqeqeq */\n aup ? -1 : bup ? 1 : sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0;\n\n // If the nodes are siblings, we can do a quick check\n } else if (aup === bup) {\n return siblingCheck(a, b);\n }\n\n // Otherwise we need full lists of their ancestors for comparison\n cur = a;\n while (cur = cur.parentNode) {\n ap.unshift(cur);\n }\n cur = b;\n while (cur = cur.parentNode) {\n bp.unshift(cur);\n }\n\n // Walk down the tree looking for a discrepancy\n while (ap[i] === bp[i]) {\n i++;\n }\n return i ?\n // Do a sibling check if the nodes have a common ancestor\n siblingCheck(ap[i], bp[i]) :\n // Otherwise nodes in our document sort first\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n /* eslint-disable eqeqeq */\n ap[i] == preferredDoc ? -1 : bp[i] == preferredDoc ? 1 : /* eslint-enable eqeqeq */\n 0;\n };\n return document;\n };\n Sizzle.matches = function (expr, elements) {\n return Sizzle(expr, null, null, elements);\n };\n Sizzle.matchesSelector = function (elem, expr) {\n setDocument(elem);\n if (support.matchesSelector && documentIsHTML && !nonnativeSelectorCache[expr + \" \"] && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) {\n try {\n var ret = matches.call(elem, expr);\n\n // IE 9's matchesSelector returns false on disconnected nodes\n if (ret || support.disconnectedMatch ||\n // As well, disconnected nodes are said to be in a document\n // fragment in IE 9\n elem.document && elem.document.nodeType !== 11) {\n return ret;\n }\n } catch (e) {\n nonnativeSelectorCache(expr, true);\n }\n }\n return Sizzle(expr, document, null, [elem]).length > 0;\n };\n Sizzle.contains = function (context, elem) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((context.ownerDocument || context) != document) {\n setDocument(context);\n }\n return contains(context, elem);\n };\n Sizzle.attr = function (elem, name) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((elem.ownerDocument || elem) != document) {\n setDocument(elem);\n }\n var fn = Expr.attrHandle[name.toLowerCase()],\n // Don't get fooled by Object.prototype properties (jQuery #13807)\n val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined;\n return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n };\n Sizzle.escape = function (sel) {\n return (sel + \"\").replace(rcssescape, fcssescape);\n };\n Sizzle.error = function (msg) {\n throw new Error(\"Syntax error, unrecognized expression: \" + msg);\n };\n\n /**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\n Sizzle.uniqueSort = function (results) {\n var elem,\n duplicates = [],\n j = 0,\n i = 0;\n\n // Unless we *know* we can detect duplicates, assume their presence\n hasDuplicate = !support.detectDuplicates;\n sortInput = !support.sortStable && results.slice(0);\n results.sort(sortOrder);\n if (hasDuplicate) {\n while (elem = results[i++]) {\n if (elem === results[i]) {\n j = duplicates.push(i);\n }\n }\n while (j--) {\n results.splice(duplicates[j], 1);\n }\n }\n\n // Clear input after sorting to release objects\n // See https://github.com/jquery/sizzle/pull/225\n sortInput = null;\n return results;\n };\n\n /**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\n getText = Sizzle.getText = function (elem) {\n var node,\n ret = \"\",\n i = 0,\n nodeType = elem.nodeType;\n if (!nodeType) {\n // If no nodeType, this is expected to be an array\n while (node = elem[i++]) {\n // Do not traverse comment nodes\n ret += getText(node);\n }\n } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) {\n // Use textContent for elements\n // innerText usage removed for consistency of new lines (jQuery #11153)\n if (typeof elem.textContent === \"string\") {\n return elem.textContent;\n } else {\n // Traverse its children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n ret += getText(elem);\n }\n }\n } else if (nodeType === 3 || nodeType === 4) {\n return elem.nodeValue;\n }\n\n // Do not include comment or processing instruction nodes\n\n return ret;\n };\n Expr = Sizzle.selectors = {\n // Can be adjusted by the user\n cacheLength: 50,\n createPseudo: markFunction,\n match: matchExpr,\n attrHandle: {},\n find: {},\n relative: {\n \">\": {\n dir: \"parentNode\",\n first: true\n },\n \" \": {\n dir: \"parentNode\"\n },\n \"+\": {\n dir: \"previousSibling\",\n first: true\n },\n \"~\": {\n dir: \"previousSibling\"\n }\n },\n preFilter: {\n \"ATTR\": function (match) {\n match[1] = match[1].replace(runescape, funescape);\n\n // Move the given value to match[3] whether quoted or unquoted\n match[3] = (match[3] || match[4] || match[5] || \"\").replace(runescape, funescape);\n if (match[2] === \"~=\") {\n match[3] = \" \" + match[3] + \" \";\n }\n return match.slice(0, 4);\n },\n \"CHILD\": function (match) {\n /* matches from matchExpr[\"CHILD\"]\n \t1 type (only|nth|...)\n \t2 what (child|of-type)\n \t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n \t4 xn-component of xn+y argument ([+-]?\\d*n|)\n \t5 sign of xn-component\n \t6 x of xn-component\n \t7 sign of y-component\n \t8 y of y-component\n */\n match[1] = match[1].toLowerCase();\n if (match[1].slice(0, 3) === \"nth\") {\n // nth-* requires argument\n if (!match[3]) {\n Sizzle.error(match[0]);\n }\n\n // numeric x and y parameters for Expr.filter.CHILD\n // remember that false/true cast respectively to 0/1\n match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === \"even\" || match[3] === \"odd\"));\n match[5] = +(match[7] + match[8] || match[3] === \"odd\");\n\n // other types prohibit arguments\n } else if (match[3]) {\n Sizzle.error(match[0]);\n }\n return match;\n },\n \"PSEUDO\": function (match) {\n var excess,\n unquoted = !match[6] && match[2];\n if (matchExpr[\"CHILD\"].test(match[0])) {\n return null;\n }\n\n // Accept quoted arguments as-is\n if (match[3]) {\n match[2] = match[4] || match[5] || \"\";\n\n // Strip excess characters from unquoted arguments\n } else if (unquoted && rpseudo.test(unquoted) && (\n // Get excess from tokenize (recursively)\n excess = tokenize(unquoted, true)) && (\n // advance to the next closing parenthesis\n excess = unquoted.indexOf(\")\", unquoted.length - excess) - unquoted.length)) {\n // excess is a negative index\n match[0] = match[0].slice(0, excess);\n match[2] = unquoted.slice(0, excess);\n }\n\n // Return only captures needed by the pseudo filter method (type and argument)\n return match.slice(0, 3);\n }\n },\n filter: {\n \"TAG\": function (nodeNameSelector) {\n var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\n return nodeNameSelector === \"*\" ? function () {\n return true;\n } : function (elem) {\n return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n };\n },\n \"CLASS\": function (className) {\n var pattern = classCache[className + \" \"];\n return pattern || (pattern = new RegExp(\"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\")) && classCache(className, function (elem) {\n return pattern.test(typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\");\n });\n },\n \"ATTR\": function (name, operator, check) {\n return function (elem) {\n var result = Sizzle.attr(elem, name);\n if (result == null) {\n return operator === \"!=\";\n }\n if (!operator) {\n return true;\n }\n result += \"\";\n\n /* eslint-disable max-len */\n\n return operator === \"=\" ? result === check : operator === \"!=\" ? result !== check : operator === \"^=\" ? check && result.indexOf(check) === 0 : operator === \"*=\" ? check && result.indexOf(check) > -1 : operator === \"$=\" ? check && result.slice(-check.length) === check : operator === \"~=\" ? (\" \" + result.replace(rwhitespace, \" \") + \" \").indexOf(check) > -1 : operator === \"|=\" ? result === check || result.slice(0, check.length + 1) === check + \"-\" : false;\n /* eslint-enable max-len */\n };\n },\n\n \"CHILD\": function (type, what, _argument, first, last) {\n var simple = type.slice(0, 3) !== \"nth\",\n forward = type.slice(-4) !== \"last\",\n ofType = what === \"of-type\";\n return first === 1 && last === 0 ?\n // Shortcut for :nth-*(n)\n function (elem) {\n return !!elem.parentNode;\n } : function (elem, _context, xml) {\n var cache,\n uniqueCache,\n outerCache,\n node,\n nodeIndex,\n start,\n dir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n parent = elem.parentNode,\n name = ofType && elem.nodeName.toLowerCase(),\n useCache = !xml && !ofType,\n diff = false;\n if (parent) {\n // :(first|last|only)-(child|of-type)\n if (simple) {\n while (dir) {\n node = elem;\n while (node = node[dir]) {\n if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) {\n return false;\n }\n }\n\n // Reverse direction for :only-* (if we haven't yet done so)\n start = dir = type === \"only\" && !start && \"nextSibling\";\n }\n return true;\n }\n start = [forward ? parent.firstChild : parent.lastChild];\n\n // non-xml :nth-child(...) stores cache data on `parent`\n if (forward && useCache) {\n // Seek `elem` from a previously-cached index\n\n // ...in a gzip-friendly way\n node = parent;\n outerCache = node[expando] || (node[expando] = {});\n\n // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex && cache[2];\n node = nodeIndex && parent.childNodes[nodeIndex];\n while (node = ++nodeIndex && node && node[dir] || (\n // Fallback to seeking `elem` from the start\n diff = nodeIndex = 0) || start.pop()) {\n // When found, cache indexes on `parent` and break\n if (node.nodeType === 1 && ++diff && node === elem) {\n uniqueCache[type] = [dirruns, nodeIndex, diff];\n break;\n }\n }\n } else {\n // Use previously-cached element index if available\n if (useCache) {\n // ...in a gzip-friendly way\n node = elem;\n outerCache = node[expando] || (node[expando] = {});\n\n // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex;\n }\n\n // xml :nth-child(...)\n // or :nth-last-child(...) or :nth(-last)?-of-type(...)\n if (diff === false) {\n // Use the same loop as above to seek `elem` from the start\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n if ((ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) && ++diff) {\n // Cache the index of each encountered element\n if (useCache) {\n outerCache = node[expando] || (node[expando] = {});\n\n // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n uniqueCache[type] = [dirruns, diff];\n }\n if (node === elem) {\n break;\n }\n }\n }\n }\n }\n\n // Incorporate the offset, then check against cycle size\n diff -= last;\n return diff === first || diff % first === 0 && diff / first >= 0;\n }\n };\n },\n \"PSEUDO\": function (pseudo, argument) {\n // pseudo-class names are case-insensitive\n // http://www.w3.org/TR/selectors/#pseudo-classes\n // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n // Remember that setFilters inherits from pseudos\n var args,\n fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || Sizzle.error(\"unsupported pseudo: \" + pseudo);\n\n // The user may use createPseudo to indicate that\n // arguments are needed to create the filter function\n // just as Sizzle does\n if (fn[expando]) {\n return fn(argument);\n }\n\n // But maintain support for old signatures\n if (fn.length > 1) {\n args = [pseudo, pseudo, \"\", argument];\n return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) {\n var idx,\n matched = fn(seed, argument),\n i = matched.length;\n while (i--) {\n idx = indexOf(seed, matched[i]);\n seed[idx] = !(matches[idx] = matched[i]);\n }\n }) : function (elem) {\n return fn(elem, 0, args);\n };\n }\n return fn;\n }\n },\n pseudos: {\n // Potentially complex pseudos\n \"not\": markFunction(function (selector) {\n // Trim the selector passed to compile\n // to avoid treating leading and trailing\n // spaces as combinators\n var input = [],\n results = [],\n matcher = compile(selector.replace(rtrim, \"$1\"));\n return matcher[expando] ? markFunction(function (seed, matches, _context, xml) {\n var elem,\n unmatched = matcher(seed, null, xml, []),\n i = seed.length;\n\n // Match elements unmatched by `matcher`\n while (i--) {\n if (elem = unmatched[i]) {\n seed[i] = !(matches[i] = elem);\n }\n }\n }) : function (elem, _context, xml) {\n input[0] = elem;\n matcher(input, null, xml, results);\n\n // Don't keep the element (issue #299)\n input[0] = null;\n return !results.pop();\n };\n }),\n \"has\": markFunction(function (selector) {\n return function (elem) {\n return Sizzle(selector, elem).length > 0;\n };\n }),\n \"contains\": markFunction(function (text) {\n text = text.replace(runescape, funescape);\n return function (elem) {\n return (elem.textContent || getText(elem)).indexOf(text) > -1;\n };\n }),\n // \"Whether an element is represented by a :lang() selector\n // is based solely on the element's language value\n // being equal to the identifier C,\n // or beginning with the identifier C immediately followed by \"-\".\n // The matching of C against the element's language value is performed case-insensitively.\n // The identifier C does not have to be a valid language name.\"\n // http://www.w3.org/TR/selectors/#lang-pseudo\n \"lang\": markFunction(function (lang) {\n // lang value must be a valid identifier\n if (!ridentifier.test(lang || \"\")) {\n Sizzle.error(\"unsupported lang: \" + lang);\n }\n lang = lang.replace(runescape, funescape).toLowerCase();\n return function (elem) {\n var elemLang;\n do {\n if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) {\n elemLang = elemLang.toLowerCase();\n return elemLang === lang || elemLang.indexOf(lang + \"-\") === 0;\n }\n } while ((elem = elem.parentNode) && elem.nodeType === 1);\n return false;\n };\n }),\n // Miscellaneous\n \"target\": function (elem) {\n var hash = window.location && window.location.hash;\n return hash && hash.slice(1) === elem.id;\n },\n \"root\": function (elem) {\n return elem === docElem;\n },\n \"focus\": function (elem) {\n return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n },\n // Boolean properties\n \"enabled\": createDisabledPseudo(false),\n \"disabled\": createDisabledPseudo(true),\n \"checked\": function (elem) {\n // In CSS3, :checked should return both checked and selected elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n var nodeName = elem.nodeName.toLowerCase();\n return nodeName === \"input\" && !!elem.checked || nodeName === \"option\" && !!elem.selected;\n },\n \"selected\": function (elem) {\n // Accessing this property makes selected-by-default\n // options in Safari work properly\n if (elem.parentNode) {\n // eslint-disable-next-line no-unused-expressions\n elem.parentNode.selectedIndex;\n }\n return elem.selected === true;\n },\n // Contents\n \"empty\": function (elem) {\n // http://www.w3.org/TR/selectors/#empty-pseudo\n // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n // but not by others (comment: 8; processing instruction: 7; etc.)\n // nodeType < 6 works because attributes (2) do not appear as children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n if (elem.nodeType < 6) {\n return false;\n }\n }\n return true;\n },\n \"parent\": function (elem) {\n return !Expr.pseudos[\"empty\"](elem);\n },\n // Element/input types\n \"header\": function (elem) {\n return rheader.test(elem.nodeName);\n },\n \"input\": function (elem) {\n return rinputs.test(elem.nodeName);\n },\n \"button\": function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === \"button\" || name === \"button\";\n },\n \"text\": function (elem) {\n var attr;\n return elem.nodeName.toLowerCase() === \"input\" && elem.type === \"text\" && (\n // Support: IE<8\n // New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\");\n },\n // Position-in-collection\n \"first\": createPositionalPseudo(function () {\n return [0];\n }),\n \"last\": createPositionalPseudo(function (_matchIndexes, length) {\n return [length - 1];\n }),\n \"eq\": createPositionalPseudo(function (_matchIndexes, length, argument) {\n return [argument < 0 ? argument + length : argument];\n }),\n \"even\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 0;\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n }),\n \"odd\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 1;\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n }),\n \"lt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument > length ? length : argument;\n for (; --i >= 0;) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n }),\n \"gt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n for (; ++i < length;) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n })\n }\n };\n Expr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n // Add button/input type pseudos\n for (i in {\n radio: true,\n checkbox: true,\n file: true,\n password: true,\n image: true\n }) {\n Expr.pseudos[i] = createInputPseudo(i);\n }\n for (i in {\n submit: true,\n reset: true\n }) {\n Expr.pseudos[i] = createButtonPseudo(i);\n }\n\n // Easy API for creating new setFilters\n function setFilters() {}\n setFilters.prototype = Expr.filters = Expr.pseudos;\n Expr.setFilters = new setFilters();\n tokenize = Sizzle.tokenize = function (selector, parseOnly) {\n var matched,\n match,\n tokens,\n type,\n soFar,\n groups,\n preFilters,\n cached = tokenCache[selector + \" \"];\n if (cached) {\n return parseOnly ? 0 : cached.slice(0);\n }\n soFar = selector;\n groups = [];\n preFilters = Expr.preFilter;\n while (soFar) {\n // Comma and first run\n if (!matched || (match = rcomma.exec(soFar))) {\n if (match) {\n // Don't consume trailing commas as valid\n soFar = soFar.slice(match[0].length) || soFar;\n }\n groups.push(tokens = []);\n }\n matched = false;\n\n // Combinators\n if (match = rcombinators.exec(soFar)) {\n matched = match.shift();\n tokens.push({\n value: matched,\n // Cast descendant combinators to space\n type: match[0].replace(rtrim, \" \")\n });\n soFar = soFar.slice(matched.length);\n }\n\n // Filters\n for (type in Expr.filter) {\n if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) {\n matched = match.shift();\n tokens.push({\n value: matched,\n type: type,\n matches: match\n });\n soFar = soFar.slice(matched.length);\n }\n }\n if (!matched) {\n break;\n }\n }\n\n // Return the length of the invalid excess\n // if we're just parsing\n // Otherwise, throw an error or return tokens\n return parseOnly ? soFar.length : soFar ? Sizzle.error(selector) :\n // Cache the tokens\n tokenCache(selector, groups).slice(0);\n };\n function toSelector(tokens) {\n var i = 0,\n len = tokens.length,\n selector = \"\";\n for (; i < len; i++) {\n selector += tokens[i].value;\n }\n return selector;\n }\n function addCombinator(matcher, combinator, base) {\n var dir = combinator.dir,\n skip = combinator.next,\n key = skip || dir,\n checkNonElements = base && key === \"parentNode\",\n doneName = done++;\n return combinator.first ?\n // Check against closest ancestor/preceding element\n function (elem, context, xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n return matcher(elem, context, xml);\n }\n }\n return false;\n } :\n // Check against all ancestor/preceding elements\n function (elem, context, xml) {\n var oldCache,\n uniqueCache,\n outerCache,\n newCache = [dirruns, doneName];\n\n // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n if (xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n if (matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n } else {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n outerCache = elem[expando] || (elem[expando] = {});\n\n // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n uniqueCache = outerCache[elem.uniqueID] || (outerCache[elem.uniqueID] = {});\n if (skip && skip === elem.nodeName.toLowerCase()) {\n elem = elem[dir] || elem;\n } else if ((oldCache = uniqueCache[key]) && oldCache[0] === dirruns && oldCache[1] === doneName) {\n // Assign to newCache so results back-propagate to previous elements\n return newCache[2] = oldCache[2];\n } else {\n // Reuse newcache so results back-propagate to previous elements\n uniqueCache[key] = newCache;\n\n // A match means we're done; a fail means we have to keep checking\n if (newCache[2] = matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n }\n }\n return false;\n };\n }\n function elementMatcher(matchers) {\n return matchers.length > 1 ? function (elem, context, xml) {\n var i = matchers.length;\n while (i--) {\n if (!matchers[i](elem, context, xml)) {\n return false;\n }\n }\n return true;\n } : matchers[0];\n }\n function multipleContexts(selector, contexts, results) {\n var i = 0,\n len = contexts.length;\n for (; i < len; i++) {\n Sizzle(selector, contexts[i], results);\n }\n return results;\n }\n function condense(unmatched, map, filter, context, xml) {\n var elem,\n newUnmatched = [],\n i = 0,\n len = unmatched.length,\n mapped = map != null;\n for (; i < len; i++) {\n if (elem = unmatched[i]) {\n if (!filter || filter(elem, context, xml)) {\n newUnmatched.push(elem);\n if (mapped) {\n map.push(i);\n }\n }\n }\n }\n return newUnmatched;\n }\n function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\n if (postFilter && !postFilter[expando]) {\n postFilter = setMatcher(postFilter);\n }\n if (postFinder && !postFinder[expando]) {\n postFinder = setMatcher(postFinder, postSelector);\n }\n return markFunction(function (seed, results, context, xml) {\n var temp,\n i,\n elem,\n preMap = [],\n postMap = [],\n preexisting = results.length,\n // Get initial elements from seed or context\n elems = seed || multipleContexts(selector || \"*\", context.nodeType ? [context] : context, []),\n // Prefilter to get matcher input, preserving a map for seed-results synchronization\n matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems,\n matcherOut = matcher ?\n // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n postFinder || (seed ? preFilter : preexisting || postFilter) ?\n // ...intermediate processing is necessary\n [] :\n // ...otherwise use results directly\n results : matcherIn;\n\n // Find primary matches\n if (matcher) {\n matcher(matcherIn, matcherOut, context, xml);\n }\n\n // Apply postFilter\n if (postFilter) {\n temp = condense(matcherOut, postMap);\n postFilter(temp, [], context, xml);\n\n // Un-match failing elements by moving them back to matcherIn\n i = temp.length;\n while (i--) {\n if (elem = temp[i]) {\n matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\n }\n }\n }\n if (seed) {\n if (postFinder || preFilter) {\n if (postFinder) {\n // Get the final matcherOut by condensing this intermediate into postFinder contexts\n temp = [];\n i = matcherOut.length;\n while (i--) {\n if (elem = matcherOut[i]) {\n // Restore matcherIn since elem is not yet a final match\n temp.push(matcherIn[i] = elem);\n }\n }\n postFinder(null, matcherOut = [], temp, xml);\n }\n\n // Move matched elements from seed to results to keep them synchronized\n i = matcherOut.length;\n while (i--) {\n if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf(seed, elem) : preMap[i]) > -1) {\n seed[temp] = !(results[temp] = elem);\n }\n }\n }\n\n // Add elements to results, through postFinder if defined\n } else {\n matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut);\n if (postFinder) {\n postFinder(null, results, matcherOut, xml);\n } else {\n push.apply(results, matcherOut);\n }\n }\n });\n }\n function matcherFromTokens(tokens) {\n var checkContext,\n matcher,\n j,\n len = tokens.length,\n leadingRelative = Expr.relative[tokens[0].type],\n implicitRelative = leadingRelative || Expr.relative[\" \"],\n i = leadingRelative ? 1 : 0,\n // The foundational matcher ensures that elements are reachable from top-level context(s)\n matchContext = addCombinator(function (elem) {\n return elem === checkContext;\n }, implicitRelative, true),\n matchAnyContext = addCombinator(function (elem) {\n return indexOf(checkContext, elem) > -1;\n }, implicitRelative, true),\n matchers = [function (elem, context, xml) {\n var ret = !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml));\n\n // Avoid hanging onto element (issue #299)\n checkContext = null;\n return ret;\n }];\n for (; i < len; i++) {\n if (matcher = Expr.relative[tokens[i].type]) {\n matchers = [addCombinator(elementMatcher(matchers), matcher)];\n } else {\n matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches);\n\n // Return special upon seeing a positional matcher\n if (matcher[expando]) {\n // Find the next relative operator (if any) for proper handling\n j = ++i;\n for (; j < len; j++) {\n if (Expr.relative[tokens[j].type]) {\n break;\n }\n }\n return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector(\n // If the preceding token was a descendant combinator, insert an implicit any-element `*`\n tokens.slice(0, i - 1).concat({\n value: tokens[i - 2].type === \" \" ? \"*\" : \"\"\n })).replace(rtrim, \"$1\"), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens));\n }\n matchers.push(matcher);\n }\n }\n return elementMatcher(matchers);\n }\n function matcherFromGroupMatchers(elementMatchers, setMatchers) {\n var bySet = setMatchers.length > 0,\n byElement = elementMatchers.length > 0,\n superMatcher = function (seed, context, xml, results, outermost) {\n var elem,\n j,\n matcher,\n matchedCount = 0,\n i = \"0\",\n unmatched = seed && [],\n setMatched = [],\n contextBackup = outermostContext,\n // We must always have either seed elements or outermost context\n elems = seed || byElement && Expr.find[\"TAG\"](\"*\", outermost),\n // Use integer dirruns iff this is the outermost matcher\n dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1,\n len = elems.length;\n if (outermost) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n outermostContext = context == document || context || outermost;\n }\n\n // Add elements passing elementMatchers directly to results\n // Support: IE<9, Safari\n // Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n for (; i !== len && (elem = elems[i]) != null; i++) {\n if (byElement && elem) {\n j = 0;\n\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (!context && elem.ownerDocument != document) {\n setDocument(elem);\n xml = !documentIsHTML;\n }\n while (matcher = elementMatchers[j++]) {\n if (matcher(elem, context || document, xml)) {\n results.push(elem);\n break;\n }\n }\n if (outermost) {\n dirruns = dirrunsUnique;\n }\n }\n\n // Track unmatched elements for set filters\n if (bySet) {\n // They will have gone through all possible matchers\n if (elem = !matcher && elem) {\n matchedCount--;\n }\n\n // Lengthen the array for every element, matched or not\n if (seed) {\n unmatched.push(elem);\n }\n }\n }\n\n // `i` is now the count of elements visited above, and adding it to `matchedCount`\n // makes the latter nonnegative.\n matchedCount += i;\n\n // Apply set filters to unmatched elements\n // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n // equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n // no element matchers and no seed.\n // Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n // case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n // numerically zero.\n if (bySet && i !== matchedCount) {\n j = 0;\n while (matcher = setMatchers[j++]) {\n matcher(unmatched, setMatched, context, xml);\n }\n if (seed) {\n // Reintegrate element matches to eliminate the need for sorting\n if (matchedCount > 0) {\n while (i--) {\n if (!(unmatched[i] || setMatched[i])) {\n setMatched[i] = pop.call(results);\n }\n }\n }\n\n // Discard index placeholder values to get only actual matches\n setMatched = condense(setMatched);\n }\n\n // Add matches to results\n push.apply(results, setMatched);\n\n // Seedless set matches succeeding multiple successful matchers stipulate sorting\n if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {\n Sizzle.uniqueSort(results);\n }\n }\n\n // Override manipulation of globals by nested matchers\n if (outermost) {\n dirruns = dirrunsUnique;\n outermostContext = contextBackup;\n }\n return unmatched;\n };\n return bySet ? markFunction(superMatcher) : superMatcher;\n }\n compile = Sizzle.compile = function (selector, match /* Internal Use Only */) {\n var i,\n setMatchers = [],\n elementMatchers = [],\n cached = compilerCache[selector + \" \"];\n if (!cached) {\n // Generate a function of recursive functions that can be used to check each element\n if (!match) {\n match = tokenize(selector);\n }\n i = match.length;\n while (i--) {\n cached = matcherFromTokens(match[i]);\n if (cached[expando]) {\n setMatchers.push(cached);\n } else {\n elementMatchers.push(cached);\n }\n }\n\n // Cache the compiled function\n cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers));\n\n // Save selector and tokenization\n cached.selector = selector;\n }\n return cached;\n };\n\n /**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\n select = Sizzle.select = function (selector, context, results, seed) {\n var i,\n tokens,\n token,\n type,\n find,\n compiled = typeof selector === \"function\" && selector,\n match = !seed && tokenize(selector = compiled.selector || selector);\n results = results || [];\n\n // Try to minimize operations if there is only one selector in the list and no seed\n // (the latter of which guarantees us context)\n if (match.length === 1) {\n // Reduce context if the leading compound selector is an ID\n tokens = match[0] = match[0].slice(0);\n if (tokens.length > 2 && (token = tokens[0]).type === \"ID\" && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\n context = (Expr.find[\"ID\"](token.matches[0].replace(runescape, funescape), context) || [])[0];\n if (!context) {\n return results;\n\n // Precompiled matchers will still verify ancestry, so step up a level\n } else if (compiled) {\n context = context.parentNode;\n }\n selector = selector.slice(tokens.shift().value.length);\n }\n\n // Fetch a seed set for right-to-left matching\n i = matchExpr[\"needsContext\"].test(selector) ? 0 : tokens.length;\n while (i--) {\n token = tokens[i];\n\n // Abort if we hit a combinator\n if (Expr.relative[type = token.type]) {\n break;\n }\n if (find = Expr.find[type]) {\n // Search, expanding context for leading sibling combinators\n if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) {\n // If seed is empty or no tokens remain, we can return early\n tokens.splice(i, 1);\n selector = seed.length && toSelector(tokens);\n if (!selector) {\n push.apply(results, seed);\n return results;\n }\n break;\n }\n }\n }\n }\n\n // Compile and execute a filtering function if one is not provided\n // Provide `match` to avoid retokenization if we modified the selector above\n (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, !context || rsibling.test(selector) && testContext(context.parentNode) || context);\n return results;\n };\n\n // One-time assignments\n\n // Sort stability\n support.sortStable = expando.split(\"\").sort(sortOrder).join(\"\") === expando;\n\n // Support: Chrome 14-35+\n // Always assume duplicates if they aren't passed to the comparison function\n support.detectDuplicates = !!hasDuplicate;\n\n // Initialize against the default document\n setDocument();\n\n // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n // Detached nodes confoundingly follow *each other*\n support.sortDetached = assert(function (el) {\n // Should return 1, but returns 4 (following)\n return el.compareDocumentPosition(document.createElement(\"fieldset\")) & 1;\n });\n\n // Support: IE<8\n // Prevent attribute/property \"interpolation\"\n // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\n if (!assert(function (el) {\n el.innerHTML = \"\";\n return el.firstChild.getAttribute(\"href\") === \"#\";\n })) {\n addHandle(\"type|href|height|width\", function (elem, name, isXML) {\n if (!isXML) {\n return elem.getAttribute(name, name.toLowerCase() === \"type\" ? 1 : 2);\n }\n });\n }\n\n // Support: IE<9\n // Use defaultValue in place of getAttribute(\"value\")\n if (!support.attributes || !assert(function (el) {\n el.innerHTML = \"\";\n el.firstChild.setAttribute(\"value\", \"\");\n return el.firstChild.getAttribute(\"value\") === \"\";\n })) {\n addHandle(\"value\", function (elem, _name, isXML) {\n if (!isXML && elem.nodeName.toLowerCase() === \"input\") {\n return elem.defaultValue;\n }\n });\n }\n\n // Support: IE<9\n // Use getAttributeNode to fetch booleans when getAttribute lies\n if (!assert(function (el) {\n return el.getAttribute(\"disabled\") == null;\n })) {\n addHandle(booleans, function (elem, name, isXML) {\n var val;\n if (!isXML) {\n return elem[name] === true ? name.toLowerCase() : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n }\n });\n }\n\n // EXPOSE\n var _sizzle = window.Sizzle;\n Sizzle.noConflict = function () {\n if (window.Sizzle === Sizzle) {\n window.Sizzle = _sizzle;\n }\n return Sizzle;\n };\n if (typeof define === \"function\" && define.amd) {\n define(function () {\n return Sizzle;\n });\n\n // Sizzle requires that there be a global window in Common-JS like environments\n } else if (typeof module !== \"undefined\" && module.exports) {\n module.exports = Sizzle;\n } else {\n window.Sizzle = Sizzle;\n }\n\n // EXPOSE\n})(window);","define([\"../../core\"], function (jQuery) {\n \"use strict\";\n\n return function (elem, dir, until) {\n var matched = [],\n truncate = until !== undefined;\n while ((elem = elem[dir]) && elem.nodeType !== 9) {\n if (elem.nodeType === 1) {\n if (truncate && jQuery(elem).is(until)) {\n break;\n }\n matched.push(elem);\n }\n }\n return matched;\n };\n});","define(function () {\n \"use strict\";\n\n return function (n, elem) {\n var matched = [];\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== elem) {\n matched.push(n);\n }\n }\n return matched;\n };\n});","define([\"../core\", \"../deferred\"], function (jQuery) {\n \"use strict\";\n\n // These usually indicate a programmer mistake during development,\n // warn about them ASAP rather than swallowing them by default.\n var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n jQuery.Deferred.exceptionHook = function (error, stack) {\n // Support: IE 8 - 9 only\n // Console exists when dev tools are open, which can happen at any time\n if (window.console && window.console.warn && error && rerrorNames.test(error.name)) {\n window.console.warn(\"jQuery.Deferred exception: \" + error.message, error.stack, stack);\n }\n };\n});","define([\"../core\"], function (jQuery) {\n \"use strict\";\n\n jQuery.readyException = function (error) {\n window.setTimeout(function () {\n throw error;\n });\n };\n});","define([\"./core\", \"./core/access\", \"./core/camelCase\", \"./data/var/dataPriv\", \"./data/var/dataUser\"], function (jQuery, access, camelCase, dataPriv, dataUser) {\n \"use strict\";\n\n //\tImplementation Summary\n //\n //\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n //\t2. Improve the module's maintainability by reducing the storage\n //\t\tpaths to a single mechanism.\n //\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n //\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n //\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n //\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n var rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n rmultiDash = /[A-Z]/g;\n function getData(data) {\n if (data === \"true\") {\n return true;\n }\n if (data === \"false\") {\n return false;\n }\n if (data === \"null\") {\n return null;\n }\n\n // Only convert to a number if it doesn't change the string\n if (data === +data + \"\") {\n return +data;\n }\n if (rbrace.test(data)) {\n return JSON.parse(data);\n }\n return data;\n }\n function dataAttr(elem, key, data) {\n var name;\n\n // If nothing was found internally, try to fetch any\n // data from the HTML5 data-* attribute\n if (data === undefined && elem.nodeType === 1) {\n name = \"data-\" + key.replace(rmultiDash, \"-$&\").toLowerCase();\n data = elem.getAttribute(name);\n if (typeof data === \"string\") {\n try {\n data = getData(data);\n } catch (e) {}\n\n // Make sure we set the data so it isn't changed later\n dataUser.set(elem, key, data);\n } else {\n data = undefined;\n }\n }\n return data;\n }\n jQuery.extend({\n hasData: function (elem) {\n return dataUser.hasData(elem) || dataPriv.hasData(elem);\n },\n data: function (elem, name, data) {\n return dataUser.access(elem, name, data);\n },\n removeData: function (elem, name) {\n dataUser.remove(elem, name);\n },\n // TODO: Now that all calls to _data and _removeData have been replaced\n // with direct calls to dataPriv methods, these can be deprecated.\n _data: function (elem, name, data) {\n return dataPriv.access(elem, name, data);\n },\n _removeData: function (elem, name) {\n dataPriv.remove(elem, name);\n }\n });\n jQuery.fn.extend({\n data: function (key, value) {\n var i,\n name,\n data,\n elem = this[0],\n attrs = elem && elem.attributes;\n\n // Gets all values\n if (key === undefined) {\n if (this.length) {\n data = dataUser.get(elem);\n if (elem.nodeType === 1 && !dataPriv.get(elem, \"hasDataAttrs\")) {\n i = attrs.length;\n while (i--) {\n // Support: IE 11 only\n // The attrs elements can be null (#14894)\n if (attrs[i]) {\n name = attrs[i].name;\n if (name.indexOf(\"data-\") === 0) {\n name = camelCase(name.slice(5));\n dataAttr(elem, name, data[name]);\n }\n }\n }\n dataPriv.set(elem, \"hasDataAttrs\", true);\n }\n }\n return data;\n }\n\n // Sets multiple values\n if (typeof key === \"object\") {\n return this.each(function () {\n dataUser.set(this, key);\n });\n }\n return access(this, function (value) {\n var data;\n\n // The calling jQuery object (element matches) is not empty\n // (and therefore has an element appears at this[ 0 ]) and the\n // `value` parameter was not undefined. An empty jQuery object\n // will result in `undefined` for elem = this[ 0 ] which will\n // throw an exception if an attempt to read a data cache is made.\n if (elem && value === undefined) {\n // Attempt to get data from the cache\n // The key will always be camelCased in Data\n data = dataUser.get(elem, key);\n if (data !== undefined) {\n return data;\n }\n\n // Attempt to \"discover\" the data in\n // HTML5 custom data-* attrs\n data = dataAttr(elem, key);\n if (data !== undefined) {\n return data;\n }\n\n // We tried really hard, but the data doesn't exist.\n return;\n }\n\n // Set the data...\n this.each(function () {\n // We always store the camelCased key\n dataUser.set(this, key, value);\n });\n }, null, value, arguments.length > 1, null, true);\n },\n removeData: function (key) {\n return this.each(function () {\n dataUser.remove(this, key);\n });\n }\n });\n return jQuery;\n});","define([\"../core\", \"../queue\", \"../effects\" // Delay is optional because of this dependency\n], function (jQuery) {\n \"use strict\";\n\n // Based off of the plugin by Clint Helfers, with permission.\n // https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\n jQuery.fn.delay = function (time, type) {\n time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;\n type = type || \"fx\";\n return this.queue(type, function (next, hooks) {\n var timeout = window.setTimeout(next, time);\n hooks.stop = function () {\n window.clearTimeout(timeout);\n };\n });\n };\n return jQuery.fn.delay;\n});","define([\"../core\", \"../data/var/dataPriv\", \"../css/var/isHiddenWithinTree\"], function (jQuery, dataPriv, isHiddenWithinTree) {\n \"use strict\";\n\n var defaultDisplayMap = {};\n function getDefaultDisplay(elem) {\n var temp,\n doc = elem.ownerDocument,\n nodeName = elem.nodeName,\n display = defaultDisplayMap[nodeName];\n if (display) {\n return display;\n }\n temp = doc.body.appendChild(doc.createElement(nodeName));\n display = jQuery.css(temp, \"display\");\n temp.parentNode.removeChild(temp);\n if (display === \"none\") {\n display = \"block\";\n }\n defaultDisplayMap[nodeName] = display;\n return display;\n }\n function showHide(elements, show) {\n var display,\n elem,\n values = [],\n index = 0,\n length = elements.length;\n\n // Determine new display value for elements that need to change\n for (; index < length; index++) {\n elem = elements[index];\n if (!elem.style) {\n continue;\n }\n display = elem.style.display;\n if (show) {\n // Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n // check is required in this first loop unless we have a nonempty display value (either\n // inline or about-to-be-restored)\n if (display === \"none\") {\n values[index] = dataPriv.get(elem, \"display\") || null;\n if (!values[index]) {\n elem.style.display = \"\";\n }\n }\n if (elem.style.display === \"\" && isHiddenWithinTree(elem)) {\n values[index] = getDefaultDisplay(elem);\n }\n } else {\n if (display !== \"none\") {\n values[index] = \"none\";\n\n // Remember what we're overwriting\n dataPriv.set(elem, \"display\", display);\n }\n }\n }\n\n // Set the display of the elements in a second loop to avoid constant reflow\n for (index = 0; index < length; index++) {\n if (values[index] != null) {\n elements[index].style.display = values[index];\n }\n }\n return elements;\n }\n jQuery.fn.extend({\n show: function () {\n return showHide(this, true);\n },\n hide: function () {\n return showHide(this);\n },\n toggle: function (state) {\n if (typeof state === \"boolean\") {\n return state ? this.show() : this.hide();\n }\n return this.each(function () {\n if (isHiddenWithinTree(this)) {\n jQuery(this).show();\n } else {\n jQuery(this).hide();\n }\n });\n }\n });\n return showHide;\n});","define(function () {\n \"use strict\";\n\n // A method for quickly swapping in/out CSS properties to get correct calculations.\n return function (elem, options, callback) {\n var ret,\n name,\n old = {};\n\n // Remember the old values, and insert the new ones\n for (name in options) {\n old[name] = elem.style[name];\n elem.style[name] = options[name];\n }\n ret = callback.call(elem);\n\n // Revert the old values\n for (name in options) {\n elem.style[name] = old[name];\n }\n return ret;\n };\n});","define([\"./cssExpand\"], function (cssExpand) {\n \"use strict\";\n\n return new RegExp(cssExpand.join(\"|\"), \"i\");\n});","define([\"../core\", \"../css/finalPropName\", \"../css\"], function (jQuery, finalPropName) {\n \"use strict\";\n\n function Tween(elem, options, prop, end, easing) {\n return new Tween.prototype.init(elem, options, prop, end, easing);\n }\n jQuery.Tween = Tween;\n Tween.prototype = {\n constructor: Tween,\n init: function (elem, options, prop, end, easing, unit) {\n this.elem = elem;\n this.prop = prop;\n this.easing = easing || jQuery.easing._default;\n this.options = options;\n this.start = this.now = this.cur();\n this.end = end;\n this.unit = unit || (jQuery.cssNumber[prop] ? \"\" : \"px\");\n },\n cur: function () {\n var hooks = Tween.propHooks[this.prop];\n return hooks && hooks.get ? hooks.get(this) : Tween.propHooks._default.get(this);\n },\n run: function (percent) {\n var eased,\n hooks = Tween.propHooks[this.prop];\n if (this.options.duration) {\n this.pos = eased = jQuery.easing[this.easing](percent, this.options.duration * percent, 0, 1, this.options.duration);\n } else {\n this.pos = eased = percent;\n }\n this.now = (this.end - this.start) * eased + this.start;\n if (this.options.step) {\n this.options.step.call(this.elem, this.now, this);\n }\n if (hooks && hooks.set) {\n hooks.set(this);\n } else {\n Tween.propHooks._default.set(this);\n }\n return this;\n }\n };\n Tween.prototype.init.prototype = Tween.prototype;\n Tween.propHooks = {\n _default: {\n get: function (tween) {\n var result;\n\n // Use a property on the element directly when it is not a DOM element,\n // or when there is no matching style property that exists.\n if (tween.elem.nodeType !== 1 || tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) {\n return tween.elem[tween.prop];\n }\n\n // Passing an empty string as a 3rd parameter to .css will automatically\n // attempt a parseFloat and fallback to a string if the parse fails.\n // Simple values such as \"10px\" are parsed to Float;\n // complex values such as \"rotate(1rad)\" are returned as-is.\n result = jQuery.css(tween.elem, tween.prop, \"\");\n\n // Empty strings, null, undefined and \"auto\" are converted to 0.\n return !result || result === \"auto\" ? 0 : result;\n },\n set: function (tween) {\n // Use step hook for back compat.\n // Use cssHook if its there.\n // Use .style if available and use plain properties where available.\n if (jQuery.fx.step[tween.prop]) {\n jQuery.fx.step[tween.prop](tween);\n } else if (tween.elem.nodeType === 1 && (jQuery.cssHooks[tween.prop] || tween.elem.style[finalPropName(tween.prop)] != null)) {\n jQuery.style(tween.elem, tween.prop, tween.now + tween.unit);\n } else {\n tween.elem[tween.prop] = tween.now;\n }\n }\n }\n };\n\n // Support: IE <=9 only\n // Panic based approach to setting things on disconnected nodes\n Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n set: function (tween) {\n if (tween.elem.nodeType && tween.elem.parentNode) {\n tween.elem[tween.prop] = tween.now;\n }\n }\n };\n jQuery.easing = {\n linear: function (p) {\n return p;\n },\n swing: function (p) {\n return 0.5 - Math.cos(p * Math.PI) / 2;\n },\n _default: \"swing\"\n };\n jQuery.fx = Tween.prototype.init;\n\n // Back compat <1.8 extension point\n jQuery.fx.step = {};\n});","define([\"./core\", \"./attributes/attr\", \"./attributes/prop\", \"./attributes/classes\", \"./attributes/val\"], function (jQuery) {\n \"use strict\";\n\n // Return jQuery for attributes-only inclusion\n return jQuery;\n});","define([\"../core\", \"../core/access\", \"../core/nodeName\", \"./support\", \"../var/rnothtmlwhite\", \"../selector\"], function (jQuery, access, nodeName, support, rnothtmlwhite) {\n \"use strict\";\n\n var boolHook,\n attrHandle = jQuery.expr.attrHandle;\n jQuery.fn.extend({\n attr: function (name, value) {\n return access(this, jQuery.attr, name, value, arguments.length > 1);\n },\n removeAttr: function (name) {\n return this.each(function () {\n jQuery.removeAttr(this, name);\n });\n }\n });\n jQuery.extend({\n attr: function (elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType;\n\n // Don't get/set attributes on text, comment and attribute nodes\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n }\n\n // Fallback to prop when attributes are not supported\n if (typeof elem.getAttribute === \"undefined\") {\n return jQuery.prop(elem, name, value);\n }\n\n // Attribute hooks are determined by the lowercase version\n // Grab necessary hook if one is defined\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n hooks = jQuery.attrHooks[name.toLowerCase()] || (jQuery.expr.match.bool.test(name) ? boolHook : undefined);\n }\n if (value !== undefined) {\n if (value === null) {\n jQuery.removeAttr(elem, name);\n return;\n }\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n elem.setAttribute(name, value + \"\");\n return value;\n }\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n ret = jQuery.find.attr(elem, name);\n\n // Non-existent attributes return null, we normalize to undefined\n return ret == null ? undefined : ret;\n },\n attrHooks: {\n type: {\n set: function (elem, value) {\n if (!support.radioValue && value === \"radio\" && nodeName(elem, \"input\")) {\n var val = elem.value;\n elem.setAttribute(\"type\", value);\n if (val) {\n elem.value = val;\n }\n return value;\n }\n }\n }\n },\n removeAttr: function (elem, value) {\n var name,\n i = 0,\n // Attribute names can contain non-HTML whitespace characters\n // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n attrNames = value && value.match(rnothtmlwhite);\n if (attrNames && elem.nodeType === 1) {\n while (name = attrNames[i++]) {\n elem.removeAttribute(name);\n }\n }\n }\n });\n\n // Hooks for boolean attributes\n boolHook = {\n set: function (elem, value, name) {\n if (value === false) {\n // Remove boolean attributes when set to false\n jQuery.removeAttr(elem, name);\n } else {\n elem.setAttribute(name, name);\n }\n return name;\n }\n };\n jQuery.each(jQuery.expr.match.bool.source.match(/\\w+/g), function (_i, name) {\n var getter = attrHandle[name] || jQuery.find.attr;\n attrHandle[name] = function (elem, name, isXML) {\n var ret,\n handle,\n lowercaseName = name.toLowerCase();\n if (!isXML) {\n // Avoid an infinite loop by temporarily removing this function from the getter\n handle = attrHandle[lowercaseName];\n attrHandle[lowercaseName] = ret;\n ret = getter(elem, name, isXML) != null ? lowercaseName : null;\n attrHandle[lowercaseName] = handle;\n }\n return ret;\n };\n });\n});","define([\"../core\", \"../core/stripAndCollapse\", \"../var/isFunction\", \"../var/rnothtmlwhite\", \"../data/var/dataPriv\", \"../core/init\"], function (jQuery, stripAndCollapse, isFunction, rnothtmlwhite, dataPriv) {\n \"use strict\";\n\n function getClass(elem) {\n return elem.getAttribute && elem.getAttribute(\"class\") || \"\";\n }\n function classesToArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n if (typeof value === \"string\") {\n return value.match(rnothtmlwhite) || [];\n }\n return [];\n }\n jQuery.fn.extend({\n addClass: function (value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).addClass(value.call(this, j, getClass(this)));\n });\n }\n classes = classesToArray(value);\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem);\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n if (cur) {\n j = 0;\n while (clazz = classes[j++]) {\n if (cur.indexOf(\" \" + clazz + \" \") < 0) {\n cur += clazz + \" \";\n }\n }\n\n // Only assign if different to avoid unneeded rendering.\n finalValue = stripAndCollapse(cur);\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n return this;\n },\n removeClass: function (value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).removeClass(value.call(this, j, getClass(this)));\n });\n }\n if (!arguments.length) {\n return this.attr(\"class\", \"\");\n }\n classes = classesToArray(value);\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem);\n\n // This expression is here for better compressibility (see addClass)\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n if (cur) {\n j = 0;\n while (clazz = classes[j++]) {\n // Remove *all* instances\n while (cur.indexOf(\" \" + clazz + \" \") > -1) {\n cur = cur.replace(\" \" + clazz + \" \", \" \");\n }\n }\n\n // Only assign if different to avoid unneeded rendering.\n finalValue = stripAndCollapse(cur);\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n return this;\n },\n toggleClass: function (value, stateVal) {\n var type = typeof value,\n isValidValue = type === \"string\" || Array.isArray(value);\n if (typeof stateVal === \"boolean\" && isValidValue) {\n return stateVal ? this.addClass(value) : this.removeClass(value);\n }\n if (isFunction(value)) {\n return this.each(function (i) {\n jQuery(this).toggleClass(value.call(this, i, getClass(this), stateVal), stateVal);\n });\n }\n return this.each(function () {\n var className, i, self, classNames;\n if (isValidValue) {\n // Toggle individual class names\n i = 0;\n self = jQuery(this);\n classNames = classesToArray(value);\n while (className = classNames[i++]) {\n // Check each className given, space separated list\n if (self.hasClass(className)) {\n self.removeClass(className);\n } else {\n self.addClass(className);\n }\n }\n\n // Toggle whole class name\n } else if (value === undefined || type === \"boolean\") {\n className = getClass(this);\n if (className) {\n // Store className if set\n dataPriv.set(this, \"__className__\", className);\n }\n\n // If the element has a class name or if we're passed `false`,\n // then remove the whole classname (if there was one, the above saved it).\n // Otherwise bring back whatever was previously saved (if anything),\n // falling back to the empty string if nothing was stored.\n if (this.setAttribute) {\n this.setAttribute(\"class\", className || value === false ? \"\" : dataPriv.get(this, \"__className__\") || \"\");\n }\n }\n });\n },\n hasClass: function (selector) {\n var className,\n elem,\n i = 0;\n className = \" \" + selector + \" \";\n while (elem = this[i++]) {\n if (elem.nodeType === 1 && (\" \" + stripAndCollapse(getClass(elem)) + \" \").indexOf(className) > -1) {\n return true;\n }\n }\n return false;\n }\n });\n});","define([\"../core\", \"../core/stripAndCollapse\", \"./support\", \"../core/nodeName\", \"../var/isFunction\", \"../core/init\"], function (jQuery, stripAndCollapse, support, nodeName, isFunction) {\n \"use strict\";\n\n var rreturn = /\\r/g;\n jQuery.fn.extend({\n val: function (value) {\n var hooks,\n ret,\n valueIsFunction,\n elem = this[0];\n if (!arguments.length) {\n if (elem) {\n hooks = jQuery.valHooks[elem.type] || jQuery.valHooks[elem.nodeName.toLowerCase()];\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, \"value\")) !== undefined) {\n return ret;\n }\n ret = elem.value;\n\n // Handle most common string cases\n if (typeof ret === \"string\") {\n return ret.replace(rreturn, \"\");\n }\n\n // Handle cases where value is null/undef or number\n return ret == null ? \"\" : ret;\n }\n return;\n }\n valueIsFunction = isFunction(value);\n return this.each(function (i) {\n var val;\n if (this.nodeType !== 1) {\n return;\n }\n if (valueIsFunction) {\n val = value.call(this, i, jQuery(this).val());\n } else {\n val = value;\n }\n\n // Treat null/undefined as \"\"; convert numbers to string\n if (val == null) {\n val = \"\";\n } else if (typeof val === \"number\") {\n val += \"\";\n } else if (Array.isArray(val)) {\n val = jQuery.map(val, function (value) {\n return value == null ? \"\" : value + \"\";\n });\n }\n hooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()];\n\n // If set returns undefined, fall back to normal setting\n if (!hooks || !(\"set\" in hooks) || hooks.set(this, val, \"value\") === undefined) {\n this.value = val;\n }\n });\n }\n });\n jQuery.extend({\n valHooks: {\n option: {\n get: function (elem) {\n var val = jQuery.find.attr(elem, \"value\");\n return val != null ? val :\n // Support: IE <=10 - 11 only\n // option.text throws exceptions (#14686, #14858)\n // Strip and collapse whitespace\n // https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n stripAndCollapse(jQuery.text(elem));\n }\n },\n select: {\n get: function (elem) {\n var value,\n option,\n i,\n options = elem.options,\n index = elem.selectedIndex,\n one = elem.type === \"select-one\",\n values = one ? null : [],\n max = one ? index + 1 : options.length;\n if (index < 0) {\n i = max;\n } else {\n i = one ? index : 0;\n }\n\n // Loop through all the selected options\n for (; i < max; i++) {\n option = options[i];\n\n // Support: IE <=9 only\n // IE8-9 doesn't update selected after form reset (#2551)\n if ((option.selected || i === index) &&\n // Don't return options that are disabled or in a disabled optgroup\n !option.disabled && (!option.parentNode.disabled || !nodeName(option.parentNode, \"optgroup\"))) {\n // Get the specific value for the option\n value = jQuery(option).val();\n\n // We don't need an array for one selects\n if (one) {\n return value;\n }\n\n // Multi-Selects return an array\n values.push(value);\n }\n }\n return values;\n },\n set: function (elem, value) {\n var optionSet,\n option,\n options = elem.options,\n values = jQuery.makeArray(value),\n i = options.length;\n while (i--) {\n option = options[i];\n\n /* eslint-disable no-cond-assign */\n\n if (option.selected = jQuery.inArray(jQuery.valHooks.option.get(option), values) > -1) {\n optionSet = true;\n }\n\n /* eslint-enable no-cond-assign */\n }\n\n // Force browsers to behave consistently when non-matching value is set\n if (!optionSet) {\n elem.selectedIndex = -1;\n }\n return values;\n }\n }\n }\n });\n\n // Radios and checkboxes getter/setter\n jQuery.each([\"radio\", \"checkbox\"], function () {\n jQuery.valHooks[this] = {\n set: function (elem, value) {\n if (Array.isArray(value)) {\n return elem.checked = jQuery.inArray(jQuery(elem).val(), value) > -1;\n }\n }\n };\n if (!support.checkOn) {\n jQuery.valHooks[this].get = function (elem) {\n return elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n };\n }\n });\n});","define([\"../core\", \"../data/var/dataPriv\", \"./support\", \"../event\", \"./trigger\"], function (jQuery, dataPriv, support) {\n \"use strict\";\n\n // Support: Firefox <=44\n // Firefox doesn't have focus(in | out) events\n // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n //\n // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n // focus(in | out) events fire after focus & blur events,\n // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n if (!support.focusin) {\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (orig, fix) {\n // Attach a single capturing handler on the document while someone wants focusin/focusout\n var handler = function (event) {\n jQuery.event.simulate(fix, event.target, jQuery.event.fix(event));\n };\n jQuery.event.special[fix] = {\n setup: function () {\n // Handle: regular nodes (via `this.ownerDocument`), window\n // (via `this.document`) & document (via `this`).\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix);\n if (!attaches) {\n doc.addEventListener(orig, handler, true);\n }\n dataPriv.access(doc, fix, (attaches || 0) + 1);\n },\n teardown: function () {\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix) - 1;\n if (!attaches) {\n doc.removeEventListener(orig, handler, true);\n dataPriv.remove(doc, fix);\n } else {\n dataPriv.access(doc, fix, attaches);\n }\n }\n };\n });\n }\n return jQuery;\n});","define([\"../var/support\"], function (support) {\n \"use strict\";\n\n support.focusin = \"onfocusin\" in window;\n return support;\n});","define([\"../ajax\"], function (jQuery) {\n \"use strict\";\n\n jQuery._evalUrl = function (url, options, doc) {\n return jQuery.ajax({\n url: url,\n // Make this explicit, since user can override this through ajaxSetup (#11264)\n type: \"GET\",\n dataType: \"script\",\n cache: true,\n async: false,\n global: false,\n // Only evaluate the response if it is successful (gh-4126)\n // dataFilter is not invoked for failure responses, so using it instead\n // of the default converter is kludgy but it works.\n converters: {\n \"text script\": function () {}\n },\n dataFilter: function (response) {\n jQuery.globalEval(response, options, doc);\n }\n });\n };\n return jQuery._evalUrl;\n});","define(function () {\n \"use strict\";\n\n return window.location;\n});","define([\"./core\", \"./var/isFunction\", \"./core/init\", \"./manipulation\",\n// clone\n\"./traversing\" // parent, contents\n], function (jQuery, isFunction) {\n \"use strict\";\n\n jQuery.fn.extend({\n wrapAll: function (html) {\n var wrap;\n if (this[0]) {\n if (isFunction(html)) {\n html = html.call(this[0]);\n }\n\n // The elements to wrap the target around\n wrap = jQuery(html, this[0].ownerDocument).eq(0).clone(true);\n if (this[0].parentNode) {\n wrap.insertBefore(this[0]);\n }\n wrap.map(function () {\n var elem = this;\n while (elem.firstElementChild) {\n elem = elem.firstElementChild;\n }\n return elem;\n }).append(this);\n }\n return this;\n },\n wrapInner: function (html) {\n if (isFunction(html)) {\n return this.each(function (i) {\n jQuery(this).wrapInner(html.call(this, i));\n });\n }\n return this.each(function () {\n var self = jQuery(this),\n contents = self.contents();\n if (contents.length) {\n contents.wrapAll(html);\n } else {\n self.append(html);\n }\n });\n },\n wrap: function (html) {\n var htmlIsFunction = isFunction(html);\n return this.each(function (i) {\n jQuery(this).wrapAll(htmlIsFunction ? html.call(this, i) : html);\n });\n },\n unwrap: function (selector) {\n this.parent(selector).not(\"body\").each(function () {\n jQuery(this).replaceWith(this.childNodes);\n });\n return this;\n }\n });\n return jQuery;\n});","define([\"../core\", \"../selector\"], function (jQuery) {\n \"use strict\";\n\n jQuery.expr.pseudos.hidden = function (elem) {\n return !jQuery.expr.pseudos.visible(elem);\n };\n jQuery.expr.pseudos.visible = function (elem) {\n return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\n };\n});","define([\"../core\", \"../var/support\", \"../ajax\"], function (jQuery, support) {\n \"use strict\";\n\n jQuery.ajaxSettings.xhr = function () {\n try {\n return new window.XMLHttpRequest();\n } catch (e) {}\n };\n var xhrSuccessStatus = {\n // File protocol always yields status code 0, assume 200\n 0: 200,\n // Support: IE <=9 only\n // #1450: sometimes IE returns 1223 when it should be 204\n 1223: 204\n },\n xhrSupported = jQuery.ajaxSettings.xhr();\n support.cors = !!xhrSupported && \"withCredentials\" in xhrSupported;\n support.ajax = xhrSupported = !!xhrSupported;\n jQuery.ajaxTransport(function (options) {\n var callback, errorCallback;\n\n // Cross domain only allowed if supported through XMLHttpRequest\n if (support.cors || xhrSupported && !options.crossDomain) {\n return {\n send: function (headers, complete) {\n var i,\n xhr = options.xhr();\n xhr.open(options.type, options.url, options.async, options.username, options.password);\n\n // Apply custom fields if provided\n if (options.xhrFields) {\n for (i in options.xhrFields) {\n xhr[i] = options.xhrFields[i];\n }\n }\n\n // Override mime type if needed\n if (options.mimeType && xhr.overrideMimeType) {\n xhr.overrideMimeType(options.mimeType);\n }\n\n // X-Requested-With header\n // For cross-domain requests, seeing as conditions for a preflight are\n // akin to a jigsaw puzzle, we simply never set it to be sure.\n // (it can always be set on a per-request basis or even using ajaxSetup)\n // For same-domain requests, won't change header if already provided.\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\";\n }\n\n // Set headers\n for (i in headers) {\n xhr.setRequestHeader(i, headers[i]);\n }\n\n // Callback\n callback = function (type) {\n return function () {\n if (callback) {\n callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null;\n if (type === \"abort\") {\n xhr.abort();\n } else if (type === \"error\") {\n // Support: IE <=9 only\n // On a manual native abort, IE9 throws\n // errors on any property access that is not readyState\n if (typeof xhr.status !== \"number\") {\n complete(0, \"error\");\n } else {\n complete(\n // File: protocol always yields status 0; see #8605, #14207\n xhr.status, xhr.statusText);\n }\n } else {\n complete(xhrSuccessStatus[xhr.status] || xhr.status, xhr.statusText,\n // Support: IE <=9 only\n // IE9 has no XHR2 but throws on binary (trac-11426)\n // For XHR2 non-text, let the caller handle it (gh-2498)\n (xhr.responseType || \"text\") !== \"text\" || typeof xhr.responseText !== \"string\" ? {\n binary: xhr.response\n } : {\n text: xhr.responseText\n }, xhr.getAllResponseHeaders());\n }\n }\n };\n };\n\n // Listen to events\n xhr.onload = callback();\n errorCallback = xhr.onerror = xhr.ontimeout = callback(\"error\");\n\n // Support: IE 9 only\n // Use onreadystatechange to replace onabort\n // to handle uncaught aborts\n if (xhr.onabort !== undefined) {\n xhr.onabort = errorCallback;\n } else {\n xhr.onreadystatechange = function () {\n // Check readyState before timeout as it changes\n if (xhr.readyState === 4) {\n // Allow onerror to be called first,\n // but that will not handle a native abort\n // Also, save errorCallback to a variable\n // as xhr.onerror cannot be accessed\n window.setTimeout(function () {\n if (callback) {\n errorCallback();\n }\n });\n }\n };\n }\n\n // Create the abort callback\n callback = callback(\"abort\");\n try {\n // Do send the request (this may raise an exception)\n xhr.send(options.hasContent && options.data || null);\n } catch (e) {\n // #14683: Only rethrow if this hasn't been notified as an error yet\n if (callback) {\n throw e;\n }\n }\n },\n abort: function () {\n if (callback) {\n callback();\n }\n }\n };\n }\n });\n});","define([\"../core\", \"../var/document\", \"../ajax\"], function (jQuery, document) {\n \"use strict\";\n\n // Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\n jQuery.ajaxPrefilter(function (s) {\n if (s.crossDomain) {\n s.contents.script = false;\n }\n });\n\n // Install script dataType\n jQuery.ajaxSetup({\n accepts: {\n script: \"text/javascript, application/javascript, \" + \"application/ecmascript, application/x-ecmascript\"\n },\n contents: {\n script: /\\b(?:java|ecma)script\\b/\n },\n converters: {\n \"text script\": function (text) {\n jQuery.globalEval(text);\n return text;\n }\n }\n });\n\n // Handle cache's special case and crossDomain\n jQuery.ajaxPrefilter(\"script\", function (s) {\n if (s.cache === undefined) {\n s.cache = false;\n }\n if (s.crossDomain) {\n s.type = \"GET\";\n }\n });\n\n // Bind script tag hack transport\n jQuery.ajaxTransport(\"script\", function (s) {\n // This transport only deals with cross domain or forced-by-attrs requests\n if (s.crossDomain || s.scriptAttrs) {\n var script, callback;\n return {\n send: function (_, complete) {\n script = jQuery(\"