{"version":3,"sources":["webpack:///./node_modules/vue-i18n/dist/vue-i18n.esm.js","webpack:///./src/App.vue?0c2c","webpack:///./src/components/bg.vue?5137","webpack:///src/components/bg.vue","webpack:///./src/components/bg.vue?88ba","webpack:///./src/components/bg.vue","webpack:///./src/components/loader.vue?f90c","webpack:///src/components/loader.vue","webpack:///./src/components/loader.vue?af05","webpack:///./src/components/loader.vue?1ad3","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./node_modules/vue-router/dist/vue-router.esm.js","webpack:///./src/router/index.js","webpack:///./src/store/index.js","webpack:///./src/utils/helpers.js","webpack:///./src/languages/da.js","webpack:///./src/languages/se.js","webpack:///./src/languages/no.js","webpack:///./src/languages/fi.js","webpack:///./src/application.js","webpack:///./node_modules/preloader/lib/util/getExtension.js","webpack:///./src/components/bg.vue?e3db","webpack:///./src/components/loader.vue?7543","webpack:///./node_modules/preloader/index.js","webpack:///./node_modules/preloader/lib/loaders/FileMeta.js","webpack:///./node_modules/vuex/dist/vuex.esm.js","webpack:///./node_modules/preloader/lib/index.js","webpack:///./node_modules/core-js/modules/es.math.hypot.js","webpack:///./node_modules/preloader/lib/util/getMimeFromURL.js","webpack:///./node_modules/base64mime/base64-mime.js","webpack:///./src/components/loader.vue?7e8a","webpack:///./node_modules/preloader/lib/util/stringToArrayBuffer.js","webpack:///./node_modules/preloader/lib/loaders/LoaderVideo.js","webpack:///./node_modules/preloader/lib/loaders/LoaderJSON.js","webpack:///./node_modules/core-js/internals/create-html.js","webpack:///./node_modules/vue-lottie/src/lottie.vue?146a","webpack:///node_modules/vue-lottie/src/lottie.vue","webpack:///./node_modules/vue-lottie/src/lottie.vue?4aae","webpack:///./node_modules/vue-lottie/src/lottie.vue","webpack:///./node_modules/lottie-web/build/player/lottie.js","webpack:///./node_modules/preloader/lib/util/parseHTTPHeader.js","webpack:///./node_modules/preloader/lib/loaders/LoaderAudio.js","webpack:///./node_modules/preloader/lib/loaders/LoaderBase.js","webpack:///./node_modules/preloader/lib/loaders/LoaderText.js","webpack:///./node_modules/preloader/lib/loaders/LoaderImage.js","webpack:///./node_modules/@heavyy/crate/src/functions/angle.js","webpack:///./node_modules/@heavyy/crate/src/functions/clamp.js","webpack:///./node_modules/@heavyy/crate/src/functions/lerp.js","webpack:///./node_modules/@heavyy/crate/src/functions/percentage.js","webpack:///./node_modules/core-js/internals/string-html-forced.js","webpack:///./node_modules/js-oop/js/Class.js","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/preloader/lib/util/isBase64.js","webpack:///./src/App.vue?4512","webpack:///./node_modules/js-oop/js/baseClass.js","webpack:///./node_modules/events/events.js"],"names":["numberFormatKeys","warn","msg","err","console","stack","error","isArray","Array","isObject","obj","isBoolean","val","isString","Object","prototype","toString","OBJECT_STRING","isPlainObject","call","isNull","undefined","isFunction","parseArgs","args","len","arguments","length","locale","params","looseClone","JSON","parse","stringify","remove","arr","item","index","indexOf","splice","includes","hasOwnProperty","hasOwn","key","merge","target","arguments$1","output","i","source","looseEqual","a","b","isObjectA","isObjectB","String","isArrayA","isArrayB","every","e","keysA","keys","keysB","escapeHtml","rawText","replace","escapeParams","forEach","extend","Vue","defineProperty","get","this","_i18n","$t","values","i18n","$i18n","_t","apply","_getMessages","concat","$tc","choice","_tc","$te","_te","$d","value","ref","d","$n","n","mixin","beforeCreate","options","$options","__i18n","VueI18n","localeMessages","messages","resource","mergeLocaleMessage","_i18nWatcher","watchI18nData","rootI18n","$root","root","formatter","fallbackLocale","formatFallbackMessages","silentTranslationWarn","silentFallbackWarn","pluralizationRules","preserveDirectiveContent","localeMessages$1","sharedMessages","sync","_localeWatcher","watchLocale","onComponentInstanceCreated","parent","beforeMount","subscribeDataChanging","_subscribing","beforeDestroy","self","$nextTick","unsubscribeDataChanging","destroyVM","interpolationComponent","name","functional","props","tag","type","Boolean","default","path","required","places","render","h","data","slots","children","onlyHasDefaultPlace","useLegacyPlaces","prop","createParamsFromPlaces","filter","child","text","trim","everyPlace","vnodeHasPlaceAttribute","reduce","assignChildPlace","assignChildIndex","assign","attrs","place","vnode","numberComponent","Number","format","acc","parts","_ntp","map","part","slot","scopedSlots","staticClass","bind","el","binding","assert","t","update","oldVNode","context","localeEqual","oldValue","_localeMessage","getLocaleMessage","unbind","vm","modifiers","preserve","textContent","_vt","_locale","ref$1","ref$2","parseValue","tc","makeParams","push","install","_Vue","installed","version","split","directive","component","strats","config","optionMergeStrategies","parentVal","childVal","BaseFormatter","_caches","create","interpolate","message","tokens","compile","RE_TOKEN_LIST_VALUE","RE_TOKEN_NAMED_VALUE","position","char","sub","isClosed","test","compiled","mode","token","parseInt","APPEND","PUSH","INC_SUB_PATH_DEPTH","PUSH_SUB_PATH","BEFORE_PATH","IN_PATH","BEFORE_IDENT","IN_IDENT","IN_SUB_PATH","IN_SINGLE_QUOTE","IN_DOUBLE_QUOTE","AFTER_PATH","ERROR","pathStateMachine","literalValueRE","isLiteral","exp","stripQuotes","str","charCodeAt","slice","getPathCharType","ch","code","formatSubPath","trimmed","charAt","isNaN","parse$1","c","newChar","transition","action","typeMap","subPathDepth","actions","maybeUnescapeQuote","nextChar","I18nPath","_cache","parsePath","hit","getPathValue","paths","last","availabilities","htmlTagMatcher","linkKeyMatcher","linkKeyPrefixMatcher","bracketsMatcher","defaultModifiers","toLocaleUpperCase","toLocaleLowerCase","substr","defaultFormatter","this$1","window","dateTimeFormats","numberFormats","_vm","_formatter","_modifiers","_missing","missing","_root","_sync","_fallbackRoot","fallbackRoot","_formatFallbackMessages","_silentTranslationWarn","_silentFallbackWarn","_dateTimeFormatters","_numberFormatters","_path","_dataListeners","_componentInstanceCreatedListener","componentInstanceCreatedListener","_preserveDirectiveContent","_warnHtmlInMessage","warnHtmlInMessage","_postTranslation","postTranslation","_escapeParameterHtml","escapeParameterHtml","getChoiceIndex","choicesLength","thisPrototype","getPrototypeOf","prototypeGetChoiceIndex","defaultImpl","_choice","_choicesLength","Math","abs","min","_exist","_checkLocaleMessage","_initVM","prototypeAccessors","configurable","availableLocales","level","fn","pop","ret","join","silent","$destroy","$watch","nextTick","$forceUpdate","deep","$set","immediate","newI18n","_getDateTimeFormats","_getNumberFormats","sort","set","_localeChainCache","fallback","handler","orgLevel","_warnDefault","result","interpolateMode","missingRet","parsedArgs","_render","_isFallbackRoot","_isSilentFallbackWarn","RegExp","_isSilentFallback","_isSilentTranslationWarn","_interpolate","host","visitedLinkStack","pathRet","_link","matches","match","idx","link","linkKeyPrefixMatches","linkPrefix","formatterName","linkPlaceholder","translated","Error","_translate","_createMessageContext","_list","_named","list","named","_appendItemToChain","chain","blocks","follow","_appendLocaleToChain","_appendBlockToChain","block","_getLocaleChain","start","defaults","res","step","_i","predefined","fetchChoice","choices","te","setLocaleMessage","getDateTimeFormat","setDateTimeFormat","_clearDateTimeFormat","mergeDateTimeFormat","id","_localizeDateTime","formats","Intl","DateTimeFormat","_d","getNumberFormat","setNumberFormat","_clearNumberFormat","mergeNumberFormat","_getNumberFormatter","NumberFormat","_n","numberFormat","nf","formatToParts","defineProperties","intlDefined","dateTimeFormat","_h","$createElement","_c","_self","$store","state","_e","$route","fullPath","loadingCompleted","progress","staticRenderFns","class","fixed","domProps","$publicPath","methods","resize","wh","innerHeight","indexes","document","body","scrollHeight","animations","goToFrame","$refs","video","currentTime","frameToTime","frame","onScroll","scrollY","log","currentIndex","playing","playToFrom","from","to","killWhenReacing","play","timeToFrames","ts","FPS","frames","pause","requestAnimationFrame","computed","animationData","silo","autoplay","loop","on","$event","handleAnimation","_v","_s","components","LineAnim","anim","getDuration","playspeed","setSpeed","Loader","TheLogo","BackgroundVideo","floor","condition","View","_","routerView","route","cache","_routerViewCache","depth","inactive","_routerRoot","vnodeData","$vnode","keepAlive","_directInactive","_inactive","$parent","routerViewDepth","cachedData","cachedComponent","configProps","fillPropsinData","matched","registerRouteInstance","current","instances","hook","prepatch","componentInstance","init","propsToPass","resolveProps","encodeReserveRE","encodeReserveReplacer","commaRE","encode","encodeURIComponent","decode","decodeURIComponent","resolveQuery","query","extraQuery","_parseQuery","parsedQuery","parseQuery","castQueryParamValue","param","shift","stringifyQuery","val2","x","trailingSlashRE","createRoute","record","location","redirectedFrom","router","clone","meta","hash","getFullPath","formatMatch","freeze","START","unshift","_stringifyQuery","isSameRoute","isObjectEqual","aKeys","bKeys","aVal","bVal","isIncludedRoute","queryIncludes","resolvePath","relative","base","append","firstChar","segments","segment","hashIndex","queryIndex","cleanPath","isarray","pathToRegexp_1","pathToRegexp","parse_1","compile_1","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","defaultDelimiter","delimiter","exec","m","escaped","offset","next","prefix","capture","group","modifier","asterisk","partial","repeat","optional","pattern","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","toUpperCase","encodeAsterisk","flags","opts","pretty","TypeError","j","attachKeys","re","sensitive","regexpToRegexp","groups","arrayToRegexp","regexp","stringToRegexp","strict","end","endsWithDelimiter","regexpCompileCache","fillParams","routeMsg","filler","pathMatch","normalizeLocation","raw","_normalized","params$1","rawPath","parsedPath","basePath","toTypes","eventTypes","noop","Link","exact","activeClass","exactActiveClass","ariaCurrentValue","event","$router","resolve","href","classes","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","guardEvent","click","scopedSlot","$scopedSlots","$hasNormal","navigate","isActive","isExactActive","findAnchor","$slots","isStatic","aData","handler$1","event$1","aAttrs","metaKey","altKey","ctrlKey","shiftKey","defaultPrevented","button","currentTarget","getAttribute","preventDefault","isDef","v","registerInstance","callVal","_parentVnode","_router","util","defineReactive","history","destroyed","_route","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","created","inBrowser","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","pathList","pathMap","nameMap","addRouteRecord","l","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","regex","compileRouteRegex","redirect","beforeEnter","childMatchAs","alias","aliases","aliasRoute","createMatcher","addRoutes","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","Time","performance","now","Date","genStateKey","toFixed","_key","getStateKey","setStateKey","positionStore","setupScroll","scrollRestoration","protocolAndPath","protocol","absolutePath","stateCopy","replaceState","addEventListener","handlePopState","removeEventListener","handleScroll","isPop","app","behavior","scrollBehavior","getScrollPosition","shouldScroll","then","scrollToPosition","catch","saveScrollPosition","pageXOffset","y","pageYOffset","getElementPosition","docEl","documentElement","docRect","getBoundingClientRect","elRect","left","top","isValidPosition","isNumber","normalizePosition","normalizeOffset","hashStartsWithNumberRE","selector","getElementById","querySelector","scrollTo","supportsPushState","ua","navigator","userAgent","pushState","url","runQueue","queue","cb","NavigationFailureType","redirected","aborted","cancelled","duplicated","createNavigationRedirectedError","createRouterError","stringifyRoute","createNavigationDuplicatedError","createNavigationCancelledError","createNavigationAbortedError","_isRouter","propertiesToLog","isError","isNavigationFailure","errorType","resolveAsyncComponents","hasAsync","pending","flatMapComponents","def","cid","once","resolvedDef","isESModule","resolved","reject","reason","comp","flatten","hasSymbol","Symbol","toStringTag","__esModule","called","History","normalizeBase","ready","readyCbs","readyErrorCbs","errorCbs","listeners","baseEl","resolveQueue","max","updated","activated","deactivated","extractGuards","records","reverse","guards","instance","guard","extractGuard","extractLeaveGuards","bindGuard","extractUpdateHooks","extractEnterGuards","cbs","isValid","bindEnterGuard","poll","_isBeingDestroyed","setTimeout","listen","onReady","errorCb","onError","transitionTo","onComplete","onAbort","confirmTransition","prev","updateRoute","ensureURL","afterHooks","abort","lastRouteIndex","lastCurrentIndex","beforeHooks","iterator","postEnterCbs","enterGuards","resolveHooks","setupListeners","teardownListeners","cleanupListener","HTML5History","_startLocation","getLocation","__proto__","constructor","expectScroll","supportsScroll","handleRoutingEvent","go","fromRoute","getCurrentLocation","decodeURI","pathname","toLowerCase","search","HashHistory","checkFallback","ensureSlash","getHash","replaceHash","eventType","pushHash","searchIndex","getUrl","AbstractHistory","targetIndex","VueRouter","apps","matcher","registerHook","createHref","$once","handleInitialScroll","routeOrError","beforeEach","beforeResolve","afterEach","Promise","back","forward","getMatchedComponents","normalizedTo","use","process","Vuex","Store","mutations","SET_LOADER_PROGRESS","SET_LOADER_COMPLETED","completed","modules","VIDEO_FORMATS","vp9","vp8","h264","supportedVideoFormat","vid","createElement","canPlayType","loading","tagline","logo","mainSiteLabel","hero","title","subtitle","rawMaterials","stoneDescription","recycle","description","energy","part1","part2","oven","fluid","heat","spinner","stoneWool","products","recycling","construction","granulate","footer","imageCaption","contact","linkLabel","address","address2","city","phone","email","companyId","SoMe","links","mainSite","facebook","instagram","linkedin","twitter","productionTip","da","se","no","fi","localStorage","getItem","$loader","preloader","xhrImages","store","commit","t2","ms","r","files","require","file","add","mounted","bootstrap","vidFormat","addVideo","load","App","$mount","base64Mime","isBase64","module","exports","ext","mime","parseHTTPHeader","FileMeta","header","size","lastModified","httpHeader","setFromHTTPHeader","applyMixin","vuexInit","_init","global","devtoolHook","__VUE_DEVTOOLS_GLOBAL_HOOK__","devtoolPlugin","_devtoolHook","emit","targetState","subscribe","mutation","prepend","subscribeAction","find","f","deepCopy","original","copy","forEachValue","isPromise","arg","Module","rawModule","runtime","_children","_rawModule","rawState","namespaced","addChild","removeChild","getChild","hasChild","getters","forEachChild","forEachGetter","forEachAction","forEachMutation","ModuleCollection","rawRootModule","register","targetModule","newModule","getNamespace","namespace","rawChildModule","unregister","isRegistered","plugins","_committing","_actions","_actionSubscribers","_mutations","_wrappedGetters","_modules","_modulesNamespaceMap","_subscribers","_watcherVM","_makeLocalGettersCache","dispatch","payload","installModule","resetStoreVM","plugin","useDevtools","devtools","prototypeAccessors$1","genericSubscribe","subs","resetStore","hot","oldVm","wrappedGetters","enumerable","$$state","enableStrictMode","_withCommit","_data","rootState","isRoot","parentState","getNestedState","moduleName","local","makeLocalContext","namespacedType","registerMutation","registerAction","getter","registerGetter","noNamespace","_type","_payload","_options","unifyObjectStyle","makeLocalGetters","gettersProxy","splitPos","localType","entry","rootGetters","rawGetter","before","all","after","watch","registerModule","preserveState","unregisterModule","delete","hasModule","hotUpdate","newOptions","committing","mapState","normalizeNamespace","states","normalizeMap","getModuleByNamespace","vuex","mapMutations","mapGetters","mapActions","createNamespacedHelpers","isValidMap","helper","createLogger","collapsed","stateBefore","stateAfter","transformer","mutationTransformer","mut","actionFilter","actionTransformer","act","logMutations","logActions","logger","prevState","nextState","formattedTime","getFormattedTime","formattedMutation","startMessage","endMessage","formattedAction","groupCollapsed","groupEnd","time","pad","getHours","getMinutes","getSeconds","getMilliseconds","times","num","maxLength","Class","EventEmitter","getExtension","LoaderImage","LoaderText","LoaderJSON","LoaderVideo","LoaderAudio","LOADERS","png","jpg","jpeg","webp","gif","json","mp4","ogg","ogv","webm","mp3","wav","LOADER_DEFAULT","Preloader","Extends","initialize","parseOptions","onProgress","reset","loaders","_continueLoadQueue","throttle","mergeOptions","addFromLoaderType","_getLoader","addImage","addJSON","addText","addAudio","LoaderType","urls","setPercentage","percentageOfLoad","_setupPercentages","percTotal","loadIdx","status","stopLoad","content","percScale","numWOPerc","oneFilePerc","loader","_onLoadProgress","_onLoadError","_onLoadComplete","_checkComplete","curPerc","loaded","extension","$","$hypot","hypot","sqrt","BUGGY","Infinity","NaN","stat","forced","value1","value2","div","sum","aLen","larg","FILE_MIME","svg","html","css","csv","xml","base64MimeType","encoded","string","buf","ArrayBuffer","bufView","Uint16Array","strLen","LoaderBase","typeVideo","_parseContent","URL","createObjectURL","blobURL","loadType","src","typeJSON","requireObjectCoercible","quot","attribute","S","p1","style","factory","svgNS","locationHref","initialDefaultFrame","subframeEnabled","expressionsPlugin","isSafari","cachedColors","bm_rounder","round","bm_rnd","bm_pow","pow","bm_sqrt","bm_abs","bm_floor","bm_max","bm_min","blitter","BMMath","ProjectInterface","propertyNames","random","tOfVal","absArr","createSizedArray","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","flag","styleDiv","element","display","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","totalTime","frameMultiplier","direction","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","firstFrame","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","s","g","p","q","RGBtoHSV","addSaturationToRGB","color","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","hex","colorMap","BaseEvent","triggerEvent","eventName","_cbs","callback","createTypedArray","createRegularArray","Float32Array","Int16Array","Uint8ClampedArray","createNS","createElementNS","createTag","DynamicPropertyContainer","addDynamicProperty","dynamicProperties","container","_isAnimated","iterateDynamicProperties","_mdf","getValue","initDynamicPropertyContainer","getBlendMode","blendModeEnums","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","Matrix","_cos","cos","_sin","sin","_tan","tan","_rnd","rotate","angle","mCos","mSin","rotateX","rotateY","rotateZ","shear","sx","sy","skew","ax","ay","skewFromAxis","scale","sz","setTransform","k","o","translate","tx","ty","tz","transform","a2","b2","c2","d2","e2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","p2","_p","_identityCalculated","a1","b1","c1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","isIdentity","_identity","equals","matr","cloneFromProps","applyToPoint","z","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","pt","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","pt1","pt2","pt3","p0","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_a","_b","_f","pool","math","nodecrypto","width","chunks","digits","rngname","startdenom","significance","overflow","mask","seedrandom","seed","entropy","shortseed","mixkey","tostring","autoseed","arc4","ARC4","prng","int32","quick","double","pass","is_math_call","keylen","me","count","typ","smear","stringseed","randomBytes","out","Uint8Array","crypto","msCrypto","getRandomValues","browser","screen","fromCharCode","BezierFactory","ob","getBezierEasing","beziers","nm","bezEasing","BezierEasing","NEWTON_ITERATIONS","NEWTON_MIN_SLOPE","SUBDIVISION_PRECISION","SUBDIVISION_MAX_ITERATIONS","kSplineTableSize","kSampleStepSize","float32ArraySupported","A","aA1","aA2","B","C","calcBezier","aT","getSlope","binarySubdivide","aX","aA","aB","mX1","mX2","currentX","currentT","newtonRaphsonIterate","aGuessT","currentSlope","points","_mSampleValues","_precomputed","mY1","mY2","_precompute","_getTForX","_calcSampleValues","mSampleValues","intervalStart","currentSample","lastSample","dist","guessForT","initialSlope","extendPrototype","sources","destination","sourcePrototype","attr","getDescriptor","object","getOwnPropertyDescriptor","createProxyFunction","ProxyFunction","bezFunction","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","getBezierLength","pt4","ptCoord","perc","ptDistance","curveSegments","addedLength","point","lastPoint","lengthData","bezier_length_pool","newElement","percents","lengths","getSegmentsLength","shapeData","segmentsLength","segments_length_pool","closed","pathV","pathO","pathI","_length","totalLength","BezierData","segmentLength","PointData","partialLength","buildBezierData","storedData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","dir","getPointInSegment","percent","t1","u1","ptX","ptY","bezier_segment_points","getNewSegment","startPerc","endPerc","t0","u0","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","lastTime","vendors","cancelAnimationFrame","currTime","getTime","timeToCall","clearTimeout","bez","dataFunctionManager","completeLayers","layers","comps","fontManager","layerData","jLen","kLen","tt","td","hasMask","maskProps","masksProperties","convertPathsToAbsoluteValues","findCompLayers","refId","completeShapes","shapes","completeText","__used","ks","it","checkVersion","minimum","animVersionString","animVersion","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","assets","checkChars","chars","pathData","__converted","checkColors","iterateShapes","checkShapes","cl","completeData","__complete","singleShape","moduleOb","dataManager","FontManager","maxWaitingTime","emptyChar","w","combinedCharacters","trimFontOptions","font","familyArray","enabledFamilies","setUpNode","family","parentNode","fontFamily","node","innerText","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","appendChild","offsetWidth","checkLoadedFonts","fonts","loadedCount","fOrigin","origin","monoCase","sansCase","initTime","checkLoadedFontsBinded","setIsLoadedBinded","createHelper","fontData","tHelper","setAttribute","fFamily","fStyle","fWeight","fClass","tCanvasHelper","getContext","addFonts","defs","isLoaded","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","fPath","querySelectorAll","rel","sc","addChars","found","getCharData","measureText","fontName","getFontByName","doubleSize","getComputedTextLength","singleSize","fName","getCombinedCharacterCodes","setIsLoaded","Font","typekitLoaded","fontPrototype","PropertyFactory","initFrame","math_abs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","pv","keyData","nextKeyData","fnc","iterationIndex","lastIndex","keyframes","endValue","nextKeyTime","keyTime","ti","ind","__fnct","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","quatStart","createQuaternion","quatEnd","quaternionToEuler","slerp","omega","cosom","sinom","scale0","scale1","az","aw","bx","by","bz","bw","acos","quat","qx","qy","qz","qw","heading","atan2","attitude","asin","bank","c3","s1","s2","s3","getValueAtCurrentTime","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","processEffectsSequence","elem","globalData","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","ValueProperty","vel","MultiDimensionalProperty","KeyframedValueProperty","st","KeyframedMultidimensionalProperty","arrLen","getProp","TransformPropertyFactory","defaultVector","applyToMatrix","mat","sk","sa","rz","ry","rx","or","px","py","pz","processKeys","forceRender","_isDirty","precalculateMatrix","pre","appliedTransformations","autoOriented","v1","v2","frameRate","getValueAtTime","autoOrient","_addDynamicProperty","TransformProperty","getTransformProperty","ShapePath","_maxLength","setPathData","setLength","point_pool","doubleArrayLength","setXYAt","pos","setTripleAt","vX","vY","oX","oY","iX","iY","newPath","vertices","outPoints","inPoints","cnt","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","localShapeCollection","shapesEqual","shape1","shape2","shape_pool","releaseShapes","addShape","ShapeProperty","shapeCollection_pool","newShapeCollection","KeyframedShapeProperty","EllShapeProperty","cPoint","convertEllToPath","s0","_cw","StarShapeProperty","ir","is","convertToPath","convertStarToPath","convertPolygonToPath","os","rad","roundness","perimSegment","numPts","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","convertRectToPath","v0","getShapeProp","dataProp","getConstructorFunction","getKeyframedConstructorFunction","ShapeModifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","RoundCornersModifier","PuckerAndBloatModifier","RepeaterModifier","ShapeCollection","DashProperty","renderer","dataProps","dashStr","dashArray","dashoffset","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","initModifierProperties","addShapeToModifier","shape","setAsAnimated","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","release","processShapes","shapePaths","totalShapeLength","edges","newShapesData","addShapes","lastShapeInCollection","lastShape","addPaths","newPaths","addSegment","shapePath","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","rd","processPath","cloned_path","currentV","currentI","currentO","closerV","distance","newPosPerc","amount","centerPoint","pathLength","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","matrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","resetElements","elements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","items","itemsTransform","cont","copies","ceil","reloadShapes","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","op","comparePoints","diff","buildShapeString","pathNodes","_o","shapeString","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","audio","resume","setRate","rateValue","createAudio","assetPath","Howl","isPlaying","seek","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","ImagePreloader","proxyImage","canvas","height","ctx","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","imagesLoadedCb","getAssetsPath","assetData","assetsPath","original_path","imagePath","u","createImageData","img","_imageLoaded","setAttributeNS","createImgData","crossOrigin","loadAssets","images","_createImageData","setPath","setAssetsPath","getImage","destroy","setCacheType","featureSupport","maskType","filtersFactory","createFilter","filId","fil","createAlphaToLuminanceFilter","feColorMatrix","assetLoader","formatResponse","xhr","response","responseText","loadAsset","errorCallback","XMLHttpRequest","open","responseType","send","onreadystatechange","readyState","TextAnimatorProperty","textData","renderType","_hasMaskedPath","_frameId","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","TextAnimatorDataProperty","animatorProps","defaultData","textAnimator_animatables","sw","fc","fh","fs","fb","TextSelectorProp","getTextSelectorProp","LetterProps","TextProperty","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","of","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","searchProperties","maskManager","getMaskProperty","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","prevPoint","tanAngle","animators","matrixHelper","mHelper","renderedLettersCount","letters","tLength","pi","animatorSelector","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","currentLine","letterM","letterP","defaultPropsArray","animatorJustifyOffset","animatorFirstCharOffset","justifyOffsetMult","isNewLine","getMult","anIndexes","totalChars","line","extra","an","animatorOffset","rot","atan","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","textKeys","buildFinalText","charCode","charactersArray","newLineFlag","charData","styleName","anchorGrouping","currentSize","currentPos","lineWidth","maxLineWidth","styles","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","animatorData","letterData","based","rn","newInd","currentInd","updateDocumentData","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","_currentTextLength","finalS","finalE","xe","ne","textProperty","easer","tot","newCharsFlag","divisor","pool_factory","initialLength","_create","_release","_clone","pooling","cloned","shapeCollection","BaseRenderer","SVGRenderer","animationItem","svgElement","ariaLabel","titleElement","titleId","descElement","descId","maskElement","layerElement","renderConfig","preserveAspectRatio","imagePreserveAspectRatio","progressiveLoad","hideOnTransparent","viewBoxOnly","viewBoxSize","className","focusable","filterSize","pendingElements","rendererType","CanvasRenderer","clearCanvas","dpr","wrapper","devicePixelRatio","currentGlobalAlpha","contextData","CVContextData","transformMat","HybridRenderer","threeDElements","camera","supports3d","MaskElement","viewData","solidPath","rect","expansor","feMorph","properties","currentMasks","layerId","maskRef","filterID","expan","lastPath","lastOperator","filterId","lastRadius","createLayerSolidPath","invRect","drawPath","maskedElement","addRenderableComponent","HierarchyElement","FrameElement","TransformElement","RenderableElement","RenderableDOMElement","ProcessedElement","SVGStyleData","lvl","hd","pElem","msElem","SVGShapeData","transformers","caches","lStr","SVGTransformData","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","checkLayers","ip","buildItem","checkPendingElements","createItem","layer","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","AudioElement","buildAllItems","includeLayers","newLayers","setProjectInterface","pInterface","projectInterface","initItems","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","searchExtraCompositions","xt","initExpressions","registerComposition","setupGlobalData","animData","fontsContainer","getAssetData","imageLoader","imagePreloader","audioController","fr","compSize","NullElement","SVGShapeElement","SVGTextElement","IImageElement","SVGCompElement","ISolidElement","configAnimation","maskId","updateContainerSize","appendElementInPos","setMatte","checkParenting","renderFrame","currentFrame","prepareFrame","getBaseElement","nextElement","insertBefore","hide","show","CVShapeElement","CVTextElement","CVImageElement","CVCompElement","CVSolidElement","ctxTransform","cProps","cTr","trProps","canvasContext","ctxOpacity","globalAlpha","cO","restore","save","actionFlag","cArrPos","duplicate","saved","savedOp","blendMode","popped","mozTransformOrigin","transformCanvas","isDashed","elementWidth","elementHeight","elementRel","animationRel","offsetHeight","par","fillType","beginPath","closePath","clip","clearRect","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","tmpDOMElement","getThreeDContainerByPos","HShapeElement","HTextElement","HCameraElement","HImageElement","HCompElement","HSolidElement","startPos","endPos","perspectiveElem","createThreeDContainer","webkitTransform","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","setup","cWidth","cHeight","perspective","webkitPerspective","floatingContainer","isFirstFrame","finalMat","finalTransform","mProp","getMaskelement","pathString","pathShapeValue","initHierarchy","_isParent","prepareProperties","isVisible","initTransform","_matMdf","_opMdf","ao","renderTransform","globalToLocal","transforms","ptNew","initRenderable","isInRange","hidden","isTransparent","renderableComponents","removeRenderableComponent","prepareRenderableFrame","checkLayerLimits","checkTransparency","renderRenderable","sourceRectAtTime","getLayerSize","_prototype","initElement","initBaseData","initRendererElement","createContainerElements","createRenderableComponents","createContent","baseElement","renderElement","renderInnerContent","innerElem","destroyBaseElement","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","stop","gf","cst","opacityId","opFill","ost","SVGElementsRenderer","_identityMatrix","_matrixHelper","createRenderFunction","renderFill","renderGradient","renderGradientStroke","renderStroke","renderPath","renderContentTransform","styleData","itemData","pathStringTransformed","redraw","iterations","lLen","styleElem","hasOpacity","attr1","attr2","cValues","oValues","ang","ShapeTransformManager","sequences","sequenceList","transform_key_count","CVShapeData","transformsManager","styledShapes","styledShape","addTransformSequence","trNodes","BaseElement","SVGBaseElement","IShapeElement","ITextElement","ICompElement","sourceRect","_isPlaying","_canPlay","_currentTime","tm","_placeholder","textSpans","shapesData","stylesList","shapeModifiers","itemsData","processedElements","animatedContents","SVGTintFilter","filterManager","matrixFilter","effectElements","feMergeNode","feMerge","SVGFillFilter","SVGGaussianBlurEffect","feGaussianBlur","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","feOffset","feFlood","feComposite","originalNodeAdded","sequence","processSequence","processSequences","getNewKey","checkMasks","layerInterface","LayerExpressionInterface","registerMaskInterface","effectsInterface","EffectsExpressionInterface","createEffectsInterface","registerEffectsInterface","compInterface","CompExpressionInterface","shapeInterface","ShapeExpressionInterface","textInterface","TextExpressionInterface","setBlendMode","blendModeValue","bm","sr","effectsManager","EffectsManager","getType","matteElement","transformedElement","_sizeChanged","gg","layerElementParent","masker","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","ln","cp","clipId","cpGroup","renderableEffectsManager","SVGEffects","addShapeToModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","lcEnum","ljEnum","searchProcessedElement","addProcessedElement","textAnimator","buildNewText","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","timeRemapped","setElements","elems","getElements","destroyElements","pr","volumeValue","textContainer","buildTextContents","textArray","textContents","currentTextContent","tSpan","usesGlyphs","cachedSpansLength","tElement","justify","textBox","getBBox","bbox","renderedLetter","textSpan","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","gradientConstructor","lc","lj","ml","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","shapeProperty","setElementStyles","currentTransform","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","colorBlack","colorWhite","opacity","kBlurrinessToSigma","sigma","dimensions","sigmaX","sigmaY","edgeMode","groupPath","elemChildren","childNodes","removeAttribute","pathMasker","dasharrayValue","getTotalLength","lineLength","units","color1","color2","color3","tableR","tableG","tableB","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","table","outputDelta","inputDelta","col","_svgMatteSymbols","SVGMatte3Effect","filterElem","ef","filters","CVBaseElement","CVMaskElement","hasMasks","stroke","fill","currentRender","sWidth","fValue","CVEffects","HBaseElement","shapesContainer","currentBBox","textPaths","isMasked","pe","_prevMat","HEffects","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","symbol","newLength","currentSavedOp","createElements","globalCompositeOperation","hideElement","showElement","forceRealStack","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","drawImage","parentMatrix","moveTo","lineTo","bezierCurveTo","transformHelper","dashResetter","preTransforms","co","wi","do","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","strokeStyle","grd","lineCap","lineJoin","miterLimit","setLineDash","lineDashOffset","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","commands","pathArr","lastFill","lastStroke","lastStrokeW","checkBlendMode","tg","addEffects","backgroundColor","_createBaseContainerElements","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","boundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","bounds","shapeBoundingBox","xMax","right","yMax","bottom","tempBoundingBox","p3","b2ac","calculateF","calculateBoundingBox","currentBoxContains","box","changed","compW","compH","innerElemStyle","strokeWidth","lineHeight","tParent","tCont","textPath","margin","Image","imageElem","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","m_rotationX","m_rotationY","hasMatrixChanged","animationManager","registeredAnimations","playingAnimationsNum","_stopped","_isFrozen","removeElement","ev","animItem","animation","isPaused","subtractPlayingCount","registerAnimation","AnimationItem","setupAnimation","setData","getRegisteredAnimations","addPlayingCount","activate","loadAnimation","setParams","setDirection","nowTime","elapsedTime","advanceTime","first","goToAndStop","isFrame","togglePause","searchAnimations","standalone","animElements","getElementsByClassName","getElementsByTagName","unfreeze","currentRawFrame","frameMult","playSpeed","playDirection","playCount","animationID","timeCompleted","segmentPos","isSubframeEnabled","_idle","_completedLoop","animType","rendererSettings","autoloadSegments","initialSegment","lastIndexOf","fileName","trigger","wrapperAttributes","attributes","getNamedItem","prerender","loadNextSegment","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","updaFrameModifier","waitForFontsLoaded","triggerConfigError","gotoFrame","setSubframe","triggerRenderFrameError","setCurrentRawFrameValue","frameModifier","goToAndPlay","nextValue","_isComplete","checkSegments","adjustSegment","setSegment","pendingFrame","playSegments","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onSegmentStart","onDestroy","getPath","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","ExpressionManager","$bm_isInstanceOfArray","isNumerable","tOfV","$bm_neg","tOfA","lenA","retArr","easeInBez","easeOutBez","easeInOutBez","tOfB","lenB","mul","mod","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","clamp","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","arr2","normalize","vec","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","_tMin","rnd","rndm","createPath","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","property","needsVelocity","_needsRandom","elemType","$bm_transform","effect","thisProperty","valueAtTime","frameDuration","displayStartTime","inPoint","outPoint","loopIn","loop_in","loopOut","loop_out","smooth","toWorld","fromWorld","fromComp","toComp","fromCompToSurface","rotation","anchorPoint","thisLayer","thisComp","velocityAtTime","__expression_functions","scoped_bm_rt","xf","eval","expression_function","numKeys","active","wiggle","freq","amp","addedAmps","periods","loopInDuration","duration","loopOutDuration","getVelocityAtTime","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","yaw","easeOut","val1","applyEase","easeIn","ease","nearestKey","framesToTime","fps","seedRandom","randSeed","substring","posterizeTime","framesPerSecond","hasParent","executeExpression","_value","frameExpressionId","expressionHelpers","searchExpressions","_cachingAtTime","getSpeedAtTime","delta","speed","getStaticValueAtTime","setGroupProperty","propertyGroup","durationFlag","cycleDuration","firstKeyFrame","lastKeyFrame","initV","endV","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","endFrame","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","anchor","skewAxis","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","getShapeValueAtTime","shapeValue","propertyIndex","ix","ShapePropertyConstructorFunction","KeyframedShapePropertyConstructorFunction","ShapeExpressions","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","unitVector","tangentOnPath","normalOnPath","propertyGetShapeProp","trims","calculateExpression","getExpressionValue","isKeyframed","hasExpressions","ShapePathInterface","view","interfaceFunction","_propertyGroup","propertyGroupFactory","PropertyInterface","mn","parentPropertyGroup","propertyName","_name","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","contentsInterfaceFactory","interfaces","numProperties","transformInterface","transformInterfaceFactory","cix","np","ExpressionPropertyInterface","_dashPropertyGroup","dashOb","addPropertyToDashOb","outerRadius","outerRoundness","innerRoundness","innerRadius","radius","_interfaceFunction","_prevValue","_sourceText","_thisLayerFunction","sourceText","stringValue","toWorldMat","sampleImage","_registerMaskInterface","MaskManagerInterface","_registerEffectsInterface","effects","TransformExpressionInterface","anchorPointDescriptor","anchor_point","startTime","pixelAspect","numLayers","_thisFunction","xRotation","yRotation","xPosition","yPosition","zPosition","_transformFactory","_pz","_px","_py","compositions","_thisProjectFunction","effectsData","createGroupInterface","groupInterface","createValueInterface","enabled","en","expressionProperty","MaskInterface","_mask","MaskManager","_masksInterfaces","maskFunction","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","valueProp","speedAtTime","UnidimensionalPropertyInterface","MultidimensionalPropertyInterface","arrValue","defaultGetter","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","effectItem","GroupEffect","TextExpressionSelectorProp","getValueProxy","total","propertyGetTextProp","eff","lottie","setLocationHref","setSubframeRendering","setQuality","installPlugin","getFactory","checkReady","clearInterval","readyStateCheckInterval","getQueryVariable","variable","vars","queryString","pair","__getFactory","scripts","myScript","setInterval","headerString","headerSplit","rVal","typeAudio","stringToArrayBuffer","getMimeFromURL","typeText","loadTypeSet","fileMeta","_onStateChange","_onProgress","_dispatchProgress","_dispatchComplete","canLoadUsingXHR","canLoadType","tempXHR","checkAndSetType","onprogress","checkIfGoodValue","checkResponseTypeSupport","typeBlob","typeArraybuffer","overrideMimeType","_dispatchStart","_dispatchError","totalSize","waiting","getAllResponseHeaders","Blob","typeDocument","webkitURL","FileReader","_createAndLoadImage","_onImageLoadComplete","_onImageLoadFail","arrayBuffer","blobData","mozResponseArrayBuffer","reader","onloadend","revokeObjectURL","readAsDataURL","onload","onerror","fails","METHOD_NAME","BaseClass","descriptor","$$isConstructor","$$parentConstructor","$$getters","$$setters","$$name","$$owner","compare","scope","caller","parentFunction","callerName","isGetter","isSetter","createHTML","forcedStringHTMLMethod","proto","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","Function","ProcessEmitWarning","warning","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","that","_addListener","events","existing","newListener","warned","emitter","onceWrapper","fired","removeListener","wrapFn","_onceWrap","wrapped","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","eventListener","errorListener","RangeError","setMaxListeners","getMaxListeners","doError","er","addListener","prependListener","prependOnceListener","originalListener","off","removeAllListeners","rawListeners","eventNames"],"mappings":"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","file":"js/chunk-52686fdd.7431bdd6.js","sourcesContent":["/*!\n * vue-i18n v8.22.1 \n * (c) 2020 kazuya kawaguchi\n * Released under the MIT License.\n */\n/* */\n\n/**\n * constants\n */\n\nvar numberFormatKeys = [\n 'style',\n 'currency',\n 'currencyDisplay',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n 'localeMatcher',\n 'formatMatcher',\n 'unit'\n];\n\n/**\n * utilities\n */\n\nfunction warn (msg, err) {\n if (typeof console !== 'undefined') {\n console.warn('[vue-i18n] ' + msg);\n /* istanbul ignore if */\n if (err) {\n console.warn(err.stack);\n }\n }\n}\n\nfunction error (msg, err) {\n if (typeof console !== 'undefined') {\n console.error('[vue-i18n] ' + msg);\n /* istanbul ignore if */\n if (err) {\n console.error(err.stack);\n }\n }\n}\n\nvar isArray = Array.isArray;\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isBoolean (val) {\n return typeof val === 'boolean'\n}\n\nfunction isString (val) {\n return typeof val === 'string'\n}\n\nvar toString = Object.prototype.toString;\nvar OBJECT_STRING = '[object Object]';\nfunction isPlainObject (obj) {\n return toString.call(obj) === OBJECT_STRING\n}\n\nfunction isNull (val) {\n return val === null || val === undefined\n}\n\nfunction isFunction (val) {\n return typeof val === 'function'\n}\n\nfunction parseArgs () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var locale = null;\n var params = null;\n if (args.length === 1) {\n if (isObject(args[0]) || isArray(args[0])) {\n params = args[0];\n } else if (typeof args[0] === 'string') {\n locale = args[0];\n }\n } else if (args.length === 2) {\n if (typeof args[0] === 'string') {\n locale = args[0];\n }\n /* istanbul ignore if */\n if (isObject(args[1]) || isArray(args[1])) {\n params = args[1];\n }\n }\n\n return { locale: locale, params: params }\n}\n\nfunction looseClone (obj) {\n return JSON.parse(JSON.stringify(obj))\n}\n\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\nfunction includes (arr, item) {\n return !!~arr.indexOf(item)\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\nfunction merge (target) {\n var arguments$1 = arguments;\n\n var output = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments$1[i];\n if (source !== undefined && source !== null) {\n var key = (void 0);\n for (key in source) {\n if (hasOwn(source, key)) {\n if (isObject(source[key])) {\n output[key] = merge(output[key], source[key]);\n } else {\n output[key] = source[key];\n }\n }\n }\n }\n }\n return output\n}\n\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = isArray(a);\n var isArrayB = isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Sanitizes html special characters from input strings. For mitigating risk of XSS attacks.\n * @param rawText The raw input from the user that should be escaped.\n */\nfunction escapeHtml(rawText) {\n return rawText\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n}\n\n/**\n * Escapes html tags and special symbols from all provided params which were returned from parseArgs().params.\n * This method performs an in-place operation on the params object.\n *\n * @param {any} params Parameters as provided from `parseArgs().params`.\n * May be either an array of strings or a string->any map.\n *\n * @returns The manipulated `params` object.\n */\nfunction escapeParams(params) {\n if(params != null) {\n Object.keys(params).forEach(function (key) {\n if(typeof(params[key]) == 'string') {\n params[key] = escapeHtml(params[key]);\n }\n });\n }\n return params\n}\n\n/* */\n\nfunction extend (Vue) {\n if (!Vue.prototype.hasOwnProperty('$i18n')) {\n // $FlowFixMe\n Object.defineProperty(Vue.prototype, '$i18n', {\n get: function get () { return this._i18n }\n });\n }\n\n Vue.prototype.$t = function (key) {\n var values = [], len = arguments.length - 1;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 1 ];\n\n var i18n = this.$i18n;\n return i18n._t.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this ].concat( values ))\n };\n\n Vue.prototype.$tc = function (key, choice) {\n var values = [], len = arguments.length - 2;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 2 ];\n\n var i18n = this.$i18n;\n return i18n._tc.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this, choice ].concat( values ))\n };\n\n Vue.prototype.$te = function (key, locale) {\n var i18n = this.$i18n;\n return i18n._te(key, i18n.locale, i18n._getMessages(), locale)\n };\n\n Vue.prototype.$d = function (value) {\n var ref;\n\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n return (ref = this.$i18n).d.apply(ref, [ value ].concat( args ))\n };\n\n Vue.prototype.$n = function (value) {\n var ref;\n\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n return (ref = this.$i18n).n.apply(ref, [ value ].concat( args ))\n };\n}\n\n/* */\n\nvar mixin = {\n beforeCreate: function beforeCreate () {\n var options = this.$options;\n options.i18n = options.i18n || (options.__i18n ? {} : null);\n\n if (options.i18n) {\n if (options.i18n instanceof VueI18n) {\n // init locale messages via custom blocks\n if (options.__i18n) {\n try {\n var localeMessages = options.i18n && options.i18n.messages ? options.i18n.messages : {};\n options.__i18n.forEach(function (resource) {\n localeMessages = merge(localeMessages, JSON.parse(resource));\n });\n Object.keys(localeMessages).forEach(function (locale) {\n options.i18n.mergeLocaleMessage(locale, localeMessages[locale]);\n });\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n error(\"Cannot parse locale messages via custom blocks.\", e);\n }\n }\n }\n this._i18n = options.i18n;\n this._i18nWatcher = this._i18n.watchI18nData();\n } else if (isPlainObject(options.i18n)) {\n var rootI18n = this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n\n ? this.$root.$i18n\n : null;\n // component local i18n\n if (rootI18n) {\n options.i18n.root = this.$root;\n options.i18n.formatter = rootI18n.formatter;\n options.i18n.fallbackLocale = rootI18n.fallbackLocale;\n options.i18n.formatFallbackMessages = rootI18n.formatFallbackMessages;\n options.i18n.silentTranslationWarn = rootI18n.silentTranslationWarn;\n options.i18n.silentFallbackWarn = rootI18n.silentFallbackWarn;\n options.i18n.pluralizationRules = rootI18n.pluralizationRules;\n options.i18n.preserveDirectiveContent = rootI18n.preserveDirectiveContent;\n }\n\n // init locale messages via custom blocks\n if (options.__i18n) {\n try {\n var localeMessages$1 = options.i18n && options.i18n.messages ? options.i18n.messages : {};\n options.__i18n.forEach(function (resource) {\n localeMessages$1 = merge(localeMessages$1, JSON.parse(resource));\n });\n options.i18n.messages = localeMessages$1;\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Cannot parse locale messages via custom blocks.\", e);\n }\n }\n }\n\n var ref = options.i18n;\n var sharedMessages = ref.sharedMessages;\n if (sharedMessages && isPlainObject(sharedMessages)) {\n options.i18n.messages = merge(options.i18n.messages, sharedMessages);\n }\n\n this._i18n = new VueI18n(options.i18n);\n this._i18nWatcher = this._i18n.watchI18nData();\n\n if (options.i18n.sync === undefined || !!options.i18n.sync) {\n this._localeWatcher = this.$i18n.watchLocale();\n }\n\n if (rootI18n) {\n rootI18n.onComponentInstanceCreated(this._i18n);\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Cannot be interpreted 'i18n' option.\");\n }\n }\n } else if (this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n) {\n // root i18n\n this._i18n = this.$root.$i18n;\n } else if (options.parent && options.parent.$i18n && options.parent.$i18n instanceof VueI18n) {\n // parent i18n\n this._i18n = options.parent.$i18n;\n }\n },\n\n beforeMount: function beforeMount () {\n var options = this.$options;\n options.i18n = options.i18n || (options.__i18n ? {} : null);\n\n if (options.i18n) {\n if (options.i18n instanceof VueI18n) {\n // init locale messages via custom blocks\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else if (isPlainObject(options.i18n)) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Cannot be interpreted 'i18n' option.\");\n }\n }\n } else if (this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else if (options.parent && options.parent.$i18n && options.parent.$i18n instanceof VueI18n) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n }\n },\n\n beforeDestroy: function beforeDestroy () {\n if (!this._i18n) { return }\n\n var self = this;\n this.$nextTick(function () {\n if (self._subscribing) {\n self._i18n.unsubscribeDataChanging(self);\n delete self._subscribing;\n }\n\n if (self._i18nWatcher) {\n self._i18nWatcher();\n self._i18n.destroyVM();\n delete self._i18nWatcher;\n }\n\n if (self._localeWatcher) {\n self._localeWatcher();\n delete self._localeWatcher;\n }\n });\n }\n};\n\n/* */\n\nvar interpolationComponent = {\n name: 'i18n',\n functional: true,\n props: {\n tag: {\n type: [String, Boolean, Object],\n default: 'span'\n },\n path: {\n type: String,\n required: true\n },\n locale: {\n type: String\n },\n places: {\n type: [Array, Object]\n }\n },\n render: function render (h, ref) {\n var data = ref.data;\n var parent = ref.parent;\n var props = ref.props;\n var slots = ref.slots;\n\n var $i18n = parent.$i18n;\n if (!$i18n) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot find VueI18n instance!');\n }\n return\n }\n\n var path = props.path;\n var locale = props.locale;\n var places = props.places;\n var params = slots();\n var children = $i18n.i(\n path,\n locale,\n onlyHasDefaultPlace(params) || places\n ? useLegacyPlaces(params.default, places)\n : params\n );\n\n var tag = (!!props.tag && props.tag !== true) || props.tag === false ? props.tag : 'span';\n return tag ? h(tag, data, children) : children\n }\n};\n\nfunction onlyHasDefaultPlace (params) {\n var prop;\n for (prop in params) {\n if (prop !== 'default') { return false }\n }\n return Boolean(prop)\n}\n\nfunction useLegacyPlaces (children, places) {\n var params = places ? createParamsFromPlaces(places) : {};\n\n if (!children) { return params }\n\n // Filter empty text nodes\n children = children.filter(function (child) {\n return child.tag || child.text.trim() !== ''\n });\n\n var everyPlace = children.every(vnodeHasPlaceAttribute);\n if (process.env.NODE_ENV !== 'production' && everyPlace) {\n warn('`place` attribute is deprecated in next major version. Please switch to Vue slots.');\n }\n\n return children.reduce(\n everyPlace ? assignChildPlace : assignChildIndex,\n params\n )\n}\n\nfunction createParamsFromPlaces (places) {\n if (process.env.NODE_ENV !== 'production') {\n warn('`places` prop is deprecated in next major version. Please switch to Vue slots.');\n }\n\n return Array.isArray(places)\n ? places.reduce(assignChildIndex, {})\n : Object.assign({}, places)\n}\n\nfunction assignChildPlace (params, child) {\n if (child.data && child.data.attrs && child.data.attrs.place) {\n params[child.data.attrs.place] = child;\n }\n return params\n}\n\nfunction assignChildIndex (params, child, index) {\n params[index] = child;\n return params\n}\n\nfunction vnodeHasPlaceAttribute (vnode) {\n return Boolean(vnode.data && vnode.data.attrs && vnode.data.attrs.place)\n}\n\n/* */\n\nvar numberComponent = {\n name: 'i18n-n',\n functional: true,\n props: {\n tag: {\n type: [String, Boolean, Object],\n default: 'span'\n },\n value: {\n type: Number,\n required: true\n },\n format: {\n type: [String, Object]\n },\n locale: {\n type: String\n }\n },\n render: function render (h, ref) {\n var props = ref.props;\n var parent = ref.parent;\n var data = ref.data;\n\n var i18n = parent.$i18n;\n\n if (!i18n) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot find VueI18n instance!');\n }\n return null\n }\n\n var key = null;\n var options = null;\n\n if (isString(props.format)) {\n key = props.format;\n } else if (isObject(props.format)) {\n if (props.format.key) {\n key = props.format.key;\n }\n\n // Filter out number format options only\n options = Object.keys(props.format).reduce(function (acc, prop) {\n var obj;\n\n if (includes(numberFormatKeys, prop)) {\n return Object.assign({}, acc, ( obj = {}, obj[prop] = props.format[prop], obj ))\n }\n return acc\n }, null);\n }\n\n var locale = props.locale || i18n.locale;\n var parts = i18n._ntp(props.value, locale, key, options);\n\n var values = parts.map(function (part, index) {\n var obj;\n\n var slot = data.scopedSlots && data.scopedSlots[part.type];\n return slot ? slot(( obj = {}, obj[part.type] = part.value, obj.index = index, obj.parts = parts, obj )) : part.value\n });\n\n var tag = (!!props.tag && props.tag !== true) || props.tag === false ? props.tag : 'span';\n return tag\n ? h(tag, {\n attrs: data.attrs,\n 'class': data['class'],\n staticClass: data.staticClass\n }, values)\n : values\n }\n};\n\n/* */\n\nfunction bind (el, binding, vnode) {\n if (!assert(el, vnode)) { return }\n\n t(el, binding, vnode);\n}\n\nfunction update (el, binding, vnode, oldVNode) {\n if (!assert(el, vnode)) { return }\n\n var i18n = vnode.context.$i18n;\n if (localeEqual(el, vnode) &&\n (looseEqual(binding.value, binding.oldValue) &&\n looseEqual(el._localeMessage, i18n.getLocaleMessage(i18n.locale)))) { return }\n\n t(el, binding, vnode);\n}\n\nfunction unbind (el, binding, vnode, oldVNode) {\n var vm = vnode.context;\n if (!vm) {\n warn('Vue instance does not exists in VNode context');\n return\n }\n\n var i18n = vnode.context.$i18n || {};\n if (!binding.modifiers.preserve && !i18n.preserveDirectiveContent) {\n el.textContent = '';\n }\n el._vt = undefined;\n delete el['_vt'];\n el._locale = undefined;\n delete el['_locale'];\n el._localeMessage = undefined;\n delete el['_localeMessage'];\n}\n\nfunction assert (el, vnode) {\n var vm = vnode.context;\n if (!vm) {\n warn('Vue instance does not exists in VNode context');\n return false\n }\n\n if (!vm.$i18n) {\n warn('VueI18n instance does not exists in Vue instance');\n return false\n }\n\n return true\n}\n\nfunction localeEqual (el, vnode) {\n var vm = vnode.context;\n return el._locale === vm.$i18n.locale\n}\n\nfunction t (el, binding, vnode) {\n var ref$1, ref$2;\n\n var value = binding.value;\n\n var ref = parseValue(value);\n var path = ref.path;\n var locale = ref.locale;\n var args = ref.args;\n var choice = ref.choice;\n if (!path && !locale && !args) {\n warn('value type not supported');\n return\n }\n\n if (!path) {\n warn('`path` is required in v-t directive');\n return\n }\n\n var vm = vnode.context;\n if (choice != null) {\n el._vt = el.textContent = (ref$1 = vm.$i18n).tc.apply(ref$1, [ path, choice ].concat( makeParams(locale, args) ));\n } else {\n el._vt = el.textContent = (ref$2 = vm.$i18n).t.apply(ref$2, [ path ].concat( makeParams(locale, args) ));\n }\n el._locale = vm.$i18n.locale;\n el._localeMessage = vm.$i18n.getLocaleMessage(vm.$i18n.locale);\n}\n\nfunction parseValue (value) {\n var path;\n var locale;\n var args;\n var choice;\n\n if (isString(value)) {\n path = value;\n } else if (isPlainObject(value)) {\n path = value.path;\n locale = value.locale;\n args = value.args;\n choice = value.choice;\n }\n\n return { path: path, locale: locale, args: args, choice: choice }\n}\n\nfunction makeParams (locale, args) {\n var params = [];\n\n locale && params.push(locale);\n if (args && (Array.isArray(args) || isPlainObject(args))) {\n params.push(args);\n }\n\n return params\n}\n\nvar Vue;\n\nfunction install (_Vue) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && install.installed && _Vue === Vue) {\n warn('already installed.');\n return\n }\n install.installed = true;\n\n Vue = _Vue;\n\n var version = (Vue.version && Number(Vue.version.split('.')[0])) || -1;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && version < 2) {\n warn((\"vue-i18n (\" + (install.version) + \") need to use Vue 2.0 or later (Vue: \" + (Vue.version) + \").\"));\n return\n }\n\n extend(Vue);\n Vue.mixin(mixin);\n Vue.directive('t', { bind: bind, update: update, unbind: unbind });\n Vue.component(interpolationComponent.name, interpolationComponent);\n Vue.component(numberComponent.name, numberComponent);\n\n // use simple mergeStrategies to prevent i18n instance lose '__proto__'\n var strats = Vue.config.optionMergeStrategies;\n strats.i18n = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n };\n}\n\n/* */\n\nvar BaseFormatter = function BaseFormatter () {\n this._caches = Object.create(null);\n};\n\nBaseFormatter.prototype.interpolate = function interpolate (message, values) {\n if (!values) {\n return [message]\n }\n var tokens = this._caches[message];\n if (!tokens) {\n tokens = parse(message);\n this._caches[message] = tokens;\n }\n return compile(tokens, values)\n};\n\n\n\nvar RE_TOKEN_LIST_VALUE = /^(?:\\d)+/;\nvar RE_TOKEN_NAMED_VALUE = /^(?:\\w)+/;\n\nfunction parse (format) {\n var tokens = [];\n var position = 0;\n\n var text = '';\n while (position < format.length) {\n var char = format[position++];\n if (char === '{') {\n if (text) {\n tokens.push({ type: 'text', value: text });\n }\n\n text = '';\n var sub = '';\n char = format[position++];\n while (char !== undefined && char !== '}') {\n sub += char;\n char = format[position++];\n }\n var isClosed = char === '}';\n\n var type = RE_TOKEN_LIST_VALUE.test(sub)\n ? 'list'\n : isClosed && RE_TOKEN_NAMED_VALUE.test(sub)\n ? 'named'\n : 'unknown';\n tokens.push({ value: sub, type: type });\n } else if (char === '%') {\n // when found rails i18n syntax, skip text capture\n if (format[(position)] !== '{') {\n text += char;\n }\n } else {\n text += char;\n }\n }\n\n text && tokens.push({ type: 'text', value: text });\n\n return tokens\n}\n\nfunction compile (tokens, values) {\n var compiled = [];\n var index = 0;\n\n var mode = Array.isArray(values)\n ? 'list'\n : isObject(values)\n ? 'named'\n : 'unknown';\n if (mode === 'unknown') { return compiled }\n\n while (index < tokens.length) {\n var token = tokens[index];\n switch (token.type) {\n case 'text':\n compiled.push(token.value);\n break\n case 'list':\n compiled.push(values[parseInt(token.value, 10)]);\n break\n case 'named':\n if (mode === 'named') {\n compiled.push((values)[token.value]);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Type of token '\" + (token.type) + \"' and format of value '\" + mode + \"' don't match!\"));\n }\n }\n break\n case 'unknown':\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Detect 'unknown' type of token!\");\n }\n break\n }\n index++;\n }\n\n return compiled\n}\n\n/* */\n\n/**\n * Path parser\n * - Inspired:\n * Vue.js Path parser\n */\n\n// actions\nvar APPEND = 0;\nvar PUSH = 1;\nvar INC_SUB_PATH_DEPTH = 2;\nvar PUSH_SUB_PATH = 3;\n\n// states\nvar BEFORE_PATH = 0;\nvar IN_PATH = 1;\nvar BEFORE_IDENT = 2;\nvar IN_IDENT = 3;\nvar IN_SUB_PATH = 4;\nvar IN_SINGLE_QUOTE = 5;\nvar IN_DOUBLE_QUOTE = 6;\nvar AFTER_PATH = 7;\nvar ERROR = 8;\n\nvar pathStateMachine = [];\n\npathStateMachine[BEFORE_PATH] = {\n 'ws': [BEFORE_PATH],\n 'ident': [IN_IDENT, APPEND],\n '[': [IN_SUB_PATH],\n 'eof': [AFTER_PATH]\n};\n\npathStateMachine[IN_PATH] = {\n 'ws': [IN_PATH],\n '.': [BEFORE_IDENT],\n '[': [IN_SUB_PATH],\n 'eof': [AFTER_PATH]\n};\n\npathStateMachine[BEFORE_IDENT] = {\n 'ws': [BEFORE_IDENT],\n 'ident': [IN_IDENT, APPEND],\n '0': [IN_IDENT, APPEND],\n 'number': [IN_IDENT, APPEND]\n};\n\npathStateMachine[IN_IDENT] = {\n 'ident': [IN_IDENT, APPEND],\n '0': [IN_IDENT, APPEND],\n 'number': [IN_IDENT, APPEND],\n 'ws': [IN_PATH, PUSH],\n '.': [BEFORE_IDENT, PUSH],\n '[': [IN_SUB_PATH, PUSH],\n 'eof': [AFTER_PATH, PUSH]\n};\n\npathStateMachine[IN_SUB_PATH] = {\n \"'\": [IN_SINGLE_QUOTE, APPEND],\n '\"': [IN_DOUBLE_QUOTE, APPEND],\n '[': [IN_SUB_PATH, INC_SUB_PATH_DEPTH],\n ']': [IN_PATH, PUSH_SUB_PATH],\n 'eof': ERROR,\n 'else': [IN_SUB_PATH, APPEND]\n};\n\npathStateMachine[IN_SINGLE_QUOTE] = {\n \"'\": [IN_SUB_PATH, APPEND],\n 'eof': ERROR,\n 'else': [IN_SINGLE_QUOTE, APPEND]\n};\n\npathStateMachine[IN_DOUBLE_QUOTE] = {\n '\"': [IN_SUB_PATH, APPEND],\n 'eof': ERROR,\n 'else': [IN_DOUBLE_QUOTE, APPEND]\n};\n\n/**\n * Check if an expression is a literal value.\n */\n\nvar literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\nfunction isLiteral (exp) {\n return literalValueRE.test(exp)\n}\n\n/**\n * Strip quotes from a string\n */\n\nfunction stripQuotes (str) {\n var a = str.charCodeAt(0);\n var b = str.charCodeAt(str.length - 1);\n return a === b && (a === 0x22 || a === 0x27)\n ? str.slice(1, -1)\n : str\n}\n\n/**\n * Determine the type of a character in a keypath.\n */\n\nfunction getPathCharType (ch) {\n if (ch === undefined || ch === null) { return 'eof' }\n\n var code = ch.charCodeAt(0);\n\n switch (code) {\n case 0x5B: // [\n case 0x5D: // ]\n case 0x2E: // .\n case 0x22: // \"\n case 0x27: // '\n return ch\n\n case 0x5F: // _\n case 0x24: // $\n case 0x2D: // -\n return 'ident'\n\n case 0x09: // Tab\n case 0x0A: // Newline\n case 0x0D: // Return\n case 0xA0: // No-break space\n case 0xFEFF: // Byte Order Mark\n case 0x2028: // Line Separator\n case 0x2029: // Paragraph Separator\n return 'ws'\n }\n\n return 'ident'\n}\n\n/**\n * Format a subPath, return its plain form if it is\n * a literal string or number. Otherwise prepend the\n * dynamic indicator (*).\n */\n\nfunction formatSubPath (path) {\n var trimmed = path.trim();\n // invalid leading 0\n if (path.charAt(0) === '0' && isNaN(path)) { return false }\n\n return isLiteral(trimmed) ? stripQuotes(trimmed) : '*' + trimmed\n}\n\n/**\n * Parse a string path into an array of segments\n */\n\nfunction parse$1 (path) {\n var keys = [];\n var index = -1;\n var mode = BEFORE_PATH;\n var subPathDepth = 0;\n var c;\n var key;\n var newChar;\n var type;\n var transition;\n var action;\n var typeMap;\n var actions = [];\n\n actions[PUSH] = function () {\n if (key !== undefined) {\n keys.push(key);\n key = undefined;\n }\n };\n\n actions[APPEND] = function () {\n if (key === undefined) {\n key = newChar;\n } else {\n key += newChar;\n }\n };\n\n actions[INC_SUB_PATH_DEPTH] = function () {\n actions[APPEND]();\n subPathDepth++;\n };\n\n actions[PUSH_SUB_PATH] = function () {\n if (subPathDepth > 0) {\n subPathDepth--;\n mode = IN_SUB_PATH;\n actions[APPEND]();\n } else {\n subPathDepth = 0;\n if (key === undefined) { return false }\n key = formatSubPath(key);\n if (key === false) {\n return false\n } else {\n actions[PUSH]();\n }\n }\n };\n\n function maybeUnescapeQuote () {\n var nextChar = path[index + 1];\n if ((mode === IN_SINGLE_QUOTE && nextChar === \"'\") ||\n (mode === IN_DOUBLE_QUOTE && nextChar === '\"')) {\n index++;\n newChar = '\\\\' + nextChar;\n actions[APPEND]();\n return true\n }\n }\n\n while (mode !== null) {\n index++;\n c = path[index];\n\n if (c === '\\\\' && maybeUnescapeQuote()) {\n continue\n }\n\n type = getPathCharType(c);\n typeMap = pathStateMachine[mode];\n transition = typeMap[type] || typeMap['else'] || ERROR;\n\n if (transition === ERROR) {\n return // parse error\n }\n\n mode = transition[0];\n action = actions[transition[1]];\n if (action) {\n newChar = transition[2];\n newChar = newChar === undefined\n ? c\n : newChar;\n if (action() === false) {\n return\n }\n }\n\n if (mode === AFTER_PATH) {\n return keys\n }\n }\n}\n\n\n\n\n\nvar I18nPath = function I18nPath () {\n this._cache = Object.create(null);\n};\n\n/**\n * External parse that check for a cache hit first\n */\nI18nPath.prototype.parsePath = function parsePath (path) {\n var hit = this._cache[path];\n if (!hit) {\n hit = parse$1(path);\n if (hit) {\n this._cache[path] = hit;\n }\n }\n return hit || []\n};\n\n/**\n * Get path value from path string\n */\nI18nPath.prototype.getPathValue = function getPathValue (obj, path) {\n if (!isObject(obj)) { return null }\n\n var paths = this.parsePath(path);\n if (paths.length === 0) {\n return null\n } else {\n var length = paths.length;\n var last = obj;\n var i = 0;\n while (i < length) {\n var value = last[paths[i]];\n if (value === undefined) {\n return null\n }\n last = value;\n i++;\n }\n\n return last\n }\n};\n\n/* */\n\n\n\nvar htmlTagMatcher = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\nvar linkKeyMatcher = /(?:@(?:\\.[a-z]+)?:(?:[\\w\\-_|.]+|\\([\\w\\-_|.]+\\)))/g;\nvar linkKeyPrefixMatcher = /^@(?:\\.([a-z]+))?:/;\nvar bracketsMatcher = /[()]/g;\nvar defaultModifiers = {\n 'upper': function (str) { return str.toLocaleUpperCase(); },\n 'lower': function (str) { return str.toLocaleLowerCase(); },\n 'capitalize': function (str) { return (\"\" + (str.charAt(0).toLocaleUpperCase()) + (str.substr(1))); }\n};\n\nvar defaultFormatter = new BaseFormatter();\n\nvar VueI18n = function VueI18n (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #290\n /* istanbul ignore if */\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n var locale = options.locale || 'en-US';\n var fallbackLocale = options.fallbackLocale === false\n ? false\n : options.fallbackLocale || 'en-US';\n var messages = options.messages || {};\n var dateTimeFormats = options.dateTimeFormats || {};\n var numberFormats = options.numberFormats || {};\n\n this._vm = null;\n this._formatter = options.formatter || defaultFormatter;\n this._modifiers = options.modifiers || {};\n this._missing = options.missing || null;\n this._root = options.root || null;\n this._sync = options.sync === undefined ? true : !!options.sync;\n this._fallbackRoot = options.fallbackRoot === undefined\n ? true\n : !!options.fallbackRoot;\n this._formatFallbackMessages = options.formatFallbackMessages === undefined\n ? false\n : !!options.formatFallbackMessages;\n this._silentTranslationWarn = options.silentTranslationWarn === undefined\n ? false\n : options.silentTranslationWarn;\n this._silentFallbackWarn = options.silentFallbackWarn === undefined\n ? false\n : !!options.silentFallbackWarn;\n this._dateTimeFormatters = {};\n this._numberFormatters = {};\n this._path = new I18nPath();\n this._dataListeners = [];\n this._componentInstanceCreatedListener = options.componentInstanceCreatedListener || null;\n this._preserveDirectiveContent = options.preserveDirectiveContent === undefined\n ? false\n : !!options.preserveDirectiveContent;\n this.pluralizationRules = options.pluralizationRules || {};\n this._warnHtmlInMessage = options.warnHtmlInMessage || 'off';\n this._postTranslation = options.postTranslation || null;\n this._escapeParameterHtml = options.escapeParameterHtml || false;\n\n /**\n * @param choice {number} a choice index given by the input to $tc: `$tc('path.to.rule', choiceIndex)`\n * @param choicesLength {number} an overall amount of available choices\n * @returns a final choice index\n */\n this.getChoiceIndex = function (choice, choicesLength) {\n var thisPrototype = Object.getPrototypeOf(this$1);\n if (thisPrototype && thisPrototype.getChoiceIndex) {\n var prototypeGetChoiceIndex = (thisPrototype.getChoiceIndex);\n return (prototypeGetChoiceIndex).call(this$1, choice, choicesLength)\n }\n\n // Default (old) getChoiceIndex implementation - english-compatible\n var defaultImpl = function (_choice, _choicesLength) {\n _choice = Math.abs(_choice);\n\n if (_choicesLength === 2) {\n return _choice\n ? _choice > 1\n ? 1\n : 0\n : 1\n }\n\n return _choice ? Math.min(_choice, 2) : 0\n };\n\n if (this$1.locale in this$1.pluralizationRules) {\n return this$1.pluralizationRules[this$1.locale].apply(this$1, [choice, choicesLength])\n } else {\n return defaultImpl(choice, choicesLength)\n }\n };\n\n\n this._exist = function (message, key) {\n if (!message || !key) { return false }\n if (!isNull(this$1._path.getPathValue(message, key))) { return true }\n // fallback for flat key\n if (message[key]) { return true }\n return false\n };\n\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n Object.keys(messages).forEach(function (locale) {\n this$1._checkLocaleMessage(locale, this$1._warnHtmlInMessage, messages[locale]);\n });\n }\n\n this._initVM({\n locale: locale,\n fallbackLocale: fallbackLocale,\n messages: messages,\n dateTimeFormats: dateTimeFormats,\n numberFormats: numberFormats\n });\n};\n\nvar prototypeAccessors = { vm: { configurable: true },messages: { configurable: true },dateTimeFormats: { configurable: true },numberFormats: { configurable: true },availableLocales: { configurable: true },locale: { configurable: true },fallbackLocale: { configurable: true },formatFallbackMessages: { configurable: true },missing: { configurable: true },formatter: { configurable: true },silentTranslationWarn: { configurable: true },silentFallbackWarn: { configurable: true },preserveDirectiveContent: { configurable: true },warnHtmlInMessage: { configurable: true },postTranslation: { configurable: true } };\n\nVueI18n.prototype._checkLocaleMessage = function _checkLocaleMessage (locale, level, message) {\n var paths = [];\n\n var fn = function (level, locale, message, paths) {\n if (isPlainObject(message)) {\n Object.keys(message).forEach(function (key) {\n var val = message[key];\n if (isPlainObject(val)) {\n paths.push(key);\n paths.push('.');\n fn(level, locale, val, paths);\n paths.pop();\n paths.pop();\n } else {\n paths.push(key);\n fn(level, locale, val, paths);\n paths.pop();\n }\n });\n } else if (isArray(message)) {\n message.forEach(function (item, index) {\n if (isPlainObject(item)) {\n paths.push((\"[\" + index + \"]\"));\n paths.push('.');\n fn(level, locale, item, paths);\n paths.pop();\n paths.pop();\n } else {\n paths.push((\"[\" + index + \"]\"));\n fn(level, locale, item, paths);\n paths.pop();\n }\n });\n } else if (isString(message)) {\n var ret = htmlTagMatcher.test(message);\n if (ret) {\n var msg = \"Detected HTML in message '\" + message + \"' of keypath '\" + (paths.join('')) + \"' at '\" + locale + \"'. Consider component interpolation with '' to avoid XSS. See https://bit.ly/2ZqJzkp\";\n if (level === 'warn') {\n warn(msg);\n } else if (level === 'error') {\n error(msg);\n }\n }\n }\n };\n\n fn(level, locale, message, paths);\n};\n\nVueI18n.prototype._initVM = function _initVM (data) {\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n this._vm = new Vue({ data: data });\n Vue.config.silent = silent;\n};\n\nVueI18n.prototype.destroyVM = function destroyVM () {\n this._vm.$destroy();\n};\n\nVueI18n.prototype.subscribeDataChanging = function subscribeDataChanging (vm) {\n this._dataListeners.push(vm);\n};\n\nVueI18n.prototype.unsubscribeDataChanging = function unsubscribeDataChanging (vm) {\n remove(this._dataListeners, vm);\n};\n\nVueI18n.prototype.watchI18nData = function watchI18nData () {\n var self = this;\n return this._vm.$watch('$data', function () {\n var i = self._dataListeners.length;\n while (i--) {\n Vue.nextTick(function () {\n self._dataListeners[i] && self._dataListeners[i].$forceUpdate();\n });\n }\n }, { deep: true })\n};\n\nVueI18n.prototype.watchLocale = function watchLocale () {\n /* istanbul ignore if */\n if (!this._sync || !this._root) { return null }\n var target = this._vm;\n return this._root.$i18n.vm.$watch('locale', function (val) {\n target.$set(target, 'locale', val);\n target.$forceUpdate();\n }, { immediate: true })\n};\n\nVueI18n.prototype.onComponentInstanceCreated = function onComponentInstanceCreated (newI18n) {\n if (this._componentInstanceCreatedListener) {\n this._componentInstanceCreatedListener(newI18n, this);\n }\n};\n\nprototypeAccessors.vm.get = function () { return this._vm };\n\nprototypeAccessors.messages.get = function () { return looseClone(this._getMessages()) };\nprototypeAccessors.dateTimeFormats.get = function () { return looseClone(this._getDateTimeFormats()) };\nprototypeAccessors.numberFormats.get = function () { return looseClone(this._getNumberFormats()) };\nprototypeAccessors.availableLocales.get = function () { return Object.keys(this.messages).sort() };\n\nprototypeAccessors.locale.get = function () { return this._vm.locale };\nprototypeAccessors.locale.set = function (locale) {\n this._vm.$set(this._vm, 'locale', locale);\n};\n\nprototypeAccessors.fallbackLocale.get = function () { return this._vm.fallbackLocale };\nprototypeAccessors.fallbackLocale.set = function (locale) {\n this._localeChainCache = {};\n this._vm.$set(this._vm, 'fallbackLocale', locale);\n};\n\nprototypeAccessors.formatFallbackMessages.get = function () { return this._formatFallbackMessages };\nprototypeAccessors.formatFallbackMessages.set = function (fallback) { this._formatFallbackMessages = fallback; };\n\nprototypeAccessors.missing.get = function () { return this._missing };\nprototypeAccessors.missing.set = function (handler) { this._missing = handler; };\n\nprototypeAccessors.formatter.get = function () { return this._formatter };\nprototypeAccessors.formatter.set = function (formatter) { this._formatter = formatter; };\n\nprototypeAccessors.silentTranslationWarn.get = function () { return this._silentTranslationWarn };\nprototypeAccessors.silentTranslationWarn.set = function (silent) { this._silentTranslationWarn = silent; };\n\nprototypeAccessors.silentFallbackWarn.get = function () { return this._silentFallbackWarn };\nprototypeAccessors.silentFallbackWarn.set = function (silent) { this._silentFallbackWarn = silent; };\n\nprototypeAccessors.preserveDirectiveContent.get = function () { return this._preserveDirectiveContent };\nprototypeAccessors.preserveDirectiveContent.set = function (preserve) { this._preserveDirectiveContent = preserve; };\n\nprototypeAccessors.warnHtmlInMessage.get = function () { return this._warnHtmlInMessage };\nprototypeAccessors.warnHtmlInMessage.set = function (level) {\n var this$1 = this;\n\n var orgLevel = this._warnHtmlInMessage;\n this._warnHtmlInMessage = level;\n if (orgLevel !== level && (level === 'warn' || level === 'error')) {\n var messages = this._getMessages();\n Object.keys(messages).forEach(function (locale) {\n this$1._checkLocaleMessage(locale, this$1._warnHtmlInMessage, messages[locale]);\n });\n }\n};\n\nprototypeAccessors.postTranslation.get = function () { return this._postTranslation };\nprototypeAccessors.postTranslation.set = function (handler) { this._postTranslation = handler; };\n\nVueI18n.prototype._getMessages = function _getMessages () { return this._vm.messages };\nVueI18n.prototype._getDateTimeFormats = function _getDateTimeFormats () { return this._vm.dateTimeFormats };\nVueI18n.prototype._getNumberFormats = function _getNumberFormats () { return this._vm.numberFormats };\n\nVueI18n.prototype._warnDefault = function _warnDefault (locale, key, result, vm, values, interpolateMode) {\n if (!isNull(result)) { return result }\n if (this._missing) {\n var missingRet = this._missing.apply(null, [locale, key, vm, values]);\n if (isString(missingRet)) {\n return missingRet\n }\n } else {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n warn(\n \"Cannot translate the value of keypath '\" + key + \"'. \" +\n 'Use the value of keypath as default.'\n );\n }\n }\n\n if (this._formatFallbackMessages) {\n var parsedArgs = parseArgs.apply(void 0, values);\n return this._render(key, interpolateMode, parsedArgs.params, key)\n } else {\n return key\n }\n};\n\nVueI18n.prototype._isFallbackRoot = function _isFallbackRoot (val) {\n return !val && !isNull(this._root) && this._fallbackRoot\n};\n\nVueI18n.prototype._isSilentFallbackWarn = function _isSilentFallbackWarn (key) {\n return this._silentFallbackWarn instanceof RegExp\n ? this._silentFallbackWarn.test(key)\n : this._silentFallbackWarn\n};\n\nVueI18n.prototype._isSilentFallback = function _isSilentFallback (locale, key) {\n return this._isSilentFallbackWarn(key) && (this._isFallbackRoot() || locale !== this.fallbackLocale)\n};\n\nVueI18n.prototype._isSilentTranslationWarn = function _isSilentTranslationWarn (key) {\n return this._silentTranslationWarn instanceof RegExp\n ? this._silentTranslationWarn.test(key)\n : this._silentTranslationWarn\n};\n\nVueI18n.prototype._interpolate = function _interpolate (\n locale,\n message,\n key,\n host,\n interpolateMode,\n values,\n visitedLinkStack\n) {\n if (!message) { return null }\n\n var pathRet = this._path.getPathValue(message, key);\n if (isArray(pathRet) || isPlainObject(pathRet)) { return pathRet }\n\n var ret;\n if (isNull(pathRet)) {\n /* istanbul ignore else */\n if (isPlainObject(message)) {\n ret = message[key];\n if (!(isString(ret) || isFunction(ret))) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallback(locale, key)) {\n warn((\"Value of key '\" + key + \"' is not a string or function !\"));\n }\n return null\n }\n } else {\n return null\n }\n } else {\n /* istanbul ignore else */\n if (isString(pathRet) || isFunction(pathRet)) {\n ret = pathRet;\n } else {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallback(locale, key)) {\n warn((\"Value of key '\" + key + \"' is not a string or function!\"));\n }\n return null\n }\n }\n\n // Check for the existence of links within the translated string\n if (isString(ret) && (ret.indexOf('@:') >= 0 || ret.indexOf('@.') >= 0)) {\n ret = this._link(locale, message, ret, host, 'raw', values, visitedLinkStack);\n }\n\n return this._render(ret, interpolateMode, values, key)\n};\n\nVueI18n.prototype._link = function _link (\n locale,\n message,\n str,\n host,\n interpolateMode,\n values,\n visitedLinkStack\n) {\n var ret = str;\n\n // Match all the links within the local\n // We are going to replace each of\n // them with its translation\n var matches = ret.match(linkKeyMatcher);\n for (var idx in matches) {\n // ie compatible: filter custom array\n // prototype method\n if (!matches.hasOwnProperty(idx)) {\n continue\n }\n var link = matches[idx];\n var linkKeyPrefixMatches = link.match(linkKeyPrefixMatcher);\n var linkPrefix = linkKeyPrefixMatches[0];\n var formatterName = linkKeyPrefixMatches[1];\n\n // Remove the leading @:, @.case: and the brackets\n var linkPlaceholder = link.replace(linkPrefix, '').replace(bracketsMatcher, '');\n\n if (includes(visitedLinkStack, linkPlaceholder)) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Circular reference found. \\\"\" + link + \"\\\" is already visited in the chain of \" + (visitedLinkStack.reverse().join(' <- '))));\n }\n return ret\n }\n visitedLinkStack.push(linkPlaceholder);\n\n // Translate the link\n var translated = this._interpolate(\n locale, message, linkPlaceholder, host,\n interpolateMode === 'raw' ? 'string' : interpolateMode,\n interpolateMode === 'raw' ? undefined : values,\n visitedLinkStack\n );\n\n if (this._isFallbackRoot(translated)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(linkPlaceholder)) {\n warn((\"Fall back to translate the link placeholder '\" + linkPlaceholder + \"' with root locale.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n var root = this._root.$i18n;\n translated = root._translate(\n root._getMessages(), root.locale, root.fallbackLocale,\n linkPlaceholder, host, interpolateMode, values\n );\n }\n translated = this._warnDefault(\n locale, linkPlaceholder, translated, host,\n isArray(values) ? values : [values],\n interpolateMode\n );\n\n if (this._modifiers.hasOwnProperty(formatterName)) {\n translated = this._modifiers[formatterName](translated);\n } else if (defaultModifiers.hasOwnProperty(formatterName)) {\n translated = defaultModifiers[formatterName](translated);\n }\n\n visitedLinkStack.pop();\n\n // Replace the link with the translated\n ret = !translated ? ret : ret.replace(link, translated);\n }\n\n return ret\n};\n\nVueI18n.prototype._createMessageContext = function _createMessageContext (values) {\n var _list = isArray(values) ? values : [];\n var _named = isObject(values) ? values : {};\n var list = function (index) { return _list[index]; };\n var named = function (key) { return _named[key]; };\n return {\n list: list,\n named: named\n }\n};\n\nVueI18n.prototype._render = function _render (message, interpolateMode, values, path) {\n if (isFunction(message)) {\n return message(this._createMessageContext(values))\n }\n\n var ret = this._formatter.interpolate(message, values, path);\n\n // If the custom formatter refuses to work - apply the default one\n if (!ret) {\n ret = defaultFormatter.interpolate(message, values, path);\n }\n\n // if interpolateMode is **not** 'string' ('row'),\n // return the compiled data (e.g. ['foo', VNode, 'bar']) with formatter\n return interpolateMode === 'string' && !isString(ret) ? ret.join('') : ret\n};\n\nVueI18n.prototype._appendItemToChain = function _appendItemToChain (chain, item, blocks) {\n var follow = false;\n if (!includes(chain, item)) {\n follow = true;\n if (item) {\n follow = item[item.length - 1] !== '!';\n item = item.replace(/!/g, '');\n chain.push(item);\n if (blocks && blocks[item]) {\n follow = blocks[item];\n }\n }\n }\n return follow\n};\n\nVueI18n.prototype._appendLocaleToChain = function _appendLocaleToChain (chain, locale, blocks) {\n var follow;\n var tokens = locale.split('-');\n do {\n var item = tokens.join('-');\n follow = this._appendItemToChain(chain, item, blocks);\n tokens.splice(-1, 1);\n } while (tokens.length && (follow === true))\n return follow\n};\n\nVueI18n.prototype._appendBlockToChain = function _appendBlockToChain (chain, block, blocks) {\n var follow = true;\n for (var i = 0; (i < block.length) && (isBoolean(follow)); i++) {\n var locale = block[i];\n if (isString(locale)) {\n follow = this._appendLocaleToChain(chain, locale, blocks);\n }\n }\n return follow\n};\n\nVueI18n.prototype._getLocaleChain = function _getLocaleChain (start, fallbackLocale) {\n if (start === '') { return [] }\n\n if (!this._localeChainCache) {\n this._localeChainCache = {};\n }\n\n var chain = this._localeChainCache[start];\n if (!chain) {\n if (!fallbackLocale) {\n fallbackLocale = this.fallbackLocale;\n }\n chain = [];\n\n // first block defined by start\n var block = [start];\n\n // while any intervening block found\n while (isArray(block)) {\n block = this._appendBlockToChain(\n chain,\n block,\n fallbackLocale\n );\n }\n\n // last block defined by default\n var defaults;\n if (isArray(fallbackLocale)) {\n defaults = fallbackLocale;\n } else if (isObject(fallbackLocale)) {\n /* $FlowFixMe */\n if (fallbackLocale['default']) {\n defaults = fallbackLocale['default'];\n } else {\n defaults = null;\n }\n } else {\n defaults = fallbackLocale;\n }\n\n // convert defaults to array\n if (isString(defaults)) {\n block = [defaults];\n } else {\n block = defaults;\n }\n if (block) {\n this._appendBlockToChain(\n chain,\n block,\n null\n );\n }\n this._localeChainCache[start] = chain;\n }\n return chain\n};\n\nVueI18n.prototype._translate = function _translate (\n messages,\n locale,\n fallback,\n key,\n host,\n interpolateMode,\n args\n) {\n var chain = this._getLocaleChain(locale, fallback);\n var res;\n for (var i = 0; i < chain.length; i++) {\n var step = chain[i];\n res =\n this._interpolate(step, messages[step], key, host, interpolateMode, args, [key]);\n if (!isNull(res)) {\n if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to translate the keypath '\" + key + \"' with '\" + step + \"' locale.\"));\n }\n return res\n }\n }\n return null\n};\n\nVueI18n.prototype._t = function _t (key, _locale, messages, host) {\n var ref;\n\n var values = [], len = arguments.length - 4;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 4 ];\n if (!key) { return '' }\n\n var parsedArgs = parseArgs.apply(void 0, values);\n if(this._escapeParameterHtml) {\n parsedArgs.params = escapeParams(parsedArgs.params);\n }\n\n var locale = parsedArgs.locale || _locale;\n\n var ret = this._translate(\n messages, locale, this.fallbackLocale, key,\n host, 'string', parsedArgs.params\n );\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to translate the keypath '\" + key + \"' with root locale.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return (ref = this._root).$t.apply(ref, [ key ].concat( values ))\n } else {\n ret = this._warnDefault(locale, key, ret, host, values, 'string');\n if (this._postTranslation && ret !== null && ret !== undefined) {\n ret = this._postTranslation(ret, key);\n }\n return ret\n }\n};\n\nVueI18n.prototype.t = function t (key) {\n var ref;\n\n var values = [], len = arguments.length - 1;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 1 ];\n return (ref = this)._t.apply(ref, [ key, this.locale, this._getMessages(), null ].concat( values ))\n};\n\nVueI18n.prototype._i = function _i (key, locale, messages, host, values) {\n var ret =\n this._translate(messages, locale, this.fallbackLocale, key, host, 'raw', values);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n warn((\"Fall back to interpolate the keypath '\" + key + \"' with root locale.\"));\n }\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.i(key, locale, values)\n } else {\n return this._warnDefault(locale, key, ret, host, [values], 'raw')\n }\n};\n\nVueI18n.prototype.i = function i (key, locale, values) {\n /* istanbul ignore if */\n if (!key) { return '' }\n\n if (!isString(locale)) {\n locale = this.locale;\n }\n\n return this._i(key, locale, this._getMessages(), null, values)\n};\n\nVueI18n.prototype._tc = function _tc (\n key,\n _locale,\n messages,\n host,\n choice\n) {\n var ref;\n\n var values = [], len = arguments.length - 5;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 5 ];\n if (!key) { return '' }\n if (choice === undefined) {\n choice = 1;\n }\n\n var predefined = { 'count': choice, 'n': choice };\n var parsedArgs = parseArgs.apply(void 0, values);\n parsedArgs.params = Object.assign(predefined, parsedArgs.params);\n values = parsedArgs.locale === null ? [parsedArgs.params] : [parsedArgs.locale, parsedArgs.params];\n return this.fetchChoice((ref = this)._t.apply(ref, [ key, _locale, messages, host ].concat( values )), choice)\n};\n\nVueI18n.prototype.fetchChoice = function fetchChoice (message, choice) {\n /* istanbul ignore if */\n if (!message || !isString(message)) { return null }\n var choices = message.split('|');\n\n choice = this.getChoiceIndex(choice, choices.length);\n if (!choices[choice]) { return message }\n return choices[choice].trim()\n};\n\nVueI18n.prototype.tc = function tc (key, choice) {\n var ref;\n\n var values = [], len = arguments.length - 2;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 2 ];\n return (ref = this)._tc.apply(ref, [ key, this.locale, this._getMessages(), null, choice ].concat( values ))\n};\n\nVueI18n.prototype._te = function _te (key, locale, messages) {\n var args = [], len = arguments.length - 3;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 3 ];\n\n var _locale = parseArgs.apply(void 0, args).locale || locale;\n return this._exist(messages[_locale], key)\n};\n\nVueI18n.prototype.te = function te (key, locale) {\n return this._te(key, this.locale, this._getMessages(), locale)\n};\n\nVueI18n.prototype.getLocaleMessage = function getLocaleMessage (locale) {\n return looseClone(this._vm.messages[locale] || {})\n};\n\nVueI18n.prototype.setLocaleMessage = function setLocaleMessage (locale, message) {\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n this._checkLocaleMessage(locale, this._warnHtmlInMessage, message);\n }\n this._vm.$set(this._vm.messages, locale, message);\n};\n\nVueI18n.prototype.mergeLocaleMessage = function mergeLocaleMessage (locale, message) {\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n this._checkLocaleMessage(locale, this._warnHtmlInMessage, message);\n }\n this._vm.$set(this._vm.messages, locale, merge({}, this._vm.messages[locale] || {}, message));\n};\n\nVueI18n.prototype.getDateTimeFormat = function getDateTimeFormat (locale) {\n return looseClone(this._vm.dateTimeFormats[locale] || {})\n};\n\nVueI18n.prototype.setDateTimeFormat = function setDateTimeFormat (locale, format) {\n this._vm.$set(this._vm.dateTimeFormats, locale, format);\n this._clearDateTimeFormat(locale, format);\n};\n\nVueI18n.prototype.mergeDateTimeFormat = function mergeDateTimeFormat (locale, format) {\n this._vm.$set(this._vm.dateTimeFormats, locale, merge(this._vm.dateTimeFormats[locale] || {}, format));\n this._clearDateTimeFormat(locale, format);\n};\n\nVueI18n.prototype._clearDateTimeFormat = function _clearDateTimeFormat (locale, format) {\n for (var key in format) {\n var id = locale + \"__\" + key;\n\n if (!this._dateTimeFormatters.hasOwnProperty(id)) {\n continue\n }\n\n delete this._dateTimeFormatters[id];\n }\n};\n\nVueI18n.prototype._localizeDateTime = function _localizeDateTime (\n value,\n locale,\n fallback,\n dateTimeFormats,\n key\n) {\n var _locale = locale;\n var formats = dateTimeFormats[_locale];\n\n var chain = this._getLocaleChain(locale, fallback);\n for (var i = 0; i < chain.length; i++) {\n var current = _locale;\n var step = chain[i];\n formats = dateTimeFormats[step];\n _locale = step;\n // fallback locale\n if (isNull(formats) || isNull(formats[key])) {\n if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to '\" + step + \"' datetime formats from '\" + current + \"' datetime formats.\"));\n }\n } else {\n break\n }\n }\n\n if (isNull(formats) || isNull(formats[key])) {\n return null\n } else {\n var format = formats[key];\n var id = _locale + \"__\" + key;\n var formatter = this._dateTimeFormatters[id];\n if (!formatter) {\n formatter = this._dateTimeFormatters[id] = new Intl.DateTimeFormat(_locale, format);\n }\n return formatter.format(value)\n }\n};\n\nVueI18n.prototype._d = function _d (value, locale, key) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && !VueI18n.availabilities.dateTimeFormat) {\n warn('Cannot format a Date value due to not supported Intl.DateTimeFormat.');\n return ''\n }\n\n if (!key) {\n return new Intl.DateTimeFormat(locale).format(value)\n }\n\n var ret =\n this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to datetime localization of root: key '\" + key + \"'.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.d(value, key, locale)\n } else {\n return ret || ''\n }\n};\n\nVueI18n.prototype.d = function d (value) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n var locale = this.locale;\n var key = null;\n\n if (args.length === 1) {\n if (isString(args[0])) {\n key = args[0];\n } else if (isObject(args[0])) {\n if (args[0].locale) {\n locale = args[0].locale;\n }\n if (args[0].key) {\n key = args[0].key;\n }\n }\n } else if (args.length === 2) {\n if (isString(args[0])) {\n key = args[0];\n }\n if (isString(args[1])) {\n locale = args[1];\n }\n }\n\n return this._d(value, locale, key)\n};\n\nVueI18n.prototype.getNumberFormat = function getNumberFormat (locale) {\n return looseClone(this._vm.numberFormats[locale] || {})\n};\n\nVueI18n.prototype.setNumberFormat = function setNumberFormat (locale, format) {\n this._vm.$set(this._vm.numberFormats, locale, format);\n this._clearNumberFormat(locale, format);\n};\n\nVueI18n.prototype.mergeNumberFormat = function mergeNumberFormat (locale, format) {\n this._vm.$set(this._vm.numberFormats, locale, merge(this._vm.numberFormats[locale] || {}, format));\n this._clearNumberFormat(locale, format);\n};\n\nVueI18n.prototype._clearNumberFormat = function _clearNumberFormat (locale, format) {\n for (var key in format) {\n var id = locale + \"__\" + key;\n\n if (!this._numberFormatters.hasOwnProperty(id)) {\n continue\n }\n\n delete this._numberFormatters[id];\n }\n};\n\nVueI18n.prototype._getNumberFormatter = function _getNumberFormatter (\n value,\n locale,\n fallback,\n numberFormats,\n key,\n options\n) {\n var _locale = locale;\n var formats = numberFormats[_locale];\n\n var chain = this._getLocaleChain(locale, fallback);\n for (var i = 0; i < chain.length; i++) {\n var current = _locale;\n var step = chain[i];\n formats = numberFormats[step];\n _locale = step;\n // fallback locale\n if (isNull(formats) || isNull(formats[key])) {\n if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to '\" + step + \"' number formats from '\" + current + \"' number formats.\"));\n }\n } else {\n break\n }\n }\n\n if (isNull(formats) || isNull(formats[key])) {\n return null\n } else {\n var format = formats[key];\n\n var formatter;\n if (options) {\n // If options specified - create one time number formatter\n formatter = new Intl.NumberFormat(_locale, Object.assign({}, format, options));\n } else {\n var id = _locale + \"__\" + key;\n formatter = this._numberFormatters[id];\n if (!formatter) {\n formatter = this._numberFormatters[id] = new Intl.NumberFormat(_locale, format);\n }\n }\n return formatter\n }\n};\n\nVueI18n.prototype._n = function _n (value, locale, key, options) {\n /* istanbul ignore if */\n if (!VueI18n.availabilities.numberFormat) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot format a Number value due to not supported Intl.NumberFormat.');\n }\n return ''\n }\n\n if (!key) {\n var nf = !options ? new Intl.NumberFormat(locale) : new Intl.NumberFormat(locale, options);\n return nf.format(value)\n }\n\n var formatter = this._getNumberFormatter(value, locale, this.fallbackLocale, this._getNumberFormats(), key, options);\n var ret = formatter && formatter.format(value);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to number localization of root: key '\" + key + \"'.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.n(value, Object.assign({}, { key: key, locale: locale }, options))\n } else {\n return ret || ''\n }\n};\n\nVueI18n.prototype.n = function n (value) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n var locale = this.locale;\n var key = null;\n var options = null;\n\n if (args.length === 1) {\n if (isString(args[0])) {\n key = args[0];\n } else if (isObject(args[0])) {\n if (args[0].locale) {\n locale = args[0].locale;\n }\n if (args[0].key) {\n key = args[0].key;\n }\n\n // Filter out number format options only\n options = Object.keys(args[0]).reduce(function (acc, key) {\n var obj;\n\n if (includes(numberFormatKeys, key)) {\n return Object.assign({}, acc, ( obj = {}, obj[key] = args[0][key], obj ))\n }\n return acc\n }, null);\n }\n } else if (args.length === 2) {\n if (isString(args[0])) {\n key = args[0];\n }\n if (isString(args[1])) {\n locale = args[1];\n }\n }\n\n return this._n(value, locale, key, options)\n};\n\nVueI18n.prototype._ntp = function _ntp (value, locale, key, options) {\n /* istanbul ignore if */\n if (!VueI18n.availabilities.numberFormat) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot format to parts a Number value due to not supported Intl.NumberFormat.');\n }\n return []\n }\n\n if (!key) {\n var nf = !options ? new Intl.NumberFormat(locale) : new Intl.NumberFormat(locale, options);\n return nf.formatToParts(value)\n }\n\n var formatter = this._getNumberFormatter(value, locale, this.fallbackLocale, this._getNumberFormats(), key, options);\n var ret = formatter && formatter.formatToParts(value);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n warn((\"Fall back to format number to parts of root: key '\" + key + \"' .\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n._ntp(value, locale, key, options)\n } else {\n return ret || []\n }\n};\n\nObject.defineProperties( VueI18n.prototype, prototypeAccessors );\n\nvar availabilities;\n// $FlowFixMe\nObject.defineProperty(VueI18n, 'availabilities', {\n get: function get () {\n if (!availabilities) {\n var intlDefined = typeof Intl !== 'undefined';\n availabilities = {\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\n };\n }\n\n return availabilities\n }\n});\n\nVueI18n.install = install;\nVueI18n.version = '8.22.1';\n\nexport default VueI18n;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{attrs:{\"id\":\"app\"}},[_c('div',{staticClass:\"logo\"},[_c('the-logo')],1),(_vm.$store.state.loadingCompleted)?_c('div',{staticClass:\"bg\"},[_c('background-video')],1):_vm._e(),_c('transition-group',{attrs:{\"name\":\"fade\",\"appear\":\"\",\"mode\":\"out-in\"}},[(_vm.$store.state.loadingCompleted)?_c('router-view',{key:_vm.$route.fullPath}):_vm._e(),(!_vm.$store.state.loadingCompleted)?_c('loader',{key:\"loader\",attrs:{\"progress\":_vm.progress}}):_vm._e()],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{ fixed: _vm.fixed }},[_c('video',{ref:\"video\",attrs:{\"muted\":\"\",\"playsinline\":\"\"},domProps:{\"muted\":true}},[_c('source',{attrs:{\"src\":(_vm.$publicPath + \"videos/bg.webm\"),\"type\":\"video/webm\",\"codecs\":\"vp8, vorbis\"}}),_c('source',{attrs:{\"src\":(_vm.$publicPath + \"videos/bg.mp4\"),\"type\":\"video/mp4\",\"codecs\":\"avc1.42E01E, mp4a.40.2\"}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./bg.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./bg.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./bg.vue?vue&type=template&id=3168f765&scoped=true&\"\nimport script from \"./bg.vue?vue&type=script&lang=js&\"\nexport * from \"./bg.vue?vue&type=script&lang=js&\"\nimport style0 from \"./bg.vue?vue&type=style&index=0&id=3168f765&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3168f765\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"loader w-screen h-screen flex flex-col items-center justify-center\"},[_c('div',{staticClass:\"illustration\"},[_c('line-anim',{ref:\"tank\",attrs:{\"options\":{ animationData: _vm.animations.silo, autoplay: false, loop: false }},on:{\"animCreated\":function($event){return _vm.handleAnimation($event, 'silo')}}})],1),_c('div',{staticClass:\"label\"},[_vm._v(\" \"+_vm._s(_vm.$t('loading.tagline'))+\" \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./loader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./loader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./loader.vue?vue&type=template&id=b408e56e&scoped=true&\"\nimport script from \"./loader.vue?vue&type=script&lang=js&\"\nexport * from \"./loader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./loader.vue?vue&type=style&index=0&id=b408e56e&lang=scss&scoped=true&\"\nimport style1 from \"./loader.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b408e56e\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=307c0575&scoped=true&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=307c0575&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"307c0575\",\n null\n \n)\n\nexport default component.exports","/*!\n * vue-router v3.4.3\n * (c) 2020 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (process.env.NODE_ENV !== 'production' && !condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\nvar View = {\n name: 'RouterView',\n functional: true,\n props: {\n name: {\n type: String,\n default: 'default'\n }\n },\n render: function render (_, ref) {\n var props = ref.props;\n var children = ref.children;\n var parent = ref.parent;\n var data = ref.data;\n\n // used by devtools to display a router-view badge\n data.routerView = true;\n\n // directly use parent context's createElement() function\n // so that components rendered by router-view can resolve named slots\n var h = parent.$createElement;\n var name = props.name;\n var route = parent.$route;\n var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n // determine current view depth, also check to see if the tree\n // has been toggled inactive but kept-alive.\n var depth = 0;\n var inactive = false;\n while (parent && parent._routerRoot !== parent) {\n var vnodeData = parent.$vnode ? parent.$vnode.data : {};\n if (vnodeData.routerView) {\n depth++;\n }\n if (vnodeData.keepAlive && parent._directInactive && parent._inactive) {\n inactive = true;\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n var cachedData = cache[name];\n var cachedComponent = cachedData && cachedData.component;\n if (cachedComponent) {\n // #2301\n // pass props\n if (cachedData.configProps) {\n fillPropsinData(cachedComponent, data, cachedData.route, cachedData.configProps);\n }\n return h(cachedComponent, data, children)\n } else {\n // render previous empty view\n return h()\n }\n }\n\n var matched = route.matched[depth];\n var component = matched && matched.components[name];\n\n // render empty node if no matched route or no config component\n if (!matched || !component) {\n cache[name] = null;\n return h()\n }\n\n // cache component\n cache[name] = { component: component };\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // register instance in init hook\n // in case kept-alive component be actived when routes changed\n data.hook.init = function (vnode) {\n if (vnode.data.keepAlive &&\n vnode.componentInstance &&\n vnode.componentInstance !== matched.instances[name]\n ) {\n matched.instances[name] = vnode.componentInstance;\n }\n };\n\n var configProps = matched.props && matched.props[name];\n // save route and configProps in cache\n if (configProps) {\n extend(cache[name], {\n route: route,\n configProps: configProps\n });\n fillPropsinData(component, data, route, configProps);\n }\n\n return h(component, data, children)\n }\n};\n\nfunction fillPropsinData (component, data, route, configProps) {\n // resolve props\n var propsToPass = data.props = resolveProps(route, configProps);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n var attrs = data.attrs = data.attrs || {};\n for (var key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n}\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n \"expecting an object, function or boolean.\"\n );\n }\n }\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nvar decode = decodeURIComponent;\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n var value = extraQuery[key];\n parsedQuery[key] = Array.isArray(value)\n ? value.map(castQueryParamValue)\n : castQueryParamValue(value);\n }\n return parsedQuery\n}\n\nvar castQueryParamValue = function (value) { return (value == null || typeof value === 'object' ? value : String(value)); };\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0 ? decode(parts.join('=')) : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj\n ? Object.keys(obj)\n .map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n })\n .filter(function (x) { return x.length > 0; })\n .join('&')\n : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n var res = {};\n for (var key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return (\n a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') &&\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query)\n )\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params)\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key) {\n var aVal = a[key];\n var bVal = b[key];\n // query values can be null and undefined\n if (aVal == null || bVal == null) { return aVal === bVal }\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/\\//g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n params = params || {};\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string\n if (typeof params.pathMatch === 'string') { params[0] = params.pathMatch; }\n\n return filler(params, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n // Fix #3072 no warn if `pathMatch` is string\n warn(typeof params.pathMatch === 'string', (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n } finally {\n // delete the 0 if it was added\n delete params[0];\n }\n}\n\n/* */\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next._normalized) {\n return next\n } else if (next.name) {\n next = extend({}, raw);\n var params = next.params;\n if (params && typeof params === 'object') {\n next.params = extend({}, params);\n }\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = extend({}, next);\n next._normalized = true;\n var params$1 = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params$1;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params$1, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\n\nvar Link = {\n name: 'RouterLink',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n exact: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n ariaCurrentValue: {\n type: String,\n default: 'page'\n },\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(\n this.to,\n current,\n this.append\n );\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback =\n globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n var exactActiveClassFallback =\n globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass =\n this.activeClass == null ? activeClassFallback : this.activeClass;\n var exactActiveClass =\n this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n\n var compareTarget = route.redirectedFrom\n ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget);\n classes[activeClass] = this.exact\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1.replace) {\n router.replace(location, noop);\n } else {\n router.push(location, noop);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) {\n on[e] = handler;\n });\n } else {\n on[this.event] = handler;\n }\n\n var data = { class: classes };\n\n var scopedSlot =\n !this.$scopedSlots.$hasNormal &&\n this.$scopedSlots.default &&\n this.$scopedSlots.default({\n href: href,\n route: route,\n navigate: handler,\n isActive: classes[activeClass],\n isExactActive: classes[exactActiveClass]\n });\n\n if (scopedSlot) {\n if (scopedSlot.length === 1) {\n return scopedSlot[0]\n } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n (\"RouterLink with to=\\\"\" + (this.to) + \"\\\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.\")\n );\n }\n return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n }\n }\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href, 'aria-current': ariaCurrentValue };\n } else {\n // find the first child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the is a static node\n a.isStatic = false;\n var aData = (a.data = extend({}, a.data));\n aData.on = aData.on || {};\n // transform existing events in both objects into arrays so we can push later\n for (var event in aData.on) {\n var handler$1 = aData.on[event];\n if (event in on) {\n aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];\n }\n }\n // append new listeners for router-link\n for (var event$1 in on) {\n if (event$1 in aData.on) {\n // on[event] is always a function\n aData.on[event$1].push(on[event$1]);\n } else {\n aData.on[event$1] = handler;\n }\n }\n\n var aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n aAttrs.href = href;\n aAttrs['aria-current'] = ariaCurrentValue;\n } else {\n // doesn't have child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n};\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('RouterView', View);\n Vue.component('RouterLink', Link);\n\n var strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n if (process.env.NODE_ENV === 'development') {\n // warn if routes do not include leading slashes\n var found = pathList\n // check for missing leading slash\n .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });\n\n if (found.length > 0) {\n var pathNames = found.map(function (path) { return (\"- \" + path); }).join('\\n');\n warn(false, (\"Non-nested routes must include a leading slash character. Fix the following routes: \\n\" + pathNames));\n }\n }\n\n return {\n pathList: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (process.env.NODE_ENV !== 'production') {\n assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n assert(\n typeof route.component !== 'string',\n \"route config \\\"component\\\" for path: \" + (String(\n path || name\n )) + \" cannot be a \" + \"string id. Use an actual component instead.\"\n );\n }\n\n var pathToRegexpOptions =\n route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n instances: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props:\n route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n if (process.env.NODE_ENV !== 'production') {\n if (\n route.name &&\n !route.redirect &&\n route.children.some(function (child) { return /^\\/?$/.test(child.path); })\n ) {\n warn(\n false,\n \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'\\\"), \" +\n \"the default child route will not be rendered. Remove the name from \" +\n \"this route and use the name of the default child route for named \" +\n \"links instead.\"\n );\n }\n }\n route.children.forEach(function (child) {\n var childMatchAs = matchAs\n ? cleanPath((matchAs + \"/\" + (child.path)))\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n for (var i = 0; i < aliases.length; ++i) {\n var alias = aliases[i];\n if (process.env.NODE_ENV !== 'production' && alias === path) {\n warn(\n false,\n (\"Found an alias with the same value as the path: \\\"\" + path + \"\\\". You have to remove that alias. It will be ignored in development.\")\n );\n // skip in dev to make it work\n continue\n }\n\n var aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n }\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (\n path,\n pathToRegexpOptions\n) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\n var keys = Object.create(null);\n regex.keys.forEach(function (key) {\n warn(\n !keys[key.name],\n (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\")\n );\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (\n path,\n parent,\n strict\n) {\n if (!strict) { path = path.replace(/\\/$/, ''); }\n if (path[0] === '/') { return path }\n if (parent == null) { return path }\n return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/* */\n\n\n\nfunction createMatcher (\n routes,\n router\n) {\n var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n } else if (location.path) {\n location.params = {};\n for (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n var targetRecord = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query: query,\n hash: hash\n }, undefined, location)\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match: match,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n var val = typeof m[i] === 'string' ? decodeURIComponent(m[i]) : m[i];\n if (key) {\n // Fix #1994: using * with props: true generates a param named 0\n params[key.name || 'pathMatch'] = val;\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\n// use User Timing api (if present) for more accurate key precision\nvar Time =\n inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nfunction genStateKey () {\n return Time.now().toFixed(3)\n}\n\nvar _key = genStateKey();\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n return (_key = key)\n}\n\n/* */\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Prevent browser scroll behavior on History popstate\n if ('scrollRestoration' in window.history) {\n window.history.scrollRestoration = 'manual';\n }\n // Fix for #1585 for Firefox\n // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with\n // window.location.protocol + '//' + window.location.host\n // location.host contains the port and location.hostname doesn't\n var protocolAndPath = window.location.protocol + '//' + window.location.host;\n var absolutePath = window.location.href.replace(protocolAndPath, '');\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, window.history.state);\n stateCopy.key = getStateKey();\n window.history.replaceState(stateCopy, '', absolutePath);\n window.addEventListener('popstate', handlePopState);\n return function () {\n window.removeEventListener('popstate', handlePopState);\n }\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var shouldScroll = behavior.call(\n router,\n to,\n from,\n isPop ? position : null\n );\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll\n .then(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\n })\n .catch(function (err) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction handlePopState (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n}\n\nfunction getScrollPosition () {\n var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n var docEl = document.documentElement;\n var docRect = docEl.getBoundingClientRect();\n var elRect = el.getBoundingClientRect();\n return {\n x: elRect.left - docRect.left - offset.x,\n y: elRect.top - docRect.top - offset.y\n }\n}\n\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n y: isNumber(obj.y) ? obj.y : window.pageYOffset\n }\n}\n\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nvar hashStartsWithNumberRE = /^#\\d/;\n\nfunction scrollToPosition (shouldScroll, position) {\n var isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n // getElementById would still fail if the selector contains a more complicated query like #main[data-attr]\n // but at the same time, it doesn't make much sense to select an element with an id and an extra selector\n var el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line\n ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line\n : document.querySelector(shouldScroll.selector);\n\n if (el) {\n var offset =\n shouldScroll.offset && typeof shouldScroll.offset === 'object'\n ? shouldScroll.offset\n : {};\n offset = normalizeOffset(offset);\n position = getElementPosition(el, offset);\n } else if (isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n } else if (isObject && isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n\n if (position) {\n window.scrollTo(position.x, position.y);\n }\n}\n\n/* */\n\nvar supportsPushState =\n inBrowser &&\n (function () {\n var ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && typeof window.history.pushState === 'function'\n })();\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, history.state);\n stateCopy.key = getStateKey();\n history.replaceState(stateCopy, '', url);\n } else {\n history.pushState({ key: setStateKey(genStateKey()) }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\nvar NavigationFailureType = {\n redirected: 2,\n aborted: 4,\n cancelled: 8,\n duplicated: 16\n};\n\nfunction createNavigationRedirectedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.redirected,\n (\"Redirected when going from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (stringifyRoute(\n to\n )) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createNavigationDuplicatedError (from, to) {\n var error = createRouterError(\n from,\n to,\n NavigationFailureType.duplicated,\n (\"Avoided redundant navigation to current location: \\\"\" + (from.fullPath) + \"\\\".\")\n );\n // backwards compatible with the first introduction of Errors\n error.name = 'NavigationDuplicated';\n return error\n}\n\nfunction createNavigationCancelledError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.cancelled,\n (\"Navigation cancelled from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" with a new navigation.\")\n )\n}\n\nfunction createNavigationAbortedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.aborted,\n (\"Navigation aborted from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createRouterError (from, to, type, message) {\n var error = new Error(message);\n error._isRouter = true;\n error.from = from;\n error.to = to;\n error.type = type;\n\n return error\n}\n\nvar propertiesToLog = ['params', 'query', 'hash'];\n\nfunction stringifyRoute (to) {\n if (typeof to === 'string') { return to }\n if ('path' in to) { return to.path }\n var location = {};\n propertiesToLog.forEach(function (key) {\n if (key in to) { location[key] = to[key]; }\n });\n return JSON.stringify(location, null, 2)\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isNavigationFailure (err, errorType) {\n return (\n isError(err) &&\n err._isRouter &&\n (errorType == null || err.type === errorType)\n )\n}\n\n/* */\n\nfunction resolveAsyncComponents (matched) {\n return function (to, from, next) {\n var hasAsync = false;\n var pending = 0;\n var error = null;\n\n flatMapComponents(matched, function (def, _, match, key) {\n // if it's a function and doesn't have cid attached,\n // assume it's an async component resolve function.\n // we are not using Vue's default async resolving mechanism because\n // we want to halt the navigation until the incoming component has been\n // resolved.\n if (typeof def === 'function' && def.cid === undefined) {\n hasAsync = true;\n pending++;\n\n var resolve = once(function (resolvedDef) {\n if (isESModule(resolvedDef)) {\n resolvedDef = resolvedDef.default;\n }\n // save resolved on async factory in case it's used elsewhere\n def.resolved = typeof resolvedDef === 'function'\n ? resolvedDef\n : _Vue.extend(resolvedDef);\n match.components[key] = resolvedDef;\n pending--;\n if (pending <= 0) {\n next();\n }\n });\n\n var reject = once(function (reason) {\n var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n process.env.NODE_ENV !== 'production' && warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n var res;\n try {\n res = def(resolve, reject);\n } catch (e) {\n reject(e);\n }\n if (res) {\n if (typeof res.then === 'function') {\n res.then(resolve, reject);\n } else {\n // new syntax in Vue 2.3\n var comp = res.component;\n if (comp && typeof comp.then === 'function') {\n comp.then(resolve, reject);\n }\n }\n }\n }\n });\n\n if (!hasAsync) { next(); }\n }\n}\n\nfunction flatMapComponents (\n matched,\n fn\n) {\n return flatten(matched.map(function (m) {\n return Object.keys(m.components).map(function (key) { return fn(\n m.components[key],\n m.instances[key],\n m, key\n ); })\n }))\n}\n\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n var called = false;\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) { return }\n called = true;\n return fn.apply(this, args)\n }\n}\n\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n this.listeners = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (\n location,\n onComplete,\n onAbort\n) {\n var this$1 = this;\n\n var route;\n // catch redirect option https://github.com/vuejs/vue-router/issues/3201\n try {\n route = this.router.match(location, this.current);\n } catch (e) {\n this.errorCbs.forEach(function (cb) {\n cb(e);\n });\n // Exception should still be thrown\n throw e\n }\n this.confirmTransition(\n route,\n function () {\n var prev = this$1.current;\n this$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1.ensureURL();\n this$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n\n // fire ready cbs once\n if (!this$1.ready) {\n this$1.ready = true;\n this$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n },\n function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1.ready) {\n this$1.ready = true;\n // Initial redirection should still trigger the onReady onSuccess\n // https://github.com/vuejs/vue-router/issues/3225\n if (!isNavigationFailure(err, NavigationFailureType.redirected)) {\n this$1.readyErrorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n this$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n }\n }\n );\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1 = this;\n\n var current = this.current;\n var abort = function (err) {\n // changed after adding errors with\n // https://github.com/vuejs/vue-router/pull/3047 before that change,\n // redirect and aborted navigation would produce an err == null\n if (!isNavigationFailure(err) && isError(err)) {\n if (this$1.errorCbs.length) {\n this$1.errorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n warn(false, 'uncaught error during route navigation:');\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n var lastRouteIndex = route.matched.length - 1;\n var lastCurrentIndex = current.matched.length - 1;\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n lastRouteIndex === lastCurrentIndex &&\n route.matched[lastRouteIndex] === current.matched[lastCurrentIndex]\n ) {\n this.ensureURL();\n return abort(createNavigationDuplicatedError(current, route))\n }\n\n var ref = resolveQueue(\n this.current.matched,\n route.matched\n );\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n this.pending = route;\n var iterator = function (hook, next) {\n if (this$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n try {\n hook(route, current, function (to) {\n if (to === false) {\n // next(false) -> abort navigation, ensure current URL\n this$1.ensureURL(true);\n abort(createNavigationAbortedError(current, route));\n } else if (isError(to)) {\n this$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' &&\n (typeof to.path === 'string' || typeof to.name === 'string'))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort(createNavigationRedirectedError(current, route));\n if (typeof to === 'object' && to.replace) {\n this$1.replace(to);\n } else {\n this$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n var postEnterCbs = [];\n var isValid = function () { return this$1.current === route; };\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated, postEnterCbs, isValid);\n var queue = enterGuards.concat(this$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n this$1.pending = null;\n onComplete(route);\n if (this$1.router.app) {\n this$1.router.app.$nextTick(function () {\n postEnterCbs.forEach(function (cb) {\n cb();\n });\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n this.current = route;\n this.cb && this.cb(route);\n};\n\nHistory.prototype.setupListeners = function setupListeners () {\n // Default implementation is empty\n};\n\nHistory.prototype.teardownListeners = function teardownListeners () {\n this.listeners.forEach(function (cleanupListener) {\n cleanupListener();\n });\n this.listeners = [];\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect tag\n var baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n var i;\n var max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated,\n cbs,\n isValid\n) {\n return extractGuards(\n activated,\n 'beforeRouteEnter',\n function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key, cbs, isValid)\n }\n )\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key,\n cbs,\n isValid\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n if (typeof cb === 'function') {\n cbs.push(function () {\n // #750\n // if a router-view is wrapped with an out-in transition,\n // the instance may not have been registered at this time.\n // we will need to poll for registration until current route\n // is no longer valid.\n poll(cb, match.instances, key, isValid);\n });\n }\n next(cb);\n })\n }\n}\n\nfunction poll (\n cb, // somehow flow cannot infer this is a function\n instances,\n key,\n isValid\n) {\n if (\n instances[key] &&\n !instances[key]._isBeingDestroyed // do not reuse being destroyed instance\n ) {\n cb(instances[key]);\n } else if (isValid()) {\n setTimeout(function () {\n poll(cb, instances, key, isValid);\n }, 16);\n }\n}\n\n/* */\n\nvar HTML5History = /*@__PURE__*/(function (History) {\n function HTML5History (router, base) {\n History.call(this, router, base);\n\n this._startLocation = getLocation(this.base);\n }\n\n if ( History ) HTML5History.__proto__ = History;\n HTML5History.prototype = Object.create( History && History.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.setupListeners = function setupListeners () {\n var this$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1.base);\n if (this$1.current === START && location === this$1._startLocation) {\n return\n }\n\n this$1.transitionTo(location, function (route) {\n if (supportsScroll) {\n handleScroll(router, route, current, true);\n }\n });\n };\n window.addEventListener('popstate', handleRoutingEvent);\n this.listeners.push(function () {\n window.removeEventListener('popstate', handleRoutingEvent);\n });\n };\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = decodeURI(window.location.pathname);\n if (base && path.toLowerCase().indexOf(base.toLowerCase()) === 0) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n function HashHistory (router, base, fallback) {\n History.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History ) HashHistory.__proto__ = History;\n HashHistory.prototype = Object.create( History && History.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n };\n var eventType = supportsPushState ? 'popstate' : 'hashchange';\n window.addEventListener(\n eventType,\n handleRoutingEvent\n );\n this.listeners.push(function () {\n window.removeEventListener(eventType, handleRoutingEvent);\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n // empty path\n if (index < 0) { return '' }\n\n href = href.slice(index + 1);\n // decode the hash but not the search or hash\n // as search(query) is already decoded\n // https://github.com/vuejs/vue-router/issues/2708\n var searchIndex = href.indexOf('?');\n if (searchIndex < 0) {\n var hashIndex = href.indexOf('#');\n if (hashIndex > -1) {\n href = decodeURI(href.slice(0, hashIndex)) + href.slice(hashIndex);\n } else { href = decodeURI(href); }\n } else {\n href = decodeURI(href.slice(0, searchIndex)) + href.slice(searchIndex);\n }\n\n return href\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\nvar AbstractHistory = /*@__PURE__*/(function (History) {\n function AbstractHistory (router, base) {\n History.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History ) AbstractHistory.__proto__ = History;\n AbstractHistory.prototype = Object.create( History && History.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index + 1).concat(route);\n this$1.index++;\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index).concat(route);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(\n route,\n function () {\n this$1.index = targetIndex;\n this$1.updateRoute(route);\n },\n function (err) {\n if (isNavigationFailure(err, NavigationFailureType.duplicated)) {\n this$1.index = targetIndex;\n }\n }\n );\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback =\n mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (raw, current, redirectedFrom) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1 = this;\n\n process.env.NODE_ENV !== 'production' &&\n assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // set up app destroyed handler\n // https://github.com/vuejs/vue-router/issues/2639\n app.$once('hook:destroyed', function () {\n // clean out app from this.apps array once destroyed\n var index = this$1.apps.indexOf(app);\n if (index > -1) { this$1.apps.splice(index, 1); }\n // ensure we still have a main app or null if no apps\n // we do not release the router so it can be reused\n if (this$1.app === app) { this$1.app = this$1.apps[0] || null; }\n\n if (!this$1.app) {\n // clean up event listeners\n // https://github.com/vuejs/vue-router/issues/2341\n this$1.history.teardownListeners();\n }\n });\n\n // main app previously initialized\n // return as we don't need to set up new history listener\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History || history instanceof HashHistory) {\n var handleInitialScroll = function (routeOrError) {\n var from = history.current;\n var expectScroll = this$1.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll && 'fullPath' in routeOrError) {\n handleScroll(this$1, routeOrError, from, false);\n }\n };\n var setupListeners = function (routeOrError) {\n history.setupListeners();\n handleInitialScroll(routeOrError);\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupListeners,\n setupListeners\n );\n }\n\n history.listen(function (route) {\n this$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1.history.push(location, resolve, reject);\n })\n } else {\n this.history.push(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1.history.replace(location, resolve, reject);\n })\n } else {\n this.history.replace(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply(\n [],\n route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n })\n )\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n current = current || this.history.current;\n var location = normalizeLocation(to, current, append, this);\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\nVueRouter.install = install;\nVueRouter.version = '3.4.3';\nVueRouter.isNavigationFailure = isNavigationFailure;\nVueRouter.NavigationFailureType = NavigationFailureType;\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nexport default VueRouter;\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n name: 'Home',\n path: '/',\n component: () => import('@/views/Home')\n }\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport Vuex from 'vuex'\n\nVue.use(Vuex)\n\nexport default new Vuex.Store({\n state: {\n progress: 0,\n loadingCompleted: false\n },\n mutations: {\n SET_LOADER_PROGRESS (state, progress) {\n state.progress = progress\n },\n\n SET_LOADER_COMPLETED (state, completed = true) {\n state.loadingCompleted = completed\n }\n },\n actions: {\n },\n modules: {\n }\n})\n","export const VIDEO_FORMATS = {\n vp9: 'video/webm; codecs=\"vp9\"',\n vp8: 'video/webm; codecs=\"vp8, vorbis\"',\n h264: 'video/mp4; codecs=\"avc1.42E01E\"'\n}\n\nexport const supportedVideoFormat = () => {\n if (!window || !window.document) {\n throw new Error('Not in DOM context.')\n }\n\n const vid = window.document.createElement('video')\n\n for (const key in VIDEO_FORMATS) {\n if (vid.canPlayType(VIDEO_FORMATS[key])) {\n return key\n }\n }\n\n throw new Error('No suitable format found.')\n}\n","export default {\n loading: {\n tagline: 'Mod en grønnere fremtid med Rockwool'\n },\n logo: {\n mainSiteLabel: 'Gå til rockwool.dk'\n },\n hero: {\n title: 'Et vigtigt skridt mod en grøn fremtid',\n subtitle: 'Sådan producerer vi ROCKWOOL isolering af høj kvalitet'\n },\n rawMaterials: {\n title: 'Råmaterialer',\n subtitle: 'Sten - naturens egen ressource',\n stoneDescription: 'Den primære råvare i ROCKWOOL stenuld er sten - en af naturens egne ressourcer. Gennem vulkanske processer producerer kloden hvert år 38.000 gange mere stenmateriale, end det der anvendes i ROCKWOOL-koncernens produktion. Vi henter vores sten fra Norden.',\n recycle: {\n tagline: 'Genanvendte materialer',\n description: 'I vores produktion genanvender vi brugt stenuld og overskudsmaterialer fra andre industrier. I Norden genanvender vi hvert år cirka 30.000 tons materialer fra andre industrier og omkring 10.000 tons brugt stenuld.'\n },\n energy: {\n tagline: 'Omstilling til fossilfri grøn energi',\n description: {\n part1: 'Det er en energiintensiv proces at fremstille stenuld. Derfor omlagde vi i 2021 vores danske produktion, så de største ovne på vores 2 fabrikker nu opvarmes med biogas. På den måde udleder vi så lidt CO',\n part2: 'fra produktionen som muligt.'\n }\n }\n },\n oven: {\n title: 'Ovnen',\n subtitle: 'Fra sten til flydende masse',\n fluid: {\n description: {\n part1: 'I vores ovne genskaber vi den vulkanske proces for at smelte sten om til en flydende masse, lidt ligesom lava. En proces der kræver en høj temperatur – den smeltede stenmasse når op på 1500 °C.',\n part2: 'Det er den høje smeltetemperatur, der giver vores isolering dens helt unikke brandegenskab.'\n }\n },\n heat: {\n tagline: 'Overskudsvarme bliver til fjernvarme',\n description: 'Ovnene køles med vand, som sendes ud i fjernvarmenettet. Vores klimaneutrale overskudsvarme sendes ud i ledningsnettet til de lokale varmeværker, hvor det bruges til at opvarme husstande i lokalområdet.'\n }\n },\n spinner: {\n title: 'Spinneren',\n subtitle: 'I spinneren forvandles stenmassen til fibertråde',\n description: 'Næste proces sker i en helt særlig spinner. Her møder den smeltede masse roterende hjul, som trækker den til tråde – lidt ligesom i en candyfloss maskine. Fibertrådene ligger både vandret og lodret, hvilket giver ROCKWOOL produkterne deres karakteristiske styrke. I spinneren tilføres også lim, der binder trådene sammen.',\n process: {\n tagline: 'Fra tråde til færdig ubrændbar stenuld',\n description: 'Når stenulden kommer ud af spinneren, har den fået en konsistens, der minder om candyfloss. Det sendes nu videre i en tromle, der omdanner det til den stenuld, du kender. Herefter lægger et pendul stenulden ud på båndet, og det er klar til hærdning.'\n }\n },\n stoneWool: {\n title: 'Stenulden',\n subtitle: 'Stenulden hærdes, formes, skæres og pakkes',\n process: {\n description: 'Nu er det tid til, at stenulden skal igennem hærdeovnen. Her presses ulden til den ønskede tykkelse og densitet, afhængigt af hvilket ROCKWOOL produkt, der fremstilles. Grundmaterialet er det samme, men slutresultatet kan være alt fra isolering til bygninger, industri eller tekniske anlæg.'\n },\n products: {\n tagline: 'Mange forskellige produkter',\n description: 'Det er den samme stenuld, der anvendes i produkter fra andre selskaber i ROCKWOOL gruppen.'\n },\n result: {\n description: 'Der har den bare et andet formål: hos Rockfon bliver den til akustikløsninger, hos Rockpanel til facadebeklædninger, Grodan leverer vækstmedier til gartnerier, Lapinus støj- og vibrationsdæmpning til transport, og Rockflow klimasikrer ved regnskyl.'\n }\n },\n recycling: {\n title: 'Genanvendelse',\n subtitle: 'Fraskær fra byggepladser og brugt ROCKWOOL isolering indsamles og genanvendes',\n construction: {\n description: 'Rundt om på byggepladser indsamles de ROCKWOOL produkter, som skæres fra eller kasseres, så de kan blive genanvendt i produktionen. Og fra trælasten, hvis der er beskadigede produkter, der ikke kan sælges. ROCKWOOL produkter indsamles også på genbrugspladser i hele landet.'\n },\n granulate: {\n description: 'Materialet granuleres, testes for uønskede stoffer og indgår på lige fod med vores andre råvarer i fremstillingen af ny kvalitetsisolering.'\n }\n },\n footer: {\n imageCaption: 'Et skridt nærmere en grøn fremtid',\n contact: {\n linkLabel: 'Gå til rockwool.dk',\n address: 'ROCKWOOL Danmark A/S ',\n address2: 'Hovedgaden 501',\n city: '2640 Hedehusene',\n phone: 'Tel: (+45) 46 56 16 16',\n email: 'info@rockwool.dk',\n companyId: 'CVR. nr. 42391719'\n },\n SoMe: {\n tagline: 'Følg med i vores arbejde',\n description: 'Se hvordan vi kommer nærmere vores mål på vores sociale kanaler'\n }\n },\n links: {\n mainSite: 'https://www.rockwool.dk/',\n facebook: 'https://www.facebook.com/ROCKWOOLDanmark/',\n instagram: 'https://www.instagram.com/rockwooldanmark/',\n linkedin: 'https://www.linkedin.com/company/rockwool-danmark/',\n twitter: 'https://twitter.com/rockwooldk'\n }\n}\n","export default {\n loading: {\n tagline: 'Mot en grönare framtid med ROCKWOOL'\n },\n logo: {\n mainSiteLabel: 'Besök rockwool.se'\n },\n hero: {\n title: 'Ett stort steg mot en grön framtid',\n subtitle: 'Så gör vi för att producera ROCKWOOL isolering av hög kvalitet'\n },\n rawMaterials: {\n title: 'Råvaror',\n subtitle: 'Sten – naturens egen resurs',\n stoneDescription: 'Den primära råvaran i ROCKWOOL stenull är sten – en av naturens egna resurser. Genom vulkaniska processer bildas det årligen 38 000 gånger mer bergmaterial på jordklotet än vad som används vid vår stenullsproduktion. Vi hämtar sten från Norden.',\n recycle: {\n tagline: 'Fossilfria bränslen vid fabrikerna i Norden',\n description: 'I vår produktionsprocess återvinner vi både spill från egen produktion samt överskottsmaterial från andra industrier. Vi återvinner dessutom stenull från byggarbetsplatser. Våra danska fabriker återvinner cirka 30 000 ton material per år och en betydande del av detta kommer från den svenska byggmarknaden. Volymen ökar för varje år som går.'\n },\n energy: {\n tagline: 'Fossilfria bränslen vid fabrikerna i Norden',\n description: {\n part1: 'Det är en energikrävande process att framställa stenull. Från och med december 2020 drivs vår stora fabrik för byggisolering i Moss, Norge, av förnyelsebar el. I Danmark drivs de två fabrikerna med biogas från och med januari 2021. Tack vare detta har vi kunnat minska våra CO',\n part2: '-utsläpp från produktionen med 70 % i Norden.'\n }\n }\n },\n oven: {\n title: 'Smältugnen',\n subtitle: 'Från sten till flytande massa',\n fluid: {\n description: {\n part1: 'I våra smältugnar återskapar vi den vulkaniska processen och omvandlar sten till flytande massa, ungefär som lava. Det kräver en hög temperatur – den smälta stenmassan når 1 500 °C.',\n part2: 'Det är de höga temperaturerna som ger vår isolering unika brandegenskaper.'\n }\n },\n heat: {\n tagline: 'Överskottsvärme förvandlas till fjärrvärme',\n description: 'Ugnarna kyls med vatten som skickas ut i fjärrvärmenätet. Vår klimatneutrala överskottsvärme används för att värma upp 1 500 bostäder.'\n }\n },\n spinner: {\n title: 'Spinnaren',\n subtitle: 'I spinnaren förvandlas stenmassan till fibertrådar',\n description: 'Nästa process genomförs i en mycket speciell spinner. Här träffas den smälta massan av roterande hjul som drar ut den till trådar – liknande sockervadd. Fibertrådarna är både horisontella och vertikala, vilket ger ROCKWOOL produkter den karaktäristiska hållfastheten. Spinnaren adderar också ett lim som binder ihop trådarna.',\n process: {\n tagline: 'Från trådar till färdig, obrännbar stenull',\n description: 'När stenullen kommer ut ur spinnaren har den en sockervaddsliknande konsistens. Den förs nu vidare in i en trumma som omvandlar den till den stenull du känner igen från våra produkter. Sedan lägger en pendel ut stenullen på bandet och den klar för härdning.'\n }\n },\n stoneWool: {\n title: 'Stenullen',\n subtitle: 'Stenullen är härdad, formad, skuren och packad',\n process: {\n description: 'Nu är det dags för stenullen att bearbetas i härdningsugnen. Här pressas ullen till önskad tjocklek och densitet, beroende på vilken ROCKWOOL produkt som tillverkas. Grundmaterialet är detsamma, men slutresultatet kan bli allt från isolering för byggnader, industriell verksamhet eller tekniska installationer.'\n },\n products: {\n tagline: 'Många olika produkter',\n description: 'Det är samma stenull som används i produkter från andra företag inom ROCKWOOL koncernen.'\n },\n result: {\n description: 'Stenullen uppfyller dock olika behov: på Rockfon används den för akustiska lösningar, på Rockpanel för fasadbeklädnader, Grodan levererar produkter för odling, Lapinus erbjuder buller- och vibrationsdämpning för transport, medan Rockflow klimatsäkrar vid skyfall.'\n }\n },\n recycling: {\n title: 'Återvinning',\n subtitle: 'Spill från byggarbetsplatser och begagnad ROCKWOOL isolering samlas in och återvinns',\n construction: {\n description: 'På byggarbetsplatser samlas både spill och rivningsull från ROCKWOOL in för att kunna återvinnas i vår produktion igen.'\n },\n granulate: {\n description: 'Materialet sorteras och kontrolleras för att sedan, tillsammans med våra övriga råvaror, vara en del vid tillverkningen av ny kvalitetsisolering.'\n }\n },\n footer: {\n imageCaption: 'Ett steg närmare en grön framtid',\n contact: {\n linkLabel: 'Besök rockwool.se',\n address: 'ROCKWOOL AB',\n address2: 'Kompanigatan 5',\n city: '550 11, Jönköping, Sweden',\n phone: 'Tel.: (+46) 36 570 52 50',\n email: 'info@rockwool.se',\n companyId: 'Org.nr 556347-9152'\n },\n SoMe: {\n tagline: 'Häng med oss i sociala medier',\n description: 'Där berättar vi mer om vårt hållbarhetsarbete och arbetet med att nå våra mål.'\n }\n },\n links: {\n mainSite: 'https://www.rockwool.se/',\n facebook: 'https://www.facebook.com/ROCKWOOLSverige/',\n instagram: 'https://www.instagram.com/rockwool_sverige/',\n linkedin: 'https://www.linkedin.com/company/rockwool-sweden',\n twitter: 'https://twitter.com/ROCKWOOLGroup'\n }\n}\n","export default {\n loading: {\n tagline: 'Mot en grønnere fremtid med ROCKWOOL'\n },\n logo: {\n mainSiteLabel: 'Gå til rockwool.no'\n },\n hero: {\n title: 'Et viktig skritt mot en grønnere fremtid',\n subtitle: 'Slik produserer vi ROCKWOOL isolasjon av høy kvalitet'\n },\n rawMaterials: {\n title: 'Råmaterialer',\n subtitle: 'Stein – naturens egen ressurs',\n stoneDescription: 'ROCKWOOL steinull lages av stein, en av naturens egne ressurser. Gjennom vulkanske prosesser produserer kloden vår hvert år 38 000 ganger mer steinmateriale enn det som brukes i produksjonen til ROCKWOOL konsernet.',\n recycle: {\n tagline: 'Gjenbrukte materialer',\n description: 'I produksjonen vår resirkulerer vi også brukt steinull og overskuddsmaterialer fra andre næringer. Totalt i Norden resirkulerer fabrikkene våre over 30 000 tonn fra andre næringer.'\n },\n energy: {\n tagline: 'Omstilling til fornybare energikilder',\n description: {\n part1: 'Produksjonen av steinull krever mye energi. Høsten 2020 startet vi produksjon med en helt ny elektrisk smelteovn på fabrikken vår i Moss. Fra januar 2021 har vi brukt karbonnøytral biogass på de største ovnene våre i Danmark. Til sammen bidro dette til å redusere vårt direkte CO',\n part2: '-utslipp fra vår produksjon i Norden med hele 70 prosent.'\n }\n }\n },\n oven: {\n title: 'Ovnen',\n subtitle: 'Fra stein til flytende masse',\n fluid: {\n description: {\n part1: 'I smelteovnen gjenskaper vi en tilnærmet vulkansk prosess og smelter steinen om til en flytende masse, litt som lava. Det krever høy temperatur og den smeltede steinmassen kommer opp i nærmere 1 500 °C.',\n part2: 'Det er den høye smeltetemperaturen som gir isolasjonen vår den spesielle brannmotstandsevnen.'\n }\n },\n heat: {\n tagline: 'Overskuddsvarme blir til fjernvarme',\n description: 'Ovnene kjøles ned med vann som så sendes ut i fjernvarmenettet og brukes til å varme opp mange boliger i nærområde vårt.'\n }\n },\n spinner: {\n title: 'Spinneren',\n subtitle: 'I spinneren forvandles steinmassen til tråder',\n description: 'Den neste prosessen skjer i en helt spesiell spinner. Her møter den smeltede massen roterende hjul, som trekker den til tråder, litt på samme måte som i en sukkerspinn-maskin. Trådene ligger både loddrett og vannrett, og bidrar til å gi ROCKWOOL produktene sin helt karakteristiske styrke. I spinneren tilføres det også lim, som binder trådene sammen.',\n process: {\n tagline: 'Fra tråder til ferdig, ubrennbar steinull',\n description: 'Når steinullen kommer ut av spinneren, har den fått en konsistens som minner om sukkerspinn. Den føres nå videre inn i en trommel som samler ullen som et kontinuerlig teppe. Etter dette legger en pendel steinullen ut på et samlebånd og den er klar for herding.'\n }\n },\n stoneWool: {\n title: 'Steinull',\n subtitle: 'Steinullen herdes, formes, skjæres og pakkes',\n process: {\n description: 'Nå skal steinullen gjennom herdeovnen. Her presses ullen til ønsket tykkelse og densitet, avhengig av hvilket ROCKWOOOL produkt som produseres. Grunnmaterialet er det samme, men sluttresultatet kan være alt fra isolering til bygninger, industri eller tekniske anlegg. Isolasjonen som produseres er fri for farlige kjemikalier og påfører ingen fare for den som anvender produktene. Produktene er godkjent til bruk innenfor ulike miljøsertifiseringsordninger som anvendes i Norden. Som en ytterligere satsning i vårt bærekraftsabeid gikk vi I 2023 over til klar folie på våre produkter noe bidrar til å øke resikuleringsgraden for folien betydelig.'\n },\n products: {\n tagline: 'Mange forskjellige produkter',\n description: 'Det er den samme steinullen som brukes i flere produkter og som selges av ulike selskaper innenfor ROCKWOOOL gruppen.'\n },\n result: {\n description: 'Der brukes den bare til andre formål: Rockfon sine akustikkløsninger, Rockpanel sine fasadeplater, Grodan sine vekstmedier brukt i gartnerier, Lapinus produkter innen transport støy- og vibrasjonsdemping og Rockflow som klimasikring ved flom og regnskyll.'\n }\n },\n recycling: {\n title: 'Gjenbruk',\n subtitle: 'Avskjær fra byggeplasser og brukt ROCKWOOL isolasjon samles inn og resirkuleres',\n construction: {\n description: 'Rundt på byggeplasser er det mulig å få samlet inn avskjær fra nye ROCKWOOL produkter og allerede brukt ROCKWOOL isolasjon. Dette er avfall som ellers ville ha endt på et deponi, men som vi nå kan smelte om til ny kvalitetsisolasjon.'\n },\n granulate: {\n description: 'Nå er vi tilbake der vi startet. ROCKWOOL isolasjon kan smeltes om og om igjen til ny isolasjon. Dette er fordi den nettopp er laget av naturens eget materiale, stein.'\n }\n },\n footer: {\n imageCaption: 'Ett skritt nærmere en grønn fremtid',\n contact: {\n linkLabel: 'Gå til rockwool.no',\n address: 'AS ROCKWOOL',\n address2: 'Gjerdrums vei 19',\n city: '0401 Oslo',\n phone: 'Tel: (+47) 22 02 40 00',\n email: 'info@rockwool.no',\n companyId: ''\n },\n SoMe: {\n tagline: 'Følg med i arbeidet vårt',\n description: 'Se hvordan vi kommer nærmere målene våre på våre sosiale kanaler'\n }\n },\n links: {\n mainSite: 'https://www.rockwool.no/',\n facebook: 'https://www.facebook.com/ROCKWOOLNorge/',\n instagram: 'https://www.instagram.com/rockwool_norge/',\n linkedin: 'https://www.linkedin.com/company/rockwool-norway',\n twitter: 'https://twitter.com/ROCKWOOLGroup'\n }\n}\n","export default {\n loading: {\n tagline: 'ROCKWOOL on matkalla kohti vihreämpää tulevaisuutta'\n },\n logo: {\n mainSiteLabel: 'Siirry osoitteeseen rockwool.fi'\n },\n hero: {\n title: 'Tärkeä askel kohti vihreämpää tulevaisuutta',\n subtitle: 'Näin tuotamme korkealaatuisia ROCKWOOL-eristeitä'\n },\n rawMaterials: {\n title: 'Raaka-aineet',\n subtitle: 'Kivi – aito luonnonvara',\n stoneDescription: 'ROCKWOOL-kivivillan pääraaka-aine on kivi, joka on aito luonnonvara. Planeettamme vulkaanisissa prosesseissa syntyy vuosittain 38 000 kertaa enemmän kiviainesta kuin ROCKWOOL-konsernin tuotannossa käytetään. Kivimateriaalimme on peräisin Pohjoismaista.',\n recycle: {\n tagline: 'Kierrätysmateriaalit',\n description: 'Käytämme tuotannossamme kierrätettyä kivivillaa ja muiden teollisuudenalojen ylijäämämateriaaleja. Kierrätämme vuosittain noin 30 000 tonnia muilta teollisuudenaloilta peräisin olevia materiaaleja ja kierrätämme noin 10 000 tonnia käytettyä kivivillaa. Vastaanottamamme käytetyn kivivillan määrä kasvaa vuosi vuodelta.'\n },\n energy: {\n tagline: 'Siirtyminen tuotantoon, jolla on pienemmät ilmastovaikutukset',\n description: {\n part1: 'Kivivillan valmistaminen vaatii energiaa. Mossin tehtaamme Norjassa on alkanut käyttämään vihreää sähköä joulukuusta 2020 alkaen. Tanskassa molemmat tehtaamme vaihtoivat polttoaineen biokaasuun tammikuussa 2021. Näin tuotantomme hiilijalanjälki Pohjoismaissa on pienetynyt jopa 70 prosenttia.',\n part2: ''\n }\n }\n },\n oven: {\n title: 'Uunit',\n subtitle: 'Kivestä sulaksi massaksi',\n fluid: {\n description: {\n part1: 'Uunimme toimivat kuin vulkaaninen prosessi, jossa kiviaines muuttuu laavaa muistuttavaksi sulaksi massaksi. Prosessi vaatii korkean lämpötilan – sula kivimassa saavuttaa jopa 1 500 °C kuumuuden.',\n part2: 'Eristeidemme ainutlaatuiset palo-ominaisuudet edellyttävät korkeiden lämpötilojen käyttöä valmistuksessa.'\n }\n },\n heat: {\n tagline: 'Ylimääräinen lämpö muuttuu kaukolämmöksi',\n description: 'Sulatusuuneja jäähdytetään vedellä, josta ylijäämälämpö ohjataan kaukolämpöverkkoon. Ilmastoneutraalia hukkalämpöämme käytetään 1 500 kodin lämmittämiseen.'\n }\n },\n spinner: {\n title: 'Kuidutus',\n subtitle: 'Kivimassa kehrätään kuitulangaksi',\n description: 'Seuraavassa prosessissa käytetään erityistä kuidutuslaitetta. Sula massa kohtaa siinä pyörivät pyörät, jotka vetävät massan kuiduksi hattarakoneen tapaan. Kuituja on sekä vaaka- että pystysuunnassa, mikä antaa ROCKWOOL-tuotteille niille tyypillisen lujuuden. Kuidutuslaite lisää tuotteeseen myös liimaa, joka sitoo kuidut yhteen.',\n process: {\n tagline: 'Kuidusta valmiiksi palamattomaksi kivivillaksi',\n description: 'Kuitulaitteen jälkeen kivivillan koostumus muistuttaa hattaraa. Prosessin seuraavassa vaiheessa rumpu kokoaa hattaramaisen materiaalin tutun kivivillan muotoon. Heiluri sitten laskostaa kivivillan hihnalle, jonka jälkeen se on valmsita puristettavaksi oikeaan mittaansa ja kovetettavaksi.'\n }\n },\n stoneWool: {\n title: ' Kivivilla',\n subtitle: 'Kivivilla kovetetaan, muotoillaan, leikataan ja pakataan',\n process: {\n description: 'Seuraavaksi kivivilla käytetään kovetusuunissa. Villa painetaan siinä haluttuun paksuuteen ja tiheyteen riippuen siitä, mitä ROCKWOOL-tuotetta valmistetaan. Perusmateriaali on sama, mutta lopputuotteilla on monia käyttökohteita rakennusten, teollisuuden tai talotekniikan eristyksiin ja palosuojauksiin.'\n },\n products: {\n tagline: 'Monia erilaisia tuotteita',\n description: 'Samaa kivivillaa käytetään myös ROCKWOOL-konsernin muiden yritysten tuotteissa.'\n },\n result: {\n description: 'Rockfon valmistaa siitä akustisia ratkaisuja ja Rockpanel julkisivuverhoiluun sopivia tuotteita. Grodan puolestaan tarjoaa kasvatusalustoja puutarhaviljelyyn, Lapinus tuotteita melun- ja tärinänvaimennukseen liikenteessä ja Rockflow sateelta suojaavia ratkaisuja.'\n }\n },\n recycling: {\n title: 'Kierrätys',\n subtitle: 'Rakennustyömaiden ylijäämäpalat ja käytetyt ROCKWOOL-eristeet kerätään ja kierrätetään',\n construction: {\n description: 'Rakennustyömailla kerätään kivivillatuotteita, jotka jäävät yli asennustyössä, ja ne kierrätetään takaisin tuotantoon. Samoin käsitellään vaurioituneet tuotteet, joita ei voida myydä. ROCKWOOL-tuotteita kerätään myös kierrätyspisteissä osassa Pohjoismaita.'\n },\n granulate: {\n description: 'Kierrätetty materiaali briketoidaan ja koostumus varmistetaan testein. Sitä käytetään yhdessä muiden raaka-aineidemme kanssa uusien laadukkaiden eristeiden tuotantoon.'\n }\n },\n footer: {\n imageCaption: 'Askeleen lähempänä vihreää tulevaisuutta',\n contact: {\n linkLabel: 'Siirry osoitteeseen rockwool.fi',\n address: 'ROCKWOOL Finland Oy',\n address2: 'Pakkalankuja 6',\n city: '01510 Vantaa, Suomi',\n phone: 'Puhelin: (+358) 9 8563 5880',\n email: 'info@rockwool.fi',\n companyId: 'Y-tunnus: 2104325-3'\n },\n SoMe: {\n tagline: 'Seuraa työtämme',\n description: 'Seuraa sosiaalisesta mediasta, miten pääsemme lähemmäksi tavoitteitamme.'\n }\n },\n links: {\n mainSite: 'https://www.rockwool.fi/',\n facebook: 'https://www.facebook.com/rockwoolfinland/',\n instagram: 'https://www.instagram.com/rockwool_finland/',\n linkedin: 'https://www.linkedin.com/company/rockwool-finland',\n twitter: 'https://twitter.com/ROCKWOOLGroup'\n }\n}\n","import Vue from 'vue'\nimport VueI18n from 'vue-i18n'\nimport App from './App.vue'\nimport router from './router'\nimport store from './store'\nimport { bootstrap } from '@heavyy/wah-bootstrap/helpers'\nimport preloader from 'preloader'\nimport { supportedVideoFormat } from '@/utils/helpers'\n\nimport '@/assets/scss/index.scss'\n\nimport da from './languages/da'\nimport se from './languages/se'\nimport no from './languages/no'\nimport fi from './languages/fi'\n\nVue.use(VueI18n)\nVue.config.productionTip = false\n\nconst messages = { da, se, no, fi }\n\nconst i18n = new VueI18n({\n locale: localStorage.getItem('languageSelected') || process.env.VUE_APP_LOCALE_CODE,\n messages\n})\n\nconst $loader = preloader({\n xhrImages: false\n})\n\nconst $publicPath = process.env.BASE_URL\nObject.defineProperty(Vue.prototype, '$publicPath', {\n get () { return $publicPath }\n})\n\nObject.defineProperty(Vue.prototype, '$preloader', {\n get () { return $loader }\n})\n\nlet ts = null\n\n$loader.on('progress', progress => {\n store.commit('SET_LOADER_PROGRESS', progress)\n})\n\n$loader.on('complete', async () => {\n const t2 = performance.now()\n const ms = 2000 - (t2 - ts)\n\n console.log(`Wait for ${ms}ms`)\n\n await new Promise(r => setTimeout(r, ms || 0))\n store.commit('SET_LOADER_COMPLETED')\n})\n\nconst files = require('../.preload.json')\n\nfiles.forEach(file => {\n $loader.add(`${$publicPath}${file}`)\n})\n\nnew Vue({\n router,\n store,\n async mounted () {\n bootstrap()\n await this.$nextTick()\n const vidFormat = supportedVideoFormat()\n $loader.addVideo(`${$publicPath}videos/hero_720.${vidFormat === 'h264' ? 'mp4' : 'webm'}`)\n ts = performance.now()\n $loader.load()\n },\n render: h => h(App),\n i18n\n}).$mount('#app')\n","var base64Mime = require('base64mime');\n\nvar isBase64 = require('./isBase64');\n\n/**\n * Return the file extension based on the path passed in. If the file does not have an extension null will be passed back\n *\n * @method getExtension\n * @param {String} url URL we'd like a filextension from. This can be relative or absolute.\n * @return {String}\n */\nmodule.exports = function getExtension (url) {\n var ext;\n\n if (isBase64(url)) {\n var mime = base64Mime(url);\n ext = (mime.split('/'))[1];\n } else {\n ext = url.split('.').pop();\n }\n\n return ext || null;\n};\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./bg.vue?vue&type=style&index=0&id=3168f765&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./bg.vue?vue&type=style&index=0&id=3168f765&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./loader.vue?vue&type=style&index=1&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./loader.vue?vue&type=style&index=1&lang=scss&\"","module.exports = require('./lib/index');\n","var parseHTTPHeader = require('../util/parseHTTPHeader');\n\n/**\n * FileMeta is a class which will hold file meta data. Each LoaderBase contains a FileMeta object\n * that you can use to query.\n *\n * @class FileMeta\n * @constructor\n * @param {String} header HTTP Header sent when loading this file\n */\nvar FileMeta = function (header) {\n /**\n * This property is the mimetype for the file\n *\n * @property mime\n * @type {String}\n */\n this.mime = null;\n\n /**\n * This is the file size in bytes\n *\n * @type {Number}\n */\n this.size = null;\n\n /**\n * This is a Date object which represents the last time this file was modified\n *\n * @type {Date}\n */\n this.lastModified = null;\n\n /**\n * This is the HTTP header as an Object for the file.\n *\n * @type {Object}\n */\n this.httpHeader = null;\n\n if (header) this.setFromHTTPHeader(header);\n};\n\nFileMeta.prototype = {\n\n /**\n * This function will be called in the constructor of FileMeta. It will parse the HTTP\n * headers returned by a server and save useful information for development.\n *\n * @method setFromHTTPHeader\n * @param {String} header HTTP header returned by the server\n */\n setFromHTTPHeader: function (header) {\n this.httpHeader = parseHTTPHeader(header);\n\n if (this.httpHeader[ 'content-length' ]) this.size = this.httpHeader[ 'content-length' ];\n\n if (this.httpHeader[ 'content-type' ]) this.mime = this.httpHeader[ 'content-type' ];\n\n if (this.httpHeader[ 'last-modified' ]) this.lastModified = new Date(this.httpHeader[ 'last-modified' ]);\n }\n};\n\nmodule.exports = FileMeta;\n","/*!\n * vuex v3.5.1\n * (c) 2020 Evan You\n * @license MIT\n */\nfunction applyMixin (Vue) {\n var version = Number(Vue.version.split('.')[0]);\n\n if (version >= 2) {\n Vue.mixin({ beforeCreate: vuexInit });\n } else {\n // override init and inject vuex init procedure\n // for 1.x backwards compatibility.\n var _init = Vue.prototype._init;\n Vue.prototype._init = function (options) {\n if ( options === void 0 ) options = {};\n\n options.init = options.init\n ? [vuexInit].concat(options.init)\n : vuexInit;\n _init.call(this, options);\n };\n }\n\n /**\n * Vuex init hook, injected into each instances init hooks list.\n */\n\n function vuexInit () {\n var options = this.$options;\n // store injection\n if (options.store) {\n this.$store = typeof options.store === 'function'\n ? options.store()\n : options.store;\n } else if (options.parent && options.parent.$store) {\n this.$store = options.parent.$store;\n }\n }\n}\n\nvar target = typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\nvar devtoolHook = target.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\nfunction devtoolPlugin (store) {\n if (!devtoolHook) { return }\n\n store._devtoolHook = devtoolHook;\n\n devtoolHook.emit('vuex:init', store);\n\n devtoolHook.on('vuex:travel-to-state', function (targetState) {\n store.replaceState(targetState);\n });\n\n store.subscribe(function (mutation, state) {\n devtoolHook.emit('vuex:mutation', mutation, state);\n }, { prepend: true });\n\n store.subscribeAction(function (action, state) {\n devtoolHook.emit('vuex:action', action, state);\n }, { prepend: true });\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\nfunction find (list, f) {\n return list.filter(f)[0]\n}\n\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array} cache\n * @return {*}\n */\nfunction deepCopy (obj, cache) {\n if ( cache === void 0 ) cache = [];\n\n // just return if obj is immutable value\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n // if obj is hit, it is in circular structure\n var hit = find(cache, function (c) { return c.original === obj; });\n if (hit) {\n return hit.copy\n }\n\n var copy = Array.isArray(obj) ? [] : {};\n // put the copy into cache at first\n // because we want to refer it in recursive deepCopy\n cache.push({\n original: obj,\n copy: copy\n });\n\n Object.keys(obj).forEach(function (key) {\n copy[key] = deepCopy(obj[key], cache);\n });\n\n return copy\n}\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\nfunction partial (fn, arg) {\n return function () {\n return fn(arg)\n }\n}\n\n// Base data struct for store's module, package with some attribute and method\nvar Module = function Module (rawModule, runtime) {\n this.runtime = runtime;\n // Store some children item\n this._children = Object.create(null);\n // Store the origin module object which passed by programmer\n this._rawModule = rawModule;\n var rawState = rawModule.state;\n\n // Store the origin module's state\n this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors = { namespaced: { configurable: true } };\n\nprototypeAccessors.namespaced.get = function () {\n return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n return this._children[key]\n};\n\nModule.prototype.hasChild = function hasChild (key) {\n return key in this._children\n};\n\nModule.prototype.update = function update (rawModule) {\n this._rawModule.namespaced = rawModule.namespaced;\n if (rawModule.actions) {\n this._rawModule.actions = rawModule.actions;\n }\n if (rawModule.mutations) {\n this._rawModule.mutations = rawModule.mutations;\n }\n if (rawModule.getters) {\n this._rawModule.getters = rawModule.getters;\n }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n if (this._rawModule.getters) {\n forEachValue(this._rawModule.getters, fn);\n }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n if (this._rawModule.actions) {\n forEachValue(this._rawModule.actions, fn);\n }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n if (this._rawModule.mutations) {\n forEachValue(this._rawModule.mutations, fn);\n }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n // register root module (Vuex.Store options)\n this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n return path.reduce(function (module, key) {\n return module.getChild(key)\n }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n var module = this.root;\n return path.reduce(function (namespace, key) {\n module = module.getChild(key);\n return namespace + (module.namespaced ? key + '/' : '')\n }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n var this$1 = this;\n if ( runtime === void 0 ) runtime = true;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, rawModule);\n }\n\n var newModule = new Module(rawModule, runtime);\n if (path.length === 0) {\n this.root = newModule;\n } else {\n var parent = this.get(path.slice(0, -1));\n parent.addChild(path[path.length - 1], newModule);\n }\n\n // register nested modules\n if (rawModule.modules) {\n forEachValue(rawModule.modules, function (rawChildModule, key) {\n this$1.register(path.concat(key), rawChildModule, runtime);\n });\n }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n var child = parent.getChild(key);\n\n if (!child) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to unregister module '\" + key + \"', which is \" +\n \"not registered\"\n );\n }\n return\n }\n\n if (!child.runtime) {\n return\n }\n\n parent.removeChild(key);\n};\n\nModuleCollection.prototype.isRegistered = function isRegistered (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n\n return parent.hasChild(key)\n};\n\nfunction update (path, targetModule, newModule) {\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, newModule);\n }\n\n // update target module\n targetModule.update(newModule);\n\n // update nested modules\n if (newModule.modules) {\n for (var key in newModule.modules) {\n if (!targetModule.getChild(key)) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n 'manual reload is needed'\n );\n }\n return\n }\n update(\n path.concat(key),\n targetModule.getChild(key),\n newModule.modules[key]\n );\n }\n }\n}\n\nvar functionAssert = {\n assert: function (value) { return typeof value === 'function'; },\n expected: 'function'\n};\n\nvar objectAssert = {\n assert: function (value) { return typeof value === 'function' ||\n (typeof value === 'object' && typeof value.handler === 'function'); },\n expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n getters: functionAssert,\n mutations: functionAssert,\n actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n Object.keys(assertTypes).forEach(function (key) {\n if (!rawModule[key]) { return }\n\n var assertOptions = assertTypes[key];\n\n forEachValue(rawModule[key], function (value, type) {\n assert(\n assertOptions.assert(value),\n makeAssertionMessage(path, key, type, value, assertOptions.expected)\n );\n });\n });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n if (path.length > 0) {\n buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n }\n buf += \" is \" + (JSON.stringify(value)) + \".\";\n return buf\n}\n\nvar Vue; // bind on install\n\nvar Store = function Store (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #731\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Vue, \"must call Vue.use(Vuex) before creating a store instance.\");\n assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n assert(this instanceof Store, \"store must be called with the new operator.\");\n }\n\n var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n var strict = options.strict; if ( strict === void 0 ) strict = false;\n\n // store internal state\n this._committing = false;\n this._actions = Object.create(null);\n this._actionSubscribers = [];\n this._mutations = Object.create(null);\n this._wrappedGetters = Object.create(null);\n this._modules = new ModuleCollection(options);\n this._modulesNamespaceMap = Object.create(null);\n this._subscribers = [];\n this._watcherVM = new Vue();\n this._makeLocalGettersCache = Object.create(null);\n\n // bind commit and dispatch to self\n var store = this;\n var ref = this;\n var dispatch = ref.dispatch;\n var commit = ref.commit;\n this.dispatch = function boundDispatch (type, payload) {\n return dispatch.call(store, type, payload)\n };\n this.commit = function boundCommit (type, payload, options) {\n return commit.call(store, type, payload, options)\n };\n\n // strict mode\n this.strict = strict;\n\n var state = this._modules.root.state;\n\n // init root module.\n // this also recursively registers all sub-modules\n // and collects all module getters inside this._wrappedGetters\n installModule(this, state, [], this._modules.root);\n\n // initialize the store vm, which is responsible for the reactivity\n // (also registers _wrappedGetters as computed properties)\n resetStoreVM(this, state);\n\n // apply plugins\n plugins.forEach(function (plugin) { return plugin(this$1); });\n\n var useDevtools = options.devtools !== undefined ? options.devtools : Vue.config.devtools;\n if (useDevtools) {\n devtoolPlugin(this);\n }\n};\n\nvar prototypeAccessors$1 = { state: { configurable: true } };\n\nprototypeAccessors$1.state.get = function () {\n return this._vm._data.$$state\n};\n\nprototypeAccessors$1.state.set = function (v) {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(false, \"use store.replaceState() to explicit replace store state.\");\n }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n var this$1 = this;\n\n // check object-style commit\n var ref = unifyObjectStyle(_type, _payload, _options);\n var type = ref.type;\n var payload = ref.payload;\n var options = ref.options;\n\n var mutation = { type: type, payload: payload };\n var entry = this._mutations[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown mutation type: \" + type));\n }\n return\n }\n this._withCommit(function () {\n entry.forEach(function commitIterator (handler) {\n handler(payload);\n });\n });\n\n this._subscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .forEach(function (sub) { return sub(mutation, this$1.state); });\n\n if (\n (process.env.NODE_ENV !== 'production') &&\n options && options.silent\n ) {\n console.warn(\n \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n 'Use the filter functionality in the vue-devtools'\n );\n }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n var this$1 = this;\n\n // check object-style dispatch\n var ref = unifyObjectStyle(_type, _payload);\n var type = ref.type;\n var payload = ref.payload;\n\n var action = { type: type, payload: payload };\n var entry = this._actions[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown action type: \" + type));\n }\n return\n }\n\n try {\n this._actionSubscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .filter(function (sub) { return sub.before; })\n .forEach(function (sub) { return sub.before(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in before action subscribers: \");\n console.error(e);\n }\n }\n\n var result = entry.length > 1\n ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n : entry[0](payload);\n\n return new Promise(function (resolve, reject) {\n result.then(function (res) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.after; })\n .forEach(function (sub) { return sub.after(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in after action subscribers: \");\n console.error(e);\n }\n }\n resolve(res);\n }, function (error) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.error; })\n .forEach(function (sub) { return sub.error(action, this$1.state, error); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in error action subscribers: \");\n console.error(e);\n }\n }\n reject(error);\n });\n })\n};\n\nStore.prototype.subscribe = function subscribe (fn, options) {\n return genericSubscribe(fn, this._subscribers, options)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn, options) {\n var subs = typeof fn === 'function' ? { before: fn } : fn;\n return genericSubscribe(subs, this._actionSubscribers, options)\n};\n\nStore.prototype.watch = function watch (getter, cb, options) {\n var this$1 = this;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n }\n return this._watcherVM.$watch(function () { return getter(this$1.state, this$1.getters); }, cb, options)\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n var this$1 = this;\n\n this._withCommit(function () {\n this$1._vm._data.$$state = state;\n });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n assert(path.length > 0, 'cannot register the root module by using registerModule.');\n }\n\n this._modules.register(path, rawModule);\n installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n // reset store to update getters...\n resetStoreVM(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n var this$1 = this;\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n this._modules.unregister(path);\n this._withCommit(function () {\n var parentState = getNestedState(this$1.state, path.slice(0, -1));\n Vue.delete(parentState, path[path.length - 1]);\n });\n resetStore(this);\n};\n\nStore.prototype.hasModule = function hasModule (path) {\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n return this._modules.isRegistered(path)\n};\n\nStore.prototype.hotUpdate = function hotUpdate (newOptions) {\n this._modules.update(newOptions);\n resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n var committing = this._committing;\n this._committing = true;\n fn();\n this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors$1 );\n\nfunction genericSubscribe (fn, subs, options) {\n if (subs.indexOf(fn) < 0) {\n options && options.prepend\n ? subs.unshift(fn)\n : subs.push(fn);\n }\n return function () {\n var i = subs.indexOf(fn);\n if (i > -1) {\n subs.splice(i, 1);\n }\n }\n}\n\nfunction resetStore (store, hot) {\n store._actions = Object.create(null);\n store._mutations = Object.create(null);\n store._wrappedGetters = Object.create(null);\n store._modulesNamespaceMap = Object.create(null);\n var state = store.state;\n // init all modules\n installModule(store, state, [], store._modules.root, true);\n // reset vm\n resetStoreVM(store, state, hot);\n}\n\nfunction resetStoreVM (store, state, hot) {\n var oldVm = store._vm;\n\n // bind store public getters\n store.getters = {};\n // reset local getters cache\n store._makeLocalGettersCache = Object.create(null);\n var wrappedGetters = store._wrappedGetters;\n var computed = {};\n forEachValue(wrappedGetters, function (fn, key) {\n // use computed to leverage its lazy-caching mechanism\n // direct inline function use will lead to closure preserving oldVm.\n // using partial to return function with only arguments preserved in closure environment.\n computed[key] = partial(fn, store);\n Object.defineProperty(store.getters, key, {\n get: function () { return store._vm[key]; },\n enumerable: true // for local getters\n });\n });\n\n // use a Vue instance to store the state tree\n // suppress warnings just in case the user has added\n // some funky global mixins\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n store._vm = new Vue({\n data: {\n $$state: state\n },\n computed: computed\n });\n Vue.config.silent = silent;\n\n // enable strict mode for new vm\n if (store.strict) {\n enableStrictMode(store);\n }\n\n if (oldVm) {\n if (hot) {\n // dispatch changes in all subscribed watchers\n // to force getter re-evaluation for hot reloading.\n store._withCommit(function () {\n oldVm._data.$$state = null;\n });\n }\n Vue.nextTick(function () { return oldVm.$destroy(); });\n }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n var isRoot = !path.length;\n var namespace = store._modules.getNamespace(path);\n\n // register in namespace map\n if (module.namespaced) {\n if (store._modulesNamespaceMap[namespace] && (process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate namespace \" + namespace + \" for the namespaced module \" + (path.join('/'))));\n }\n store._modulesNamespaceMap[namespace] = module;\n }\n\n // set state\n if (!isRoot && !hot) {\n var parentState = getNestedState(rootState, path.slice(0, -1));\n var moduleName = path[path.length - 1];\n store._withCommit(function () {\n if ((process.env.NODE_ENV !== 'production')) {\n if (moduleName in parentState) {\n console.warn(\n (\"[vuex] state field \\\"\" + moduleName + \"\\\" was overridden by a module with the same name at \\\"\" + (path.join('.')) + \"\\\"\")\n );\n }\n }\n Vue.set(parentState, moduleName, module.state);\n });\n }\n\n var local = module.context = makeLocalContext(store, namespace, path);\n\n module.forEachMutation(function (mutation, key) {\n var namespacedType = namespace + key;\n registerMutation(store, namespacedType, mutation, local);\n });\n\n module.forEachAction(function (action, key) {\n var type = action.root ? key : namespace + key;\n var handler = action.handler || action;\n registerAction(store, type, handler, local);\n });\n\n module.forEachGetter(function (getter, key) {\n var namespacedType = namespace + key;\n registerGetter(store, namespacedType, getter, local);\n });\n\n module.forEachChild(function (child, key) {\n installModule(store, rootState, path.concat(key), child, hot);\n });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n var noNamespace = namespace === '';\n\n var local = {\n dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._actions[type]) {\n console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n return store.dispatch(type, payload)\n },\n\n commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._mutations[type]) {\n console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n store.commit(type, payload, options);\n }\n };\n\n // getters and state object must be gotten lazily\n // because they will be changed by vm update\n Object.defineProperties(local, {\n getters: {\n get: noNamespace\n ? function () { return store.getters; }\n : function () { return makeLocalGetters(store, namespace); }\n },\n state: {\n get: function () { return getNestedState(store.state, path); }\n }\n });\n\n return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n if (!store._makeLocalGettersCache[namespace]) {\n var gettersProxy = {};\n var splitPos = namespace.length;\n Object.keys(store.getters).forEach(function (type) {\n // skip if the target getter is not match this namespace\n if (type.slice(0, splitPos) !== namespace) { return }\n\n // extract local getter type\n var localType = type.slice(splitPos);\n\n // Add a port to the getters proxy.\n // Define as getter property because\n // we do not want to evaluate the getters in this time.\n Object.defineProperty(gettersProxy, localType, {\n get: function () { return store.getters[type]; },\n enumerable: true\n });\n });\n store._makeLocalGettersCache[namespace] = gettersProxy;\n }\n\n return store._makeLocalGettersCache[namespace]\n}\n\nfunction registerMutation (store, type, handler, local) {\n var entry = store._mutations[type] || (store._mutations[type] = []);\n entry.push(function wrappedMutationHandler (payload) {\n handler.call(store, local.state, payload);\n });\n}\n\nfunction registerAction (store, type, handler, local) {\n var entry = store._actions[type] || (store._actions[type] = []);\n entry.push(function wrappedActionHandler (payload) {\n var res = handler.call(store, {\n dispatch: local.dispatch,\n commit: local.commit,\n getters: local.getters,\n state: local.state,\n rootGetters: store.getters,\n rootState: store.state\n }, payload);\n if (!isPromise(res)) {\n res = Promise.resolve(res);\n }\n if (store._devtoolHook) {\n return res.catch(function (err) {\n store._devtoolHook.emit('vuex:error', err);\n throw err\n })\n } else {\n return res\n }\n });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n if (store._wrappedGetters[type]) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate getter key: \" + type));\n }\n return\n }\n store._wrappedGetters[type] = function wrappedGetter (store) {\n return rawGetter(\n local.state, // local state\n local.getters, // local getters\n store.state, // root state\n store.getters // root getters\n )\n };\n}\n\nfunction enableStrictMode (store) {\n store._vm.$watch(function () { return this._data.$$state }, function () {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(store._committing, \"do not mutate vuex store state outside mutation handlers.\");\n }\n }, { deep: true, sync: true });\n}\n\nfunction getNestedState (state, path) {\n return path.reduce(function (state, key) { return state[key]; }, state)\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n if (isObject(type) && type.type) {\n options = payload;\n payload = type;\n type = type.type;\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof type === 'string', (\"expects string as the type, but found \" + (typeof type) + \".\"));\n }\n\n return { type: type, payload: payload, options: options }\n}\n\nfunction install (_Vue) {\n if (Vue && _Vue === Vue) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error(\n '[vuex] already installed. Vue.use(Vuex) should be called only once.'\n );\n }\n return\n }\n Vue = _Vue;\n applyMixin(Vue);\n}\n\n/**\n * Reduce the code which written in Vue.js for getting the state.\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.\n * @param {Object}\n */\nvar mapState = normalizeNamespace(function (namespace, states) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(states)) {\n console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(states).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedState () {\n var state = this.$store.state;\n var getters = this.$store.getters;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n if (!module) {\n return\n }\n state = module.context.state;\n getters = module.context.getters;\n }\n return typeof val === 'function'\n ? val.call(this, state, getters)\n : state[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for committing the mutation\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept anthor params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(mutations)) {\n console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(mutations).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedMutation () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // Get the commit method from store\n var commit = this.$store.commit;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n if (!module) {\n return\n }\n commit = module.context.commit;\n }\n return typeof val === 'function'\n ? val.apply(this, [commit].concat(args))\n : commit.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for getting the getters\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} getters\n * @return {Object}\n */\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(getters)) {\n console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(getters).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n // The namespace has been mutated by normalizeNamespace\n val = namespace + val;\n res[key] = function mappedGetter () {\n if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n return\n }\n if ((process.env.NODE_ENV !== 'production') && !(val in this.$store.getters)) {\n console.error((\"[vuex] unknown getter: \" + val));\n return\n }\n return this.$store.getters[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for dispatch the action\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(actions)) {\n console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(actions).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedAction () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // get dispatch function from store\n var dispatch = this.$store.dispatch;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n if (!module) {\n return\n }\n dispatch = module.context.dispatch;\n }\n return typeof val === 'function'\n ? val.apply(this, [dispatch].concat(args))\n : dispatch.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object\n * @param {String} namespace\n * @return {Object}\n */\nvar createNamespacedHelpers = function (namespace) { return ({\n mapState: mapState.bind(null, namespace),\n mapGetters: mapGetters.bind(null, namespace),\n mapMutations: mapMutations.bind(null, namespace),\n mapActions: mapActions.bind(null, namespace)\n}); };\n\n/**\n * Normalize the map\n * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]\n * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]\n * @param {Array|Object} map\n * @return {Object}\n */\nfunction normalizeMap (map) {\n if (!isValidMap(map)) {\n return []\n }\n return Array.isArray(map)\n ? map.map(function (key) { return ({ key: key, val: key }); })\n : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\n/**\n * Validate whether given map is valid or not\n * @param {*} map\n * @return {Boolean}\n */\nfunction isValidMap (map) {\n return Array.isArray(map) || isObject(map)\n}\n\n/**\n * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.\n * @param {Function} fn\n * @return {Function}\n */\nfunction normalizeNamespace (fn) {\n return function (namespace, map) {\n if (typeof namespace !== 'string') {\n map = namespace;\n namespace = '';\n } else if (namespace.charAt(namespace.length - 1) !== '/') {\n namespace += '/';\n }\n return fn(namespace, map)\n }\n}\n\n/**\n * Search a special module from store by namespace. if module not exist, print error message.\n * @param {Object} store\n * @param {String} helper\n * @param {String} namespace\n * @return {Object}\n */\nfunction getModuleByNamespace (store, helper, namespace) {\n var module = store._modulesNamespaceMap[namespace];\n if ((process.env.NODE_ENV !== 'production') && !module) {\n console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n }\n return module\n}\n\n// Credits: borrowed code from fcomb/redux-logger\n\nfunction createLogger (ref) {\n if ( ref === void 0 ) ref = {};\n var collapsed = ref.collapsed; if ( collapsed === void 0 ) collapsed = true;\n var filter = ref.filter; if ( filter === void 0 ) filter = function (mutation, stateBefore, stateAfter) { return true; };\n var transformer = ref.transformer; if ( transformer === void 0 ) transformer = function (state) { return state; };\n var mutationTransformer = ref.mutationTransformer; if ( mutationTransformer === void 0 ) mutationTransformer = function (mut) { return mut; };\n var actionFilter = ref.actionFilter; if ( actionFilter === void 0 ) actionFilter = function (action, state) { return true; };\n var actionTransformer = ref.actionTransformer; if ( actionTransformer === void 0 ) actionTransformer = function (act) { return act; };\n var logMutations = ref.logMutations; if ( logMutations === void 0 ) logMutations = true;\n var logActions = ref.logActions; if ( logActions === void 0 ) logActions = true;\n var logger = ref.logger; if ( logger === void 0 ) logger = console;\n\n return function (store) {\n var prevState = deepCopy(store.state);\n\n if (typeof logger === 'undefined') {\n return\n }\n\n if (logMutations) {\n store.subscribe(function (mutation, state) {\n var nextState = deepCopy(state);\n\n if (filter(mutation, prevState, nextState)) {\n var formattedTime = getFormattedTime();\n var formattedMutation = mutationTransformer(mutation);\n var message = \"mutation \" + (mutation.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c prev state', 'color: #9E9E9E; font-weight: bold', transformer(prevState));\n logger.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation);\n logger.log('%c next state', 'color: #4CAF50; font-weight: bold', transformer(nextState));\n endMessage(logger);\n }\n\n prevState = nextState;\n });\n }\n\n if (logActions) {\n store.subscribeAction(function (action, state) {\n if (actionFilter(action, state)) {\n var formattedTime = getFormattedTime();\n var formattedAction = actionTransformer(action);\n var message = \"action \" + (action.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c action', 'color: #03A9F4; font-weight: bold', formattedAction);\n endMessage(logger);\n }\n });\n }\n }\n}\n\nfunction startMessage (logger, message, collapsed) {\n var startMessage = collapsed\n ? logger.groupCollapsed\n : logger.group;\n\n // render\n try {\n startMessage.call(logger, message);\n } catch (e) {\n logger.log(message);\n }\n}\n\nfunction endMessage (logger) {\n try {\n logger.groupEnd();\n } catch (e) {\n logger.log('—— log end ——');\n }\n}\n\nfunction getFormattedTime () {\n var time = new Date();\n return (\" @ \" + (pad(time.getHours(), 2)) + \":\" + (pad(time.getMinutes(), 2)) + \":\" + (pad(time.getSeconds(), 2)) + \".\" + (pad(time.getMilliseconds(), 3)))\n}\n\nfunction repeat (str, times) {\n return (new Array(times + 1)).join(str)\n}\n\nfunction pad (num, maxLength) {\n return repeat('0', maxLength - num.toString().length) + num\n}\n\nvar index = {\n Store: Store,\n install: install,\n version: '3.5.1',\n mapState: mapState,\n mapMutations: mapMutations,\n mapGetters: mapGetters,\n mapActions: mapActions,\n createNamespacedHelpers: createNamespacedHelpers,\n createLogger: createLogger\n};\n\nexport default index;\nexport { Store, createLogger, createNamespacedHelpers, install, mapActions, mapGetters, mapMutations, mapState };\n","/**\r\n * This module will contain everything related to preloading.\r\n *\r\n * @module preloader\r\n *\r\n */\r\n\r\nvar Class = require('js-oop');\r\nvar EventEmitter = require('events').EventEmitter;\r\nvar getExtension = require('./util/getExtension');\r\nvar LoaderImage = require('./loaders/LoaderImage');\r\nvar LoaderText = require('./loaders/LoaderText');\r\nvar LoaderJSON = require('./loaders/LoaderJSON');\r\nvar LoaderVideo = require('./loaders/LoaderVideo');\r\nvar LoaderAudio = require('./loaders/LoaderAudio');\r\n\r\n/**\r\n*\r\n* Object defining which file extensions use which loaders\r\n*\r\n* @property LOADERS\r\n* @type {Object}\r\n*/\r\n\r\nvar LOADERS = {\r\n png: LoaderImage,\r\n jpg: LoaderImage,\r\n jpeg: LoaderImage,\r\n webp: LoaderImage,\r\n gif: LoaderImage,\r\n json: LoaderJSON,\r\n mp4: LoaderVideo,\r\n ogg: LoaderVideo,\r\n ogv: LoaderVideo,\r\n webm: LoaderVideo,\r\n mp3: LoaderAudio,\r\n wav: LoaderAudio\r\n};\r\n\r\n/**\r\n*\r\n* Defines default loader\r\n*\r\n* @property LOADER_DEFAULT\r\n* @type {Function}\r\n*/\r\nvar LOADER_DEFAULT = LoaderText;\r\n\r\n/**\r\n*\r\n*\r\n* @class Preloader\r\n* @constructor\r\n* @return {Object} Preloader Preloader object\r\n*/\r\n\r\nvar Preloader = new Class({\r\n Extends: EventEmitter,\r\n /**\r\n *\r\n * Called on instantiation, sets up properties of Preloader object\r\n *\r\n * @method initialize\r\n *\r\n */\r\n\r\n initialize: function (options) {\r\n if (!(this instanceof Preloader)) return new Preloader(options);\r\n Class.parent(this);\r\n this.options = this.parseOptions(options);\r\n if (this.options.onComplete) this.on('complete', this.options.onComplete);\r\n if (this.options.onProgress) this.on('progress', this.options.onProgress);\r\n this.reset();\r\n this.loaders = {};\r\n\r\n this._continueLoadQueue = this._continueLoadQueue.bind(this);\r\n },\r\n\r\n parseOptions: function (options) {\r\n return {\r\n xhrImages: options.xhrImages || false,\r\n onComplete: typeof options.onComplete === 'function' ? options.onComplete : undefined,\r\n onProgress: typeof options.onProgress === 'function' ? options.onProgress : undefined,\r\n throttle: options.throttle || 0\r\n };\r\n },\r\n\r\n mergeOptions: function (options) {\r\n return {\r\n xhrImages: options.xhrImages || this.options.xhrImages,\r\n onComplete: typeof options.onComplete === 'function' ? options.onComplete : this.options.onComplete,\r\n onProgress: typeof options.onProgress === 'function' ? options.onProgress : this.options.onProgress,\r\n throttle: options.throttle || this.options.throttle\r\n };\r\n },\r\n\r\n /**\r\n *\r\n * Generic asset loader function - determines loader to be used based on file-extension\r\n *\r\n * @method add\r\n * @param {String} url Base URL of asset\r\n *\r\n */\r\n add: function (url, options) {\r\n if (url) {\r\n this.addFromLoaderType(url, this._getLoader(url), options);\r\n }\r\n },\r\n\r\n /**\r\n *\r\n *Load image - uses the LoaderImage loader\r\n *\r\n * @method addImage\r\n * @param {String} url Base URL of asset\r\n *\r\n */\r\n addImage: function (url, options) {\r\n this.addFromLoaderType(url, LoaderImage, options);\r\n },\r\n\r\n /**\r\n *\r\n *Load JSON - uses the LoaderJSON loader\r\n *\r\n * @method addJSON\r\n * @param {String} url Base URL of asset\r\n *\r\n */\r\n addJSON: function (url, options) {\r\n this.addFromLoaderType(url, LoaderJSON, options);\r\n },\r\n\r\n /**\r\n *\r\n * Load text - uses the LoaderText loader\r\n *\r\n * @method addText\r\n * @param {String} url Base URL of asset\r\n *\r\n */\r\n addText: function (url, options) {\r\n this.addFromLoaderType(url, LoaderText, options);\r\n },\r\n\r\n /**\r\n *\r\n *Load video - uses the LoaderVideo loader\r\n *\r\n * @method addVideo\r\n * @param {String} url Base URL of asset\r\n *\r\n */\r\n addVideo: function (url, options) {\r\n this.addFromLoaderType(url, LoaderVideo, options);\r\n },\r\n\r\n /**\r\n *\r\n *Load audio - uses the LoaderAudio loader\r\n *\r\n * @method addAudio\r\n * @param {String} url Base URL of asset\r\n *\r\n */\r\n addAudio: function (url, options) {\r\n this.addFromLoaderType(url, LoaderAudio, options);\r\n },\r\n\r\n /**\r\n *\r\n * Load asset using custom loader\r\n *\r\n * @method addFromLoaderType\r\n * @param {String} url Base URL of asset\r\n * @param {Function} loaderType Custom loader function\r\n *\r\n */\r\n addFromLoaderType: function (url, LoaderType, options) {\r\n if (!this.loaders[ url ]) {\r\n this.loaders[ url ] = new LoaderType(this.mergeOptions(options || {}));\r\n this.urls.push(url);\r\n return this.loaders[ url ];\r\n }\r\n },\r\n\r\n /**\r\n *\r\n * Sets percentage of total load for a given asset\r\n *\r\n * @method setPercentage\r\n * @param {String} url Base URL of asset\r\n * @param {Number} percentageOfLoad Number <= 1 representing percentage of total load\r\n *\r\n */\r\n setPercentage: function (url, percentageOfLoad) {\r\n this.percentageOfLoad[ url ] = percentageOfLoad;\r\n },\r\n\r\n /**\r\n *\r\n * Begins loading process\r\n *\r\n * @method load\r\n *\r\n */\r\n load: function () {\r\n if (!this.loading) {\r\n this._setupPercentages();\r\n var len = this.options.throttle || this.urls.length;\r\n for (var i = 0; i < len; i++) {\r\n this._continueLoadQueue();\r\n }\r\n }\r\n },\r\n\r\n /**\r\n *\r\n * Resets loading so you can reuse the preloader. does not remove cached loads so `get()` continues to function for all assets.\r\n *\r\n * @method reset\r\n *\r\n */\r\n reset: function () {\r\n this.percTotal = 0;\r\n this.loadIdx = 0;\r\n this.urls = [];\r\n this.progress = 0;\r\n this.percentageOfLoad = {};\r\n this.loading = false;\r\n this.status = {};\r\n },\r\n\r\n /**\r\n *\r\n * Stops loading process\r\n *\r\n * @method stopLoad\r\n *\r\n */\r\n stopLoad: function () {\r\n if (this.loading) {\r\n for (var i = 0, len = this.urls.length; i < len; i++) {\r\n this.loaders[ this.urls[ i ] ].stopLoad();\r\n }\r\n }\r\n },\r\n\r\n /**\r\n *\r\n * Retrieves loaded asset from loader\r\n *\r\n * @method get\r\n * @param {String} url Base URL of asset\r\n * @return asset instance\r\n */\r\n get: function (url) {\r\n return this.loaders[ url ] && this.loaders[ url ].content;\r\n },\r\n\r\n /**\r\n *\r\n * Loops through stated percentages of all assets and standardizes them\r\n *\r\n * @method _setupPercentages\r\n */\r\n _setupPercentages: function () {\r\n var percTotal = 0;\r\n var percScale = 1;\r\n // var numWPerc = 0\r\n var numWOPerc = 0;\r\n var oneFilePerc = 1 / this.urls.length;\r\n\r\n for (var i = 0, len = this.urls.length; i < len; i++) {\r\n if (this.percentageOfLoad[ this.urls[ i ] ]) {\r\n percTotal += this.percentageOfLoad[ this.urls[ i ] ];\r\n // numWPerc++\r\n } else {\r\n numWOPerc++;\r\n }\r\n }\r\n\r\n if (numWOPerc > 0) {\r\n if (percTotal > 1) {\r\n percScale = 1 / percTotal;\r\n percTotal *= percScale;\r\n }\r\n\r\n // var percRemaining = 1 - percTotal\r\n oneFilePerc = (1 - percTotal) / numWOPerc;\r\n\r\n for (var i = 0, len = this.urls.length; i < len; i++) { // eslint-disable-line no-redeclare\r\n if (this.percentageOfLoad[ this.urls[ i ] ]) {\r\n this.percentageOfLoad[ this.urls[ i ] ] *= percScale;\r\n } else {\r\n this.percentageOfLoad[ this.urls[ i ] ] = oneFilePerc;\r\n }\r\n }\r\n }\r\n },\r\n\r\n /**\r\n *\r\n * With every call, assets are successively loaded and percentLoaded is updated\r\n *\r\n * @method _continueLoadQueue\r\n */\r\n _continueLoadQueue: function () {\r\n if (this.loadIdx < this.urls.length) {\r\n var url = this.urls[ this.loadIdx ];\r\n var loader = this.loaders[url];\r\n this.status[url] = false;\r\n\r\n this.loadIdx++;\r\n loader.on('progress', this._onLoadProgress.bind(this, url));\r\n loader.once('error', this._onLoadError.bind(this, url));\r\n loader.once('complete', this._onLoadComplete.bind(this, url));\r\n loader.load(url);\r\n } else if (this._checkComplete()) {\r\n this.emit('complete');\r\n }\r\n },\r\n\r\n /**\r\n *\r\n * Logs error, updates progress, and continues the load\r\n *\r\n *\r\n * @method _onLoadError\r\n * @param {String} url of current loading item\r\n * @param {String} error Error message/type\r\n */\r\n _onLoadError: function (url, error) {\r\n console.warn('Couldn\\'t load ' + url + ' received the error: ' + error);\r\n\r\n var curPerc = this.percentageOfLoad[ url ];\r\n\r\n this.emit('progress', this.percTotal + curPerc, url);\r\n this.status[url] = true;\r\n this._continueLoadQueue();\r\n },\r\n\r\n /**\r\n *\r\n * Calculates progress of currently loading asset and dispatches total load progress\r\n *\r\n *\r\n * @method _onLoadProgress\r\n * @param {String} url of current loading item\r\n * @param {Number} progress Progress of currently loading asset\r\n */\r\n _onLoadProgress: function (url, progress) {\r\n var curPerc = this.percentageOfLoad[ url ] * progress;\r\n\r\n this.emit('progress', this.percTotal + curPerc, url);\r\n },\r\n\r\n /**\r\n *\r\n * Marks url as complete and updates total load percentage\r\n *\r\n *\r\n * @method _onLoadComplete\r\n * @param {String} url of current loading item\r\n * @param {Object} content The loaded content\r\n */\r\n _onLoadComplete: function (url, content) {\r\n this.percTotal += this.percentageOfLoad[ url ];\r\n this.status[url] = true;\r\n this._continueLoadQueue();\r\n },\r\n\r\n /**\r\n *\r\n * Returns true / false depending on if all url are finished loading or not\r\n *\r\n *\r\n * @method _checkComplete\r\n * @return {Boolean} Is loading done?\r\n */\r\n _checkComplete: function () {\r\n var loaded = true;\r\n for (var i = 0, len = this.urls.length; i < len; i++) {\r\n if (!this.status[this.urls[ i ]]) loaded = false;\r\n }\r\n return loaded;\r\n },\r\n\r\n /**\r\n *\r\n * Retrieves the appropriate loader util given the asset file-type\r\n *\r\n *\r\n * @method _getLoader\r\n * @param {String} url Base URL of asset\r\n * @return {Function} Chosen loader util function based on filetype/extension\r\n */\r\n _getLoader: function (url) {\r\n var extension = getExtension(url);\r\n var loader = LOADER_DEFAULT;\r\n if (extension && LOADERS[ extension.toLowerCase() ]) loader = LOADERS[ extension.toLowerCase() ];\r\n return loader;\r\n }\r\n});\r\n\r\nmodule.exports = Preloader;\r\n","var $ = require('../internals/export');\n\nvar $hypot = Math.hypot;\nvar abs = Math.abs;\nvar sqrt = Math.sqrt;\n\n// Chrome 77 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=9546\nvar BUGGY = !!$hypot && $hypot(Infinity, NaN) !== Infinity;\n\n// `Math.hypot` method\n// https://tc39.github.io/ecma262/#sec-math.hypot\n$({ target: 'Math', stat: true, forced: BUGGY }, {\n hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * sqrt(sum);\n }\n});\n","var base64Mime = require('base64mime');\n\nvar getExtension = require('./getExtension');\nvar isBase64 = require('./isBase64');\n\nvar FILE_MIME = {\n // images\n gif: 'image/gif',\n jpg: 'image/jpeg',\n jpeg: 'image/jpeg',\n png: 'image/png',\n svg: 'image/svg+xml',\n // text\n html: 'text/html',\n css: 'text/css',\n csv: 'text/csv',\n xml: 'text/xml',\n // video\n mp4: 'video/mp4',\n ogg: 'video/ogg',\n ogv: 'video/ogg',\n webm: 'video/webm',\n // audio\n wav: 'audio/wav',\n mp3: 'audio/mpeg'\n};\n\n/**\n * This function will return a mime type based on a file extension or a url. For instance the file 'jpg' would return\n * 'image/jpeg'.\n *\n * @method getMimeFromURL\n * @param {String} type File extension\n * @return {String} Mime type\n */\nmodule.exports = function getMimeFromURL (url) {\n var mime;\n\n if (isBase64(url)) {\n mime = base64Mime(url);\n } else {\n var ext = getExtension(url);\n mime = FILE_MIME[ ext.toLowerCase() ];\n }\n\n return mime || 'application/octet-stream';\n};\n","(function() {\n\n function base64MimeType(encoded) {\n var result = null;\n\n if (typeof encoded !== 'string') {\n return result;\n }\n\n var mime = encoded.match(/data:([a-zA-Z0-9]+\\/[a-zA-Z0-9-.+]+).*,.*/);\n\n if (mime && mime.length) {\n result = mime[1];\n }\n\n return result;\n }\n\n if (typeof exports !== 'undefined') {\n if (typeof module !== 'undefined' && module.exports) {\n exports = module.exports = base64MimeType;\n }\n exports.base64MimeType = base64MimeType;\n } else if (typeof define === 'function' && define.amd) {\n define([], function() {\n return base64MimeType;\n });\n } else {\n this.base64MimeType = base64MimeType;\n }\n\n}).call(this);\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./loader.vue?vue&type=style&index=0&id=b408e56e&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./loader.vue?vue&type=style&index=0&id=b408e56e&lang=scss&scoped=true&\"","/**\n * This will convert a string to an ArrayBuffer\n *\n * @method stringToArrayBuffer\n * @param {String} string The string to convert to an array buffer\n * @return {ArrayBuffer} The string data which was converted into an ArrayBuffer\n */\nmodule.exports = function (string) {\n var buf = new ArrayBuffer(string.length * 2); // 2 bytes for each char\n var bufView = new Uint16Array(buf);\n\n for (var i = 0, strLen = string.length; i < strLen; i++) {\n bufView[ i ] = string.charCodeAt(i);\n }\n\n return buf;\n};\n","/**\n * This module will contain everything related to preloading.\n *\n * @module preloader\n */\nvar Class = require('js-oop');\nvar LoaderBase = require('./LoaderBase');\n\n/**\n * LoaderVideo will load a video file. The content property will contain a video tag.\n *\n * @class LoaderVideo\n * @constructor\n * @extends {LoaderBase}\n */\nvar LoaderVideo = new Class({\n Extends: LoaderBase,\n initialize: function (options) {\n Class.parent(this, LoaderBase.typeVideo, options);\n },\n\n _parseContent: function () {\n Class.parent(this);\n\n if (window.URL && window.URL.createObjectURL) {\n var blobURL = window.URL.createObjectURL(this.content);\n this.content = document.createElement(this.loadType);\n this.content.src = blobURL;\n } else {\n throw new Error('This browser does not support URL.createObjectURL()');\n }\n }\n});\n\nmodule.exports = LoaderVideo;\n","/**\n * This module will contain everything related to preloading.\n *\n * @module preloader\n */\nvar Class = require('js-oop');\nvar LoaderBase = require('./LoaderBase');\n\n/**\n * LoaderJSON will load a JSON file and parse it's content. The content property will contain an Object\n * representation of the JSON data.\n *\n * @class LoaderJSON\n * @constructor\n * @extends {LoaderBase}\n */\nvar LoaderJSON = new Class({\n Extends: LoaderBase,\n initialize: function (options) {\n Class.parent(this, LoaderBase.typeJSON, options);\n }\n});\n\nmodule.exports = LoaderJSON;\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar quot = /\"/g;\n\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\n// https://tc39.github.io/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = String(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"lavContainer\",style:(_vm.style)})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../cache-loader/dist/cjs.js??ref--12-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./lottie.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../cache-loader/dist/cjs.js??ref--12-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./lottie.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./lottie.vue?vue&type=template&id=3c796cc7&\"\nimport script from \"./lottie.vue?vue&type=script&lang=js&\"\nexport * from \"./lottie.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","(typeof navigator !== \"undefined\") && (function(root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(function() {\n return factory(root);\n });\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory(root);\n } else {\n root.lottie = factory(root);\n root.bodymovin = root.lottie;\n }\n}((window || {}), function(window) {\n\t\"use strict\";\r\nvar svgNS = \"http://www.w3.org/2000/svg\";\r\n\r\nvar locationHref = '';\r\n\r\nvar initialDefaultFrame = -999999;\r\n\r\nvar subframeEnabled = true;\r\nvar expressionsPlugin;\r\nvar isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\r\nvar cachedColors = {};\r\nvar bm_rounder = Math.round;\r\nvar bm_rnd;\r\nvar bm_pow = Math.pow;\r\nvar bm_sqrt = Math.sqrt;\r\nvar bm_abs = Math.abs;\r\nvar bm_floor = Math.floor;\r\nvar bm_max = Math.max;\r\nvar bm_min = Math.min;\r\nvar blitter = 10;\r\n\r\nvar BMMath = {};\r\n(function(){\r\n var propertyNames = [\"abs\", \"acos\", \"acosh\", \"asin\", \"asinh\", \"atan\", \"atanh\", \"atan2\", \"ceil\", \"cbrt\", \"expm1\", \"clz32\", \"cos\", \"cosh\", \"exp\", \"floor\", \"fround\", \"hypot\", \"imul\", \"log\", \"log1p\", \"log2\", \"log10\", \"max\", \"min\", \"pow\", \"random\", \"round\", \"sign\", \"sin\", \"sinh\", \"sqrt\", \"tan\", \"tanh\", \"trunc\", \"E\", \"LN10\", \"LN2\", \"LOG10E\", \"LOG2E\", \"PI\", \"SQRT1_2\", \"SQRT2\"];\r\n var i, len = propertyNames.length;\r\n for(i=0;i 1) {\r\n hsv[1] = 1;\r\n }\r\n else if (hsv[1] <= 0) {\r\n hsv[1] = 0;\r\n }\r\n return HSVtoRGB(hsv[0],hsv[1],hsv[2]);\r\n}\r\n\r\nfunction addBrightnessToRGB(color,offset){\r\n var hsv = RGBtoHSV(color[0]*255,color[1]*255,color[2]*255);\r\n hsv[2] += offset;\r\n if (hsv[2] > 1) {\r\n hsv[2] = 1;\r\n }\r\n else if (hsv[2] < 0) {\r\n hsv[2] = 0;\r\n }\r\n return HSVtoRGB(hsv[0],hsv[1],hsv[2]);\r\n}\r\n\r\nfunction addHueToRGB(color,offset) {\r\n var hsv = RGBtoHSV(color[0]*255,color[1]*255,color[2]*255);\r\n hsv[0] += offset/360;\r\n if (hsv[0] > 1) {\r\n hsv[0] -= 1;\r\n }\r\n else if (hsv[0] < 0) {\r\n hsv[0] += 1;\r\n }\r\n return HSVtoRGB(hsv[0],hsv[1],hsv[2]);\r\n}\r\n\r\nvar rgbToHex = (function(){\r\n var colorMap = [];\r\n var i;\r\n var hex;\r\n for(i=0;i<256;i+=1){\r\n hex = i.toString(16);\r\n colorMap[i] = hex.length == 1 ? '0' + hex : hex;\r\n }\r\n\r\n return function(r, g, b) {\r\n if(r<0){\r\n r = 0;\r\n }\r\n if(g<0){\r\n g = 0;\r\n }\r\n if(b<0){\r\n b = 0;\r\n }\r\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\r\n };\r\n}());\r\nfunction BaseEvent(){}\r\nBaseEvent.prototype = {\r\n\ttriggerEvent: function (eventName, args) {\r\n\t if (this._cbs[eventName]) {\r\n\t var len = this._cbs[eventName].length;\r\n\t for (var i = 0; i < len; i++){\r\n\t this._cbs[eventName][i](args);\r\n\t }\r\n\t }\r\n\t},\r\n\taddEventListener: function (eventName, callback) {\r\n\t if (!this._cbs[eventName]){\r\n\t this._cbs[eventName] = [];\r\n\t }\r\n\t this._cbs[eventName].push(callback);\r\n\r\n\t\treturn function() {\r\n\t\t\tthis.removeEventListener(eventName, callback);\r\n\t\t}.bind(this);\r\n\t},\r\n\tremoveEventListener: function (eventName,callback){\r\n\t if (!callback){\r\n\t this._cbs[eventName] = null;\r\n\t }else if(this._cbs[eventName]){\r\n\t var i = 0, len = this._cbs[eventName].length;\r\n\t while(i 0) || (val > -0.000001 && val < 0)) {\r\n return _rnd(val * v) / v;\r\n }\r\n return val;\r\n }\r\n\r\n function to2dCSS() {\r\n //Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\r\n /*if(this.isIdentity()) {\r\n return '';\r\n }*/\r\n var props = this.props;\r\n var _a = roundMatrixProperty(props[0]);\r\n var _b = roundMatrixProperty(props[1]);\r\n var _c = roundMatrixProperty(props[4]);\r\n var _d = roundMatrixProperty(props[5]);\r\n var _e = roundMatrixProperty(props[12]);\r\n var _f = roundMatrixProperty(props[13]);\r\n return \"matrix(\" + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + \")\";\r\n }\r\n\r\n return function(){\r\n this.reset = reset;\r\n this.rotate = rotate;\r\n this.rotateX = rotateX;\r\n this.rotateY = rotateY;\r\n this.rotateZ = rotateZ;\r\n this.skew = skew;\r\n this.skewFromAxis = skewFromAxis;\r\n this.shear = shear;\r\n this.scale = scale;\r\n this.setTransform = setTransform;\r\n this.translate = translate;\r\n this.transform = transform;\r\n this.applyToPoint = applyToPoint;\r\n this.applyToX = applyToX;\r\n this.applyToY = applyToY;\r\n this.applyToZ = applyToZ;\r\n this.applyToPointArray = applyToPointArray;\r\n this.applyToTriplePoints = applyToTriplePoints;\r\n this.applyToPointStringified = applyToPointStringified;\r\n this.toCSS = toCSS;\r\n this.to2dCSS = to2dCSS;\r\n this.clone = clone;\r\n this.cloneFromProps = cloneFromProps;\r\n this.equals = equals;\r\n this.inversePoints = inversePoints;\r\n this.inversePoint = inversePoint;\r\n this.getInverseMatrix = getInverseMatrix;\r\n this._t = this.transform;\r\n this.isIdentity = isIdentity;\r\n this._identity = true;\r\n this._identityCalculated = false;\r\n\r\n this.props = createTypedArray('float32', 16);\r\n this.reset();\r\n };\r\n}());\r\n\r\n/*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\r\n\r\n(function (pool, math) {\r\n//\r\n// The following constants are related to IEEE 754 limits.\r\n//\r\n var global = this,\r\n width = 256, // each RC4 output is 0 <= x < 256\r\n chunks = 6, // at least six RC4 outputs for each double\r\n digits = 52, // there are 52 significant digits in a double\r\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\r\n startdenom = math.pow(width, chunks),\r\n significance = math.pow(2, digits),\r\n overflow = significance * 2,\r\n mask = width - 1,\r\n nodecrypto; // node.js crypto module, initialized at the bottom.\r\n\r\n//\r\n// seedrandom()\r\n// This is the seedrandom function described above.\r\n//\r\n function seedrandom(seed, options, callback) {\r\n var key = [];\r\n options = (options === true) ? { entropy: true } : (options || {});\r\n\r\n // Flatten the seed string or build one from local entropy if needed.\r\n var shortseed = mixkey(flatten(\r\n options.entropy ? [seed, tostring(pool)] :\r\n (seed === null) ? autoseed() : seed, 3), key);\r\n\r\n // Use the seed to initialize an ARC4 generator.\r\n var arc4 = new ARC4(key);\r\n\r\n // This function returns a random double in [0, 1) that contains\r\n // randomness in every bit of the mantissa of the IEEE 754 value.\r\n var prng = function() {\r\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\r\n d = startdenom, // and denominator d = 2 ^ 48.\r\n x = 0; // and no 'extra last byte'.\r\n while (n < significance) { // Fill up all significant digits by\r\n n = (n + x) * width; // shifting numerator and\r\n d *= width; // denominator and generating a\r\n x = arc4.g(1); // new least-significant-byte.\r\n }\r\n while (n >= overflow) { // To avoid rounding up, before adding\r\n n /= 2; // last byte, shift everything\r\n d /= 2; // right using integer math until\r\n x >>>= 1; // we have exactly the desired bits.\r\n }\r\n return (n + x) / d; // Form the number within [0, 1).\r\n };\r\n\r\n prng.int32 = function() { return arc4.g(4) | 0; };\r\n prng.quick = function() { return arc4.g(4) / 0x100000000; };\r\n prng.double = prng;\r\n\r\n // Mix the randomness into accumulated entropy.\r\n mixkey(tostring(arc4.S), pool);\r\n\r\n // Calling convention: what to return as a function of prng, seed, is_math.\r\n return (options.pass || callback ||\r\n function(prng, seed, is_math_call, state) {\r\n if (state) {\r\n // Load the arc4 state from the given state if it has an S array.\r\n if (state.S) { copy(state, arc4); }\r\n // Only provide the .state method if requested via options.state.\r\n prng.state = function() { return copy(arc4, {}); };\r\n }\r\n\r\n // If called as a method of Math (Math.seedrandom()), mutate\r\n // Math.random because that is how seedrandom.js has worked since v1.0.\r\n if (is_math_call) { math[rngname] = prng; return seed; }\r\n\r\n // Otherwise, it is a newer calling convention, so return the\r\n // prng directly.\r\n else return prng;\r\n })(\r\n prng,\r\n shortseed,\r\n 'global' in options ? options.global : (this == math),\r\n options.state);\r\n }\r\n math['seed' + rngname] = seedrandom;\r\n\r\n//\r\n// ARC4\r\n//\r\n// An ARC4 implementation. The constructor takes a key in the form of\r\n// an array of at most (width) integers that should be 0 <= x < (width).\r\n//\r\n// The g(count) method returns a pseudorandom integer that concatenates\r\n// the next (count) outputs from ARC4. Its return value is a number x\r\n// that is in the range 0 <= x < (width ^ count).\r\n//\r\n function ARC4(key) {\r\n var t, keylen = key.length,\r\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\r\n\r\n // The empty key [] is treated as [0].\r\n if (!keylen) { key = [keylen++]; }\r\n\r\n // Set up S using the standard key scheduling algorithm.\r\n while (i < width) {\r\n s[i] = i++;\r\n }\r\n for (i = 0; i < width; i++) {\r\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\r\n s[j] = t;\r\n }\r\n\r\n // The \"g\" method returns the next (count) outputs as one number.\r\n me.g = function(count) {\r\n // Using instance members instead of closure state nearly doubles speed.\r\n var t, r = 0,\r\n i = me.i, j = me.j, s = me.S;\r\n while (count--) {\r\n t = s[i = mask & (i + 1)];\r\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\r\n }\r\n me.i = i; me.j = j;\r\n return r;\r\n // For robust unpredictability, the function call below automatically\r\n // discards an initial batch of values. This is called RC4-drop[256].\r\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\r\n };\r\n }\r\n\r\n//\r\n// copy()\r\n// Copies internal state of ARC4 to or from a plain object.\r\n//\r\n function copy(f, t) {\r\n t.i = f.i;\r\n t.j = f.j;\r\n t.S = f.S.slice();\r\n return t;\r\n }\r\n\r\n//\r\n// flatten()\r\n// Converts an object tree to nested arrays of strings.\r\n//\r\n function flatten(obj, depth) {\r\n var result = [], typ = (typeof obj), prop;\r\n if (depth && typ == 'object') {\r\n for (prop in obj) {\r\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\r\n }\r\n }\r\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\r\n }\r\n\r\n//\r\n// mixkey()\r\n// Mixes a string seed into a key that is an array of integers, and\r\n// returns a shortened string seed that is equivalent to the result key.\r\n//\r\n function mixkey(seed, key) {\r\n var stringseed = seed + '', smear, j = 0;\r\n while (j < stringseed.length) {\r\n key[mask & j] =\r\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\r\n }\r\n return tostring(key);\r\n }\r\n\r\n//\r\n// autoseed()\r\n// Returns an object for autoseeding, using window.crypto and Node crypto\r\n// module if available.\r\n//\r\n function autoseed() {\r\n try {\r\n if (nodecrypto) { return tostring(nodecrypto.randomBytes(width)); }\r\n var out = new Uint8Array(width);\r\n (global.crypto || global.msCrypto).getRandomValues(out);\r\n return tostring(out);\r\n } catch (e) {\r\n var browser = global.navigator,\r\n plugins = browser && browser.plugins;\r\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\r\n }\r\n }\r\n\r\n//\r\n// tostring()\r\n// Converts an array of charcodes to a string\r\n//\r\n function tostring(a) {\r\n return String.fromCharCode.apply(0, a);\r\n }\r\n\r\n//\r\n// When seedrandom.js is loaded, we immediately mix a few bits\r\n// from the built-in RNG into the entropy pool. Because we do\r\n// not want to interfere with deterministic PRNG state later,\r\n// seedrandom will not call math.random on its own again after\r\n// initialization.\r\n//\r\n mixkey(math.random(), pool);\r\n\r\n//\r\n// Nodejs and AMD support: export the implementation as a module using\r\n// either convention.\r\n//\r\n\r\n// End anonymous scope, and pass initial values.\r\n})(\r\n [], // pool: entropy pool starts empty\r\n BMMath // math: package containing random, pow, and seedrandom\r\n);\r\nvar BezierFactory = (function(){\r\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\r\n\r\n var ob = {};\r\n ob.getBezierEasing = getBezierEasing;\r\n var beziers = {};\r\n\r\n function getBezierEasing(a,b,c,d,nm){\r\n var str = nm || ('bez_' + a+'_'+b+'_'+c+'_'+d).replace(/\\./g, 'p');\r\n if(beziers[str]){\r\n return beziers[str];\r\n }\r\n var bezEasing = new BezierEasing([a,b,c,d]);\r\n beziers[str] = bezEasing;\r\n return bezEasing;\r\n }\r\n\r\n// These values are established by empiricism with tests (tradeoff: performance VS precision)\r\n var NEWTON_ITERATIONS = 4;\r\n var NEWTON_MIN_SLOPE = 0.001;\r\n var SUBDIVISION_PRECISION = 0.0000001;\r\n var SUBDIVISION_MAX_ITERATIONS = 10;\r\n\r\n var kSplineTableSize = 11;\r\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\r\n\r\n var float32ArraySupported = typeof Float32Array === \"function\";\r\n\r\n function A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; }\r\n function B (aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; }\r\n function C (aA1) { return 3.0 * aA1; }\r\n\r\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\r\n function calcBezier (aT, aA1, aA2) {\r\n return ((A(aA1, aA2)*aT + B(aA1, aA2))*aT + C(aA1))*aT;\r\n }\r\n\r\n// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\r\n function getSlope (aT, aA1, aA2) {\r\n return 3.0 * A(aA1, aA2)*aT*aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\r\n }\r\n\r\n function binarySubdivide (aX, aA, aB, mX1, mX2) {\r\n var currentX, currentT, i = 0;\r\n do {\r\n currentT = aA + (aB - aA) / 2.0;\r\n currentX = calcBezier(currentT, mX1, mX2) - aX;\r\n if (currentX > 0.0) {\r\n aB = currentT;\r\n } else {\r\n aA = currentT;\r\n }\r\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\r\n return currentT;\r\n }\r\n\r\n function newtonRaphsonIterate (aX, aGuessT, mX1, mX2) {\r\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\r\n var currentSlope = getSlope(aGuessT, mX1, mX2);\r\n if (currentSlope === 0.0) return aGuessT;\r\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\r\n aGuessT -= currentX / currentSlope;\r\n }\r\n return aGuessT;\r\n }\r\n\r\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\r\n function BezierEasing (points) {\r\n this._p = points;\r\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\r\n this._precomputed = false;\r\n\r\n this.get = this.get.bind(this);\r\n }\r\n\r\n BezierEasing.prototype = {\r\n\r\n get: function (x) {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n if (!this._precomputed) this._precompute();\r\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\r\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\r\n if (x === 0) return 0;\r\n if (x === 1) return 1;\r\n return calcBezier(this._getTForX(x), mY1, mY2);\r\n },\r\n\r\n // Private part\r\n\r\n _precompute: function () {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n this._precomputed = true;\r\n if (mX1 !== mY1 || mX2 !== mY2)\r\n this._calcSampleValues();\r\n },\r\n\r\n _calcSampleValues: function () {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2];\r\n for (var i = 0; i < kSplineTableSize; ++i) {\r\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\r\n }\r\n },\r\n\r\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\r\n _getTForX: function (aX) {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2],\r\n mSampleValues = this._mSampleValues;\r\n\r\n var intervalStart = 0.0;\r\n var currentSample = 1;\r\n var lastSample = kSplineTableSize - 1;\r\n\r\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\r\n intervalStart += kSampleStepSize;\r\n }\r\n --currentSample;\r\n\r\n // Interpolate to provide an initial guess for t\r\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample+1] - mSampleValues[currentSample]);\r\n var guessForT = intervalStart + dist * kSampleStepSize;\r\n\r\n var initialSlope = getSlope(guessForT, mX1, mX2);\r\n if (initialSlope >= NEWTON_MIN_SLOPE) {\r\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\r\n } else if (initialSlope === 0.0) {\r\n return guessForT;\r\n } else {\r\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\r\n }\r\n }\r\n };\r\n\r\n return ob;\r\n\r\n}());\r\n(function () {\r\n var lastTime = 0;\r\n var vendors = ['ms', 'moz', 'webkit', 'o'];\r\n for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\r\n window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];\r\n window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];\r\n }\r\n if(!window.requestAnimationFrame)\r\n window.requestAnimationFrame = function (callback, element) {\r\n var currTime = new Date().getTime();\r\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n var id = setTimeout(function () {\r\n callback(currTime + timeToCall);\r\n },\r\n timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n if(!window.cancelAnimationFrame)\r\n window.cancelAnimationFrame = function (id) {\r\n clearTimeout(id);\r\n };\r\n}());\r\n\r\nfunction extendPrototype(sources,destination){\r\n var i, len = sources.length, sourcePrototype;\r\n for (i = 0;i < len;i += 1) {\r\n sourcePrototype = sources[i].prototype;\r\n for (var attr in sourcePrototype) {\r\n if (sourcePrototype.hasOwnProperty(attr)) destination.prototype[attr] = sourcePrototype[attr];\r\n }\r\n }\r\n}\r\n\r\nfunction getDescriptor(object, prop) {\r\n return Object.getOwnPropertyDescriptor(object, prop);\r\n}\r\n\r\nfunction createProxyFunction(prototype) {\r\n\tfunction ProxyFunction(){}\r\n\tProxyFunction.prototype = prototype;\r\n\treturn ProxyFunction;\r\n}\r\nfunction bezFunction(){\r\n\r\n var easingFunctions = [];\r\n var math = Math;\r\n\r\n function pointOnLine2D(x1,y1, x2,y2, x3,y3){\r\n var det1 = (x1*y2) + (y1*x3) + (x2*y3) - (x3*y2) - (y3*x1) - (x2*y1);\r\n return det1 > -0.001 && det1 < 0.001;\r\n }\r\n\r\n function pointOnLine3D(x1,y1,z1, x2,y2,z2, x3,y3,z3){\r\n if(z1 === 0 && z2 === 0 && z3 === 0) {\r\n return pointOnLine2D(x1,y1, x2,y2, x3,y3);\r\n }\r\n var dist1 = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2) + Math.pow(z2 - z1, 2));\r\n var dist2 = Math.sqrt(Math.pow(x3 - x1, 2) + Math.pow(y3 - y1, 2) + Math.pow(z3 - z1, 2));\r\n var dist3 = Math.sqrt(Math.pow(x3 - x2, 2) + Math.pow(y3 - y2, 2) + Math.pow(z3 - z2, 2));\r\n var diffDist;\r\n if(dist1 > dist2){\r\n if(dist1 > dist3){\r\n diffDist = dist1 - dist2 - dist3;\r\n } else {\r\n diffDist = dist3 - dist2 - dist1;\r\n }\r\n } else if(dist3 > dist2){\r\n diffDist = dist3 - dist2 - dist1;\r\n } else {\r\n diffDist = dist2 - dist1 - dist3;\r\n }\r\n return diffDist > -0.0001 && diffDist < 0.0001;\r\n }\r\n\r\n var getBezierLength = (function(){\r\n\r\n return function(pt1,pt2,pt3,pt4){\r\n var curveSegments = defaultCurveSegments;\r\n var k;\r\n var i, len;\r\n var ptCoord,perc,addedLength = 0;\r\n var ptDistance;\r\n var point = [],lastPoint = [];\r\n var lengthData = bezier_length_pool.newElement();\r\n len = pt3.length;\r\n for(k=0;k lengthPos ? -1 : 1;\r\n var flag = true;\r\n while(flag){\r\n if(lengths[initPos] <= lengthPos && lengths[initPos+1] > lengthPos){\r\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos+1] - lengths[initPos]);\r\n flag = false;\r\n }else{\r\n initPos += dir;\r\n }\r\n if(initPos < 0 || initPos >= len - 1){\r\n //FIX for TypedArrays that don't store floating point values with enough accuracy\r\n if(initPos === len - 1) {\r\n return percents[initPos];\r\n }\r\n flag = false;\r\n }\r\n }\r\n return percents[initPos] + (percents[initPos+1] - percents[initPos])*lPerc;\r\n }\r\n }\r\n\r\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\r\n var t1 = getDistancePerc(percent,bezierData);\r\n var u0 = 1;\r\n var u1 = 1 - t1;\r\n var ptX = Math.round((u1*u1*u1* pt1[0] + (t1*u1*u1 + u1*t1*u1 + u1*u1*t1)* pt3[0] + (t1*t1*u1 + u1*t1*t1 + t1*u1*t1)*pt4[0] + t1*t1*t1* pt2[0])* 1000) / 1000;\r\n var ptY = Math.round((u1*u1*u1* pt1[1] + (t1*u1*u1 + u1*t1*u1 + u1*u1*t1)* pt3[1] + (t1*t1*u1 + u1*t1*t1 + t1*u1*t1)*pt4[1] + t1*t1*t1* pt2[1])* 1000) / 1000;\r\n return [ptX, ptY];\r\n }\r\n\r\n function getSegmentArray() {\r\n\r\n }\r\n\r\n var bezier_segment_points = createTypedArray('float32', 8);\r\n\r\n function getNewSegment(pt1,pt2,pt3,pt4,startPerc,endPerc, bezierData){\r\n\r\n startPerc = startPerc < 0 ? 0 : startPerc > 1 ? 1 : startPerc;\r\n var t0 = getDistancePerc(startPerc,bezierData);\r\n endPerc = endPerc > 1 ? 1 : endPerc;\r\n var t1 = getDistancePerc(endPerc,bezierData);\r\n var i, len = pt1.length;\r\n var u0 = 1 - t0;\r\n var u1 = 1 - t1;\r\n var u0u0u0 = u0*u0*u0;\r\n var t0u0u0_3 = t0*u0*u0*3;\r\n var t0t0u0_3 = t0*t0*u0*3;\r\n var t0t0t0 = t0*t0*t0;\r\n //\r\n var u0u0u1 = u0*u0*u1;\r\n var t0u0u1_3 = t0*u0*u1 + u0*t0*u1 + u0*u0*t1;\r\n var t0t0u1_3 = t0*t0*u1 + u0*t0*t1 + t0*u0*t1;\r\n var t0t0t1 = t0*t0*t1;\r\n //\r\n var u0u1u1 = u0*u1*u1;\r\n var t0u1u1_3 = t0*u1*u1 + u0*t1*u1 + u0*u1*t1;\r\n var t0t1u1_3 = t0*t1*u1 + u0*t1*t1 + t0*u1*t1;\r\n var t0t1t1 = t0*t1*t1;\r\n //\r\n var u1u1u1 = u1*u1*u1;\r\n var t1u1u1_3 = t1*u1*u1 + u1*t1*u1 + u1*u1*t1;\r\n var t1t1u1_3 = t1*t1*u1 + u1*t1*t1 + t1*u1*t1;\r\n var t1t1t1 = t1*t1*t1;\r\n for(i=0;i=0;i-=1){\r\n if(arr[i].ty == 'sh'){\r\n if(arr[i].ks.k.i){\r\n convertPathsToAbsoluteValues(arr[i].ks.k);\r\n }else{\r\n jLen = arr[i].ks.k.length;\r\n for(j=0;janimVersion[0]){\r\n return true;\r\n } else if(animVersion[0] > minimum[0]){\r\n return false;\r\n }\r\n if(minimum[1]>animVersion[1]){\r\n return true;\r\n } else if(animVersion[1] > minimum[1]){\r\n return false;\r\n }\r\n if(minimum[2]>animVersion[2]){\r\n return true;\r\n } else if(animVersion[2] > minimum[2]){\r\n return false;\r\n }\r\n }\r\n\r\n var checkText = (function(){\r\n var minimumVersion = [4,4,14];\r\n\r\n function updateTextLayer(textLayer){\r\n var documentData = textLayer.t.d;\r\n textLayer.t.d = {\r\n k: [\r\n {\r\n s:documentData,\r\n t:0\r\n }\r\n ]\r\n };\r\n }\r\n\r\n function iterateLayers(layers){\r\n var i, len = layers.length;\r\n for(i=0;i=0;i-=1){\r\n if(arr[i].ty == 'sh'){\r\n if(arr[i].ks.k.i){\r\n arr[i].ks.k.c = arr[i].closed;\r\n }else{\r\n jLen = arr[i].ks.k.length;\r\n for(j=0;j 0) {\r\n shouldLoadFont = false;\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var s = createTag('style');\r\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n s.setAttribute('f-origin', fontArr[i].origin);\r\n s.setAttribute('f-family', fontArr[i].fFamily);\r\n s.type = \"text/css\";\r\n s.innerText = \"@font-face {\" + \"font-family: \"+fontArr[i].fFamily+\"; font-style: normal; src: url('\"+fontArr[i].fPath+\"');}\";\r\n defs.appendChild(s);\r\n }\r\n } else if(fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1){\r\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\r\n\r\n for (j = 0; j < loadedSelector.length; j++) {\r\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\r\n // Font is already loaded\r\n shouldLoadFont = false;\r\n }\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var l = createTag('link');\r\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n l.setAttribute('f-origin', fontArr[i].origin);\r\n l.type = \"text/css\";\r\n l.rel = \"stylesheet\";\r\n l.href = fontArr[i].fPath;\r\n document.body.appendChild(l);\r\n }\r\n } else if(fontArr[i].fOrigin === 't' || fontArr[i].origin === 2){\r\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\r\n\r\n for (j = 0; j < loadedSelector.length; j++) {\r\n if (fontArr[i].fPath === loadedSelector[j].src) {\r\n // Font is already loaded\r\n shouldLoadFont = false;\r\n }\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var sc = createTag('link');\r\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n sc.setAttribute('f-origin', fontArr[i].origin);\r\n sc.setAttribute('rel','stylesheet');\r\n sc.setAttribute('href',fontArr[i].fPath);\r\n defs.appendChild(sc);\r\n }\r\n }\r\n fontArr[i].helper = createHelper(defs,fontArr[i]);\r\n fontArr[i].cache = {};\r\n this.fonts.push(fontArr[i]);\r\n }\r\n if (_pendingFonts === 0) {\r\n this.isLoaded = true;\r\n } else {\r\n //On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\r\n //Adding this timeout seems to fix it\r\n setTimeout(this.checkLoadedFonts.bind(this), 100);\r\n }\r\n }\r\n\r\n function addChars(chars){\r\n if(!chars){\r\n return;\r\n }\r\n if(!this.chars){\r\n this.chars = [];\r\n }\r\n var i, len = chars.length;\r\n var j, jLen = this.chars.length, found;\r\n for(i=0;i= nextKeyData.t - offsetTime){\r\n if(keyData.h){\r\n keyData = nextKeyData;\r\n }\r\n iterationIndex = 0;\r\n break;\r\n }\r\n if ((nextKeyData.t - offsetTime) > frameNum){\r\n iterationIndex = i;\r\n break;\r\n }\r\n if (i < len - 1){\r\n i += 1;\r\n } else {\r\n iterationIndex = 0;\r\n flag = false;\r\n }\r\n }\r\n\r\n var k, kLen, perc, jLen, j, fnc;\r\n var nextKeyTime = nextKeyData.t - offsetTime;\r\n var keyTime = keyData.t - offsetTime;\r\n var endValue;\r\n if (keyData.to) {\r\n if (!keyData.bezierData) {\r\n keyData.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\r\n }\r\n var bezierData = keyData.bezierData;\r\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\r\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\r\n kLen = bezierData.points[ind].point.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[ind].point[k];\r\n }\r\n // caching._lastKeyframeIndex = -1;\r\n } else {\r\n if (keyData.__fnct) {\r\n fnc = keyData.__fnct;\r\n } else {\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\r\n keyData.__fnct = fnc;\r\n }\r\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\r\n var distanceInLine = bezierData.segmentLength*perc;\r\n\r\n var segmentPerc;\r\n var addedLength = (caching.lastFrame < frameNum && caching._lastKeyframeIndex === i) ? caching._lastAddedLength : 0;\r\n j = (caching.lastFrame < frameNum && caching._lastKeyframeIndex === i) ? caching._lastPoint : 0;\r\n flag = true;\r\n jLen = bezierData.points.length;\r\n while (flag) {\r\n addedLength += bezierData.points[j].partialLength;\r\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\r\n kLen = bezierData.points[j].point.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[j].point[k];\r\n }\r\n break;\r\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\r\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\r\n kLen = bezierData.points[j].point.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\r\n }\r\n break;\r\n }\r\n if (j < jLen - 1){\r\n j += 1;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n caching._lastPoint = j;\r\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\r\n caching._lastKeyframeIndex = i;\r\n }\r\n } else {\r\n var outX, outY, inX, inY, keyValue;\r\n len = keyData.s.length;\r\n endValue = nextKeyData.s || keyData.e;\r\n if (this.sh && keyData.h !== 1) {\r\n if (frameNum >= nextKeyTime) {\r\n newValue[0] = endValue[0];\r\n newValue[1] = endValue[1];\r\n newValue[2] = endValue[2];\r\n } else if (frameNum <= keyTime) {\r\n newValue[0] = keyData.s[0];\r\n newValue[1] = keyData.s[1];\r\n newValue[2] = keyData.s[2];\r\n } else {\r\n var quatStart = createQuaternion(keyData.s);\r\n var quatEnd = createQuaternion(endValue);\r\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\r\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\r\n }\r\n \r\n } else {\r\n for(i = 0; i < len; i += 1) {\r\n if (keyData.h !== 1) {\r\n if (frameNum >= nextKeyTime) {\r\n perc = 1;\r\n } else if(frameNum < keyTime) {\r\n perc = 0;\r\n } else {\r\n if(keyData.o.x.constructor === Array) {\r\n if (!keyData.__fnct) {\r\n keyData.__fnct = [];\r\n }\r\n if (!keyData.__fnct[i]) {\r\n outX = (typeof keyData.o.x[i] === 'undefined') ? keyData.o.x[0] : keyData.o.x[i];\r\n outY = (typeof keyData.o.y[i] === 'undefined') ? keyData.o.y[0] : keyData.o.y[i];\r\n inX = (typeof keyData.i.x[i] === 'undefined') ? keyData.i.x[0] : keyData.i.x[i];\r\n inY = (typeof keyData.i.y[i] === 'undefined') ? keyData.i.y[0] : keyData.i.y[i];\r\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\r\n keyData.__fnct[i] = fnc;\r\n } else {\r\n fnc = keyData.__fnct[i];\r\n }\r\n } else {\r\n if (!keyData.__fnct) {\r\n outX = keyData.o.x;\r\n outY = keyData.o.y;\r\n inX = keyData.i.x;\r\n inY = keyData.i.y;\r\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\r\n keyData.__fnct = fnc;\r\n } else {\r\n fnc = keyData.__fnct;\r\n }\r\n }\r\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime ));\r\n }\r\n }\r\n\r\n endValue = nextKeyData.s || keyData.e;\r\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\r\n\r\n if (this.propType === 'multidimensional') {\r\n newValue[i] = keyValue;\r\n } else {\r\n newValue = keyValue;\r\n }\r\n }\r\n }\r\n }\r\n caching.lastIndex = iterationIndex;\r\n return newValue;\r\n }\r\n\r\n //based on @Toji's https://github.com/toji/gl-matrix/\r\n function slerp(a, b, t) {\r\n var out = [];\r\n var ax = a[0], ay = a[1], az = a[2], aw = a[3],\r\n bx = b[0], by = b[1], bz = b[2], bw = b[3]\r\n\r\n var omega, cosom, sinom, scale0, scale1;\r\n\r\n cosom = ax * bx + ay * by + az * bz + aw * bw;\r\n if (cosom < 0.0) {\r\n cosom = -cosom;\r\n bx = -bx;\r\n by = -by;\r\n bz = -bz;\r\n bw = -bw;\r\n }\r\n if ((1.0 - cosom) > 0.000001) {\r\n omega = Math.acos(cosom);\r\n sinom = Math.sin(omega);\r\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\r\n scale1 = Math.sin(t * omega) / sinom;\r\n } else {\r\n scale0 = 1.0 - t;\r\n scale1 = t;\r\n }\r\n out[0] = scale0 * ax + scale1 * bx;\r\n out[1] = scale0 * ay + scale1 * by;\r\n out[2] = scale0 * az + scale1 * bz;\r\n out[3] = scale0 * aw + scale1 * bw;\r\n\r\n return out;\r\n }\r\n\r\n function quaternionToEuler(out, quat) {\r\n var qx = quat[0];\r\n var qy = quat[1];\r\n var qz = quat[2];\r\n var qw = quat[3];\r\n var heading = Math.atan2(2*qy*qw-2*qx*qz , 1 - 2*qy*qy - 2*qz*qz)\r\n var attitude = Math.asin(2*qx*qy + 2*qz*qw) \r\n var bank = Math.atan2(2*qx*qw-2*qy*qz , 1 - 2*qx*qx - 2*qz*qz);\r\n out[0] = heading/degToRads;\r\n out[1] = attitude/degToRads;\r\n out[2] = bank/degToRads;\r\n }\r\n\r\n function createQuaternion(values) {\r\n var heading = values[0] * degToRads;\r\n var attitude = values[1] * degToRads;\r\n var bank = values[2] * degToRads;\r\n var c1 = Math.cos(heading / 2);\r\n var c2 = Math.cos(attitude / 2);\r\n var c3 = Math.cos(bank / 2);\r\n var s1 = Math.sin(heading / 2);\r\n var s2 = Math.sin(attitude / 2);\r\n var s3 = Math.sin(bank / 2);\r\n var w = c1 * c2 * c3 - s1 * s2 * s3;\r\n var x = s1 * s2 * c3 + c1 * c2 * s3;\r\n var y = s1 * c2 * c3 + c1 * s2 * s3;\r\n var z = c1 * s2 * c3 - s1 * c2 * s3;\r\n\r\n return [x,y,z,w];\r\n }\r\n\r\n function getValueAtCurrentTime(){\r\n var frameNum = this.comp.renderedFrame - this.offsetTime;\r\n var initTime = this.keyframes[0].t - this.offsetTime;\r\n var endTime = this.keyframes[this.keyframes.length- 1].t-this.offsetTime;\r\n if(!(frameNum === this._caching.lastFrame || (this._caching.lastFrame !== initFrame && ((this._caching.lastFrame >= endTime && frameNum >= endTime) || (this._caching.lastFrame < initTime && frameNum < initTime))))){\r\n if(this._caching.lastFrame >= frameNum) {\r\n this._caching._lastKeyframeIndex = -1;\r\n this._caching.lastIndex = 0;\r\n }\r\n\r\n var renderResult = this.interpolateValue(frameNum, this._caching);\r\n this.pv = renderResult;\r\n }\r\n this._caching.lastFrame = frameNum;\r\n return this.pv;\r\n }\r\n\r\n function setVValue(val) {\r\n var multipliedValue;\r\n if(this.propType === 'unidimensional') {\r\n multipliedValue = val * this.mult;\r\n if(math_abs(this.v - multipliedValue) > 0.00001) {\r\n this.v = multipliedValue;\r\n this._mdf = true;\r\n }\r\n } else {\r\n var i = 0, len = this.v.length;\r\n while (i < len) {\r\n multipliedValue = val[i] * this.mult;\r\n if (math_abs(this.v[i] - multipliedValue) > 0.00001) {\r\n this.v[i] = multipliedValue;\r\n this._mdf = true;\r\n }\r\n i += 1;\r\n }\r\n }\r\n }\r\n\r\n function processEffectsSequence() {\r\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\r\n return;\r\n }\r\n if(this.lock) {\r\n this.setVValue(this.pv);\r\n return;\r\n }\r\n this.lock = true;\r\n this._mdf = this._isFirstFrame;\r\n var multipliedValue;\r\n var i, len = this.effectsSequence.length;\r\n var finalValue = this.kf ? this.pv : this.data.k;\r\n for(i = 0; i < len; i += 1) {\r\n finalValue = this.effectsSequence[i](finalValue);\r\n }\r\n this.setVValue(finalValue);\r\n this._isFirstFrame = false;\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function addEffect(effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.container.addDynamicProperty(this);\r\n }\r\n\r\n function ValueProperty(elem, data, mult, container){\r\n this.propType = 'unidimensional';\r\n this.mult = mult || 1;\r\n this.data = data;\r\n this.v = mult ? data.k * mult : data.k;\r\n this.pv = data.k;\r\n this._mdf = false;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.k = false;\r\n this.kf = false;\r\n this.vel = 0;\r\n this.effectsSequence = [];\r\n this._isFirstFrame = true;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function MultiDimensionalProperty(elem, data, mult, container) {\r\n this.propType = 'multidimensional';\r\n this.mult = mult || 1;\r\n this.data = data;\r\n this._mdf = false;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.k = false;\r\n this.kf = false;\r\n this.frameId = -1;\r\n var i, len = data.k.length;\r\n this.v = createTypedArray('float32', len);\r\n this.pv = createTypedArray('float32', len);\r\n var arr = createTypedArray('float32', len);\r\n this.vel = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n this.v[i] = data.k[i] * this.mult;\r\n this.pv[i] = data.k[i];\r\n }\r\n this._isFirstFrame = true;\r\n this.effectsSequence = [];\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function KeyframedValueProperty(elem, data, mult, container) {\r\n this.propType = 'unidimensional';\r\n this.keyframes = data.k;\r\n this.offsetTime = elem.data.st;\r\n this.frameId = -1;\r\n this._caching = {lastFrame: initFrame, lastIndex: 0, value: 0, _lastKeyframeIndex: -1};\r\n this.k = true;\r\n this.kf = true;\r\n this.data = data;\r\n this.mult = mult || 1;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.v = initFrame;\r\n this.pv = initFrame;\r\n this._isFirstFrame = true;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.interpolateValue = interpolateValue;\r\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function KeyframedMultidimensionalProperty(elem, data, mult, container){\r\n this.propType = 'multidimensional';\r\n var i, len = data.k.length;\r\n var s, e,to,ti;\r\n for (i = 0; i < len - 1; i += 1) {\r\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\r\n s = data.k[i].s;\r\n e = data.k[i + 1].s;\r\n to = data.k[i].to;\r\n ti = data.k[i].ti;\r\n if((s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0],s[1],e[0],e[1],s[0] + to[0],s[1] + to[1]) && bez.pointOnLine2D(s[0],s[1],e[0],e[1],e[0] + ti[0],e[1] + ti[1])) || (s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0],s[1],s[2],e[0],e[1],e[2],s[0] + to[0],s[1] + to[1],s[2] + to[2]) && bez.pointOnLine3D(s[0],s[1],s[2],e[0],e[1],e[2],e[0] + ti[0],e[1] + ti[1],e[2] + ti[2]))){\r\n data.k[i].to = null;\r\n data.k[i].ti = null;\r\n }\r\n if(s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\r\n if(s.length === 2 || (s[2] === e[2] && to[2] === 0 && ti[2] === 0)) {\r\n data.k[i].to = null;\r\n data.k[i].ti = null;\r\n }\r\n }\r\n }\r\n }\r\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\r\n this.keyframes = data.k;\r\n this.offsetTime = elem.data.st;\r\n this.k = true;\r\n this.kf = true;\r\n this._isFirstFrame = true;\r\n this.mult = mult || 1;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.interpolateValue = interpolateValue;\r\n this.frameId = -1;\r\n var arrLen = data.k[0].s.length;\r\n this.v = createTypedArray('float32', arrLen);\r\n this.pv = createTypedArray('float32', arrLen);\r\n for (i = 0; i < arrLen; i += 1) {\r\n this.v[i] = initFrame;\r\n this.pv[i] = initFrame;\r\n }\r\n this._caching={lastFrame:initFrame,lastIndex:0,value:createTypedArray('float32', arrLen)};\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function getProp(elem,data,type, mult, container) {\r\n var p;\r\n if(!data.k.length){\r\n p = new ValueProperty(elem,data, mult, container);\r\n }else if(typeof(data.k[0]) === 'number'){\r\n p = new MultiDimensionalProperty(elem,data, mult, container);\r\n }else{\r\n switch(type){\r\n case 0:\r\n p = new KeyframedValueProperty(elem,data,mult, container);\r\n break;\r\n case 1:\r\n p = new KeyframedMultidimensionalProperty(elem,data,mult, container);\r\n break;\r\n }\r\n }\r\n if(p.effectsSequence.length){\r\n container.addDynamicProperty(p);\r\n }\r\n return p;\r\n }\r\n\r\n var ob = {\r\n getProp: getProp\r\n };\r\n return ob;\r\n}());\r\nvar TransformPropertyFactory = (function() {\r\n\r\n var defaultVector = [0,0]\r\n\r\n function applyToMatrix(mat) {\r\n var _mdf = this._mdf;\r\n this.iterateDynamicProperties();\r\n this._mdf = this._mdf || _mdf;\r\n if (this.a) {\r\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n }\r\n if (this.s) {\r\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n }\r\n if (this.sk) {\r\n mat.skewFromAxis(-this.sk.v, this.sa.v);\r\n }\r\n if (this.r) {\r\n mat.rotate(-this.r.v);\r\n } else {\r\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\r\n }\r\n if (this.data.p.s) {\r\n if (this.data.p.z) {\r\n mat.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n mat.translate(this.px.v, this.py.v, 0);\r\n }\r\n } else {\r\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\r\n }\r\n }\r\n function processKeys(forceRender){\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n if(this._isDirty) {\r\n this.precalculateMatrix();\r\n this._isDirty = false;\r\n }\r\n\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf || forceRender) {\r\n this.v.cloneFromProps(this.pre.props);\r\n if (this.appliedTransformations < 1) {\r\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n }\r\n if(this.appliedTransformations < 2) {\r\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n }\r\n if (this.sk && this.appliedTransformations < 3) {\r\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\r\n }\r\n if (this.r && this.appliedTransformations < 4) {\r\n this.v.rotate(-this.r.v);\r\n } else if (!this.r && this.appliedTransformations < 4){\r\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\r\n }\r\n if (this.autoOriented) {\r\n var v1,v2, frameRate = this.elem.globalData.frameRate;\r\n if(this.p && this.p.keyframes && this.p.getValueAtTime) {\r\n if (this.p._caching.lastFrame+this.p.offsetTime <= this.p.keyframes[0].t) {\r\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate,0);\r\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\r\n } else if(this.p._caching.lastFrame+this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\r\n v1 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t / frameRate), 0);\r\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\r\n } else {\r\n v1 = this.p.pv;\r\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame+this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\r\n }\r\n } else if(this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\r\n v1 = [];\r\n v2 = [];\r\n var px = this.px, py = this.py, frameRate;\r\n if (px._caching.lastFrame+px.offsetTime <= px.keyframes[0].t) {\r\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate,0);\r\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate,0);\r\n v2[0] = px.getValueAtTime((px.keyframes[0].t) / frameRate,0);\r\n v2[1] = py.getValueAtTime((py.keyframes[0].t) / frameRate,0);\r\n } else if(px._caching.lastFrame+px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\r\n v1[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t / frameRate),0);\r\n v1[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t / frameRate),0);\r\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate,0);\r\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate,0);\r\n } else {\r\n v1 = [px.pv, py.pv];\r\n v2[0] = px.getValueAtTime((px._caching.lastFrame+px.offsetTime - 0.01) / frameRate,px.offsetTime);\r\n v2[1] = py.getValueAtTime((py._caching.lastFrame+py.offsetTime - 0.01) / frameRate,py.offsetTime);\r\n }\r\n } else {\r\n v1 = v2 = defaultVector\r\n }\r\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\r\n }\r\n if(this.data.p && this.data.p.s){\r\n if(this.data.p.z) {\r\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n this.v.translate(this.px.v, this.py.v, 0);\r\n }\r\n }else{\r\n this.v.translate(this.p.v[0],this.p.v[1],-this.p.v[2]);\r\n }\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function precalculateMatrix() {\r\n if(!this.a.k) {\r\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n this.appliedTransformations = 1;\r\n } else {\r\n return;\r\n }\r\n if(!this.s.effectsSequence.length) {\r\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n this.appliedTransformations = 2;\r\n } else {\r\n return;\r\n }\r\n if(this.sk) {\r\n if(!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\r\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\r\n this.appliedTransformations = 3;\r\n } else {\r\n return;\r\n }\r\n }\r\n if (this.r) {\r\n if(!this.r.effectsSequence.length) {\r\n this.pre.rotate(-this.r.v);\r\n this.appliedTransformations = 4;\r\n } else {\r\n return;\r\n }\r\n } else if(!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\r\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\r\n this.appliedTransformations = 4;\r\n }\r\n }\r\n\r\n function autoOrient(){\r\n //\r\n //var prevP = this.getValueAtTime();\r\n }\r\n\r\n function addDynamicProperty(prop) {\r\n this._addDynamicProperty(prop);\r\n this.elem.addDynamicProperty(prop);\r\n this._isDirty = true;\r\n }\r\n\r\n function TransformProperty(elem,data,container){\r\n this.elem = elem;\r\n this.frameId = -1;\r\n this.propType = 'transform';\r\n this.data = data;\r\n this.v = new Matrix();\r\n //Precalculated matrix with non animated properties\r\n this.pre = new Matrix();\r\n this.appliedTransformations = 0;\r\n this.initDynamicPropertyContainer(container || elem);\r\n if(data.p && data.p.s){\r\n this.px = PropertyFactory.getProp(elem,data.p.x,0,0,this);\r\n this.py = PropertyFactory.getProp(elem,data.p.y,0,0,this);\r\n if(data.p.z){\r\n this.pz = PropertyFactory.getProp(elem,data.p.z,0,0,this);\r\n }\r\n }else{\r\n this.p = PropertyFactory.getProp(elem,data.p || {k:[0,0,0]},1,0,this);\r\n }\r\n if(data.rx) {\r\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\r\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\r\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\r\n if(data.or.k[0].ti) {\r\n var i, len = data.or.k.length;\r\n for(i=0;i= this._maxLength) {\r\n\t\tthis.doubleArrayLength();\r\n\t}\r\n\tswitch(type){\r\n\t\tcase 'v':\r\n\t\t\tarr = this.v;\r\n\t\t\tbreak;\r\n\t\tcase 'i':\r\n\t\t\tarr = this.i;\r\n\t\t\tbreak;\r\n\t\tcase 'o':\r\n\t\t\tarr = this.o;\r\n\t\t\tbreak;\r\n\t}\r\n\tif(!arr[pos] || (arr[pos] && !replace)){\r\n\t\tarr[pos] = point_pool.newElement();\r\n\t}\r\n\tarr[pos][0] = x;\r\n\tarr[pos][1] = y;\r\n};\r\n\r\nShapePath.prototype.setTripleAt = function(vX,vY,oX,oY,iX,iY,pos, replace) {\r\n\tthis.setXYAt(vX,vY,'v',pos, replace);\r\n\tthis.setXYAt(oX,oY,'o',pos, replace);\r\n\tthis.setXYAt(iX,iY,'i',pos, replace);\r\n};\r\n\r\nShapePath.prototype.reverse = function() {\r\n\tvar newPath = new ShapePath();\r\n\tnewPath.setPathData(this.c, this._length);\r\n\tvar vertices = this.v, outPoints = this.o, inPoints = this.i;\r\n\tvar init = 0;\r\n\tif (this.c) {\r\n\t\tnewPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\r\n init = 1;\r\n }\r\n var cnt = this._length - 1;\r\n var len = this._length;\r\n\r\n var i;\r\n for (i = init; i < len; i += 1) {\r\n \tnewPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\r\n cnt -= 1;\r\n }\r\n return newPath;\r\n};\r\nvar ShapePropertyFactory = (function(){\r\n\r\n var initFrame = -999999;\r\n\r\n function interpolateShape(frameNum, previousValue, caching) {\r\n var iterationIndex = caching.lastIndex;\r\n var keyPropS,keyPropE,isHold, j, k, jLen, kLen, perc, vertexValue;\r\n var kf = this.keyframes;\r\n if(frameNum < kf[0].t-this.offsetTime){\r\n keyPropS = kf[0].s[0];\r\n isHold = true;\r\n iterationIndex = 0;\r\n }else if(frameNum >= kf[kf.length - 1].t-this.offsetTime){\r\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\r\n /*if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n }*/\r\n isHold = true;\r\n }else{\r\n var i = iterationIndex;\r\n var len = kf.length- 1,flag = true,keyData,nextKeyData;\r\n while(flag){\r\n keyData = kf[i];\r\n nextKeyData = kf[i+1];\r\n if((nextKeyData.t - this.offsetTime) > frameNum){\r\n break;\r\n }\r\n if(i < len - 1){\r\n i += 1;\r\n }else{\r\n flag = false;\r\n }\r\n }\r\n isHold = keyData.h === 1;\r\n iterationIndex = i;\r\n if(!isHold){\r\n if(frameNum >= nextKeyData.t-this.offsetTime){\r\n perc = 1;\r\n }else if(frameNum < keyData.t-this.offsetTime){\r\n perc = 0;\r\n }else{\r\n var fnc;\r\n if(keyData.__fnct){\r\n fnc = keyData.__fnct;\r\n }else{\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x,keyData.o.y,keyData.i.x,keyData.i.y).get;\r\n keyData.__fnct = fnc;\r\n }\r\n perc = fnc((frameNum-(keyData.t-this.offsetTime))/((nextKeyData.t-this.offsetTime)-(keyData.t-this.offsetTime)));\r\n }\r\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\r\n }\r\n keyPropS = keyData.s[0];\r\n }\r\n jLen = previousValue._length;\r\n kLen = keyPropS.i[0].length;\r\n caching.lastIndex = iterationIndex;\r\n\r\n for(j=0;j endTime && frameNum > endTime)))){\r\n ////\r\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\r\n this.interpolateShape(frameNum, this.pv, this._caching);\r\n ////\r\n }\r\n this._caching.lastFrame = frameNum;\r\n return this.pv;\r\n }\r\n\r\n function resetShape(){\r\n this.paths = this.localShapeCollection;\r\n }\r\n\r\n function shapesEqual(shape1, shape2) {\r\n if(shape1._length !== shape2._length || shape1.c !== shape2.c){\r\n return false;\r\n }\r\n var i, len = shape1._length;\r\n for(i = 0; i < len; i += 1) {\r\n if(shape1.v[i][0] !== shape2.v[i][0] \r\n || shape1.v[i][1] !== shape2.v[i][1] \r\n || shape1.o[i][0] !== shape2.o[i][0] \r\n || shape1.o[i][1] !== shape2.o[i][1] \r\n || shape1.i[i][0] !== shape2.i[i][0] \r\n || shape1.i[i][1] !== shape2.i[i][1]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n function setVValue(newPath) {\r\n if(!shapesEqual(this.v, newPath)) {\r\n this.v = shape_pool.clone(newPath);\r\n this.localShapeCollection.releaseShapes();\r\n this.localShapeCollection.addShape(this.v);\r\n this._mdf = true;\r\n this.paths = this.localShapeCollection;\r\n }\r\n }\r\n\r\n function processEffectsSequence() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n } else if (!this.effectsSequence.length) {\r\n this._mdf = false;\r\n return;\r\n }\r\n if (this.lock) {\r\n this.setVValue(this.pv);\r\n return;\r\n }\r\n this.lock = true;\r\n this._mdf = false;\r\n var finalValue = this.kf ? this.pv : this.data.ks ? this.data.ks.k : this.data.pt.k;\r\n var i, len = this.effectsSequence.length;\r\n for(i = 0; i < len; i += 1) {\r\n finalValue = this.effectsSequence[i](finalValue);\r\n }\r\n this.setVValue(finalValue);\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n };\r\n\r\n function ShapeProperty(elem, data, type){\r\n this.propType = 'shape';\r\n this.comp = elem.comp;\r\n this.container = elem;\r\n this.elem = elem;\r\n this.data = data;\r\n this.k = false;\r\n this.kf = false;\r\n this._mdf = false;\r\n var pathData = type === 3 ? data.pt.k : data.ks.k;\r\n this.v = shape_pool.clone(pathData);\r\n this.pv = shape_pool.clone(this.v);\r\n this.localShapeCollection = shapeCollection_pool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.reset = resetShape;\r\n this.effectsSequence = [];\r\n }\r\n\r\n function addEffect(effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.container.addDynamicProperty(this);\r\n }\r\n\r\n ShapeProperty.prototype.interpolateShape = interpolateShape;\r\n ShapeProperty.prototype.getValue = processEffectsSequence;\r\n ShapeProperty.prototype.setVValue = setVValue;\r\n ShapeProperty.prototype.addEffect = addEffect;\r\n\r\n function KeyframedShapeProperty(elem,data,type){\r\n this.propType = 'shape';\r\n this.comp = elem.comp;\r\n this.elem = elem;\r\n this.container = elem;\r\n this.offsetTime = elem.data.st;\r\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\r\n this.k = true;\r\n this.kf = true;\r\n var i, len = this.keyframes[0].s[0].i.length;\r\n var jLen = this.keyframes[0].s[0].i[0].length;\r\n this.v = shape_pool.newElement();\r\n this.v.setPathData(this.keyframes[0].s[0].c, len);\r\n this.pv = shape_pool.clone(this.v);\r\n this.localShapeCollection = shapeCollection_pool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.lastFrame = initFrame;\r\n this.reset = resetShape;\r\n this._caching = {lastFrame: initFrame, lastIndex: 0};\r\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\r\n }\r\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\r\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\r\n KeyframedShapeProperty.prototype.setVValue = setVValue;\r\n KeyframedShapeProperty.prototype.addEffect = addEffect;\r\n\r\n var EllShapeProperty = (function(){\r\n\r\n var cPoint = roundCorner;\r\n\r\n function EllShapeProperty(elem,data) {\r\n /*this.v = {\r\n v: createSizedArray(4),\r\n i: createSizedArray(4),\r\n o: createSizedArray(4),\r\n c: true\r\n };*/\r\n this.v = shape_pool.newElement();\r\n this.v.setPathData(true, 4);\r\n this.localShapeCollection = shapeCollection_pool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.localShapeCollection.addShape(this.v);\r\n this.d = data.d;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.frameId = -1;\r\n this.initDynamicPropertyContainer(elem);\r\n this.p = PropertyFactory.getProp(elem,data.p,1,0,this);\r\n this.s = PropertyFactory.getProp(elem,data.s,1,0,this);\r\n if(this.dynamicProperties.length){\r\n this.k = true;\r\n }else{\r\n this.k = false;\r\n this.convertEllToPath();\r\n }\r\n };\r\n\r\n EllShapeProperty.prototype = {\r\n reset: resetShape,\r\n getValue: function (){\r\n if(this.elem.globalData.frameId === this.frameId){\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n\r\n if(this._mdf){\r\n this.convertEllToPath();\r\n }\r\n },\r\n convertEllToPath: function() {\r\n var p0 = this.p.v[0], p1 = this.p.v[1], s0 = this.s.v[0]/2, s1 = this.s.v[1]/2;\r\n var _cw = this.d !== 3;\r\n var _v = this.v;\r\n _v.v[0][0] = p0;\r\n _v.v[0][1] = p1 - s1;\r\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.v[1][1] = p1;\r\n _v.v[2][0] = p0;\r\n _v.v[2][1] = p1 + s1;\r\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.v[3][1] = p1;\r\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\r\n _v.i[0][1] = p1 - s1;\r\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.i[1][1] = p1 - s1 * cPoint;\r\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\r\n _v.i[2][1] = p1 + s1;\r\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.i[3][1] = p1 + s1 * cPoint;\r\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\r\n _v.o[0][1] = p1 - s1;\r\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.o[1][1] = p1 + s1 * cPoint;\r\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\r\n _v.o[2][1] = p1 + s1;\r\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.o[3][1] = p1 - s1 * cPoint;\r\n }\r\n }\r\n\r\n extendPrototype([DynamicPropertyContainer], EllShapeProperty);\r\n\r\n return EllShapeProperty;\r\n }());\r\n\r\n var StarShapeProperty = (function() {\r\n\r\n function StarShapeProperty(elem,data) {\r\n this.v = shape_pool.newElement();\r\n this.v.setPathData(true, 0);\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.data = data;\r\n this.frameId = -1;\r\n this.d = data.d;\r\n this.initDynamicPropertyContainer(elem);\r\n if(data.sy === 1){\r\n this.ir = PropertyFactory.getProp(elem,data.ir,0,0,this);\r\n this.is = PropertyFactory.getProp(elem,data.is,0,0.01,this);\r\n this.convertToPath = this.convertStarToPath;\r\n } else {\r\n this.convertToPath = this.convertPolygonToPath;\r\n }\r\n this.pt = PropertyFactory.getProp(elem,data.pt,0,0,this);\r\n this.p = PropertyFactory.getProp(elem,data.p,1,0,this);\r\n this.r = PropertyFactory.getProp(elem,data.r,0,degToRads,this);\r\n this.or = PropertyFactory.getProp(elem,data.or,0,0,this);\r\n this.os = PropertyFactory.getProp(elem,data.os,0,0.01,this);\r\n this.localShapeCollection = shapeCollection_pool.newShapeCollection();\r\n this.localShapeCollection.addShape(this.v);\r\n this.paths = this.localShapeCollection;\r\n if(this.dynamicProperties.length){\r\n this.k = true;\r\n }else{\r\n this.k = false;\r\n this.convertToPath();\r\n }\r\n };\r\n\r\n StarShapeProperty.prototype = {\r\n reset: resetShape,\r\n getValue: function() {\r\n if(this.elem.globalData.frameId === this.frameId){\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n if(this._mdf){\r\n this.convertToPath();\r\n }\r\n },\r\n convertStarToPath: function() {\r\n var numPts = Math.floor(this.pt.v)*2;\r\n var angle = Math.PI*2/numPts;\r\n /*this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts;*/\r\n var longFlag = true;\r\n var longRad = this.or.v;\r\n var shortRad = this.ir.v;\r\n var longRound = this.os.v;\r\n var shortRound = this.is.v;\r\n var longPerimSegment = 2*Math.PI*longRad/(numPts*2);\r\n var shortPerimSegment = 2*Math.PI*shortRad/(numPts*2);\r\n var i, rad,roundness,perimSegment, currentAng = -Math.PI/ 2;\r\n currentAng += this.r.v;\r\n var dir = this.data.d === 3 ? -1 : 1;\r\n this.v._length = 0;\r\n for(i=0;i= 1) {\r\n segments.push({\r\n s: s - 1,\r\n e: e - 1\r\n });\r\n } else {\r\n segments.push({\r\n s: s,\r\n e: 1\r\n });\r\n segments.push({\r\n s: 0,\r\n e: e - 1\r\n });\r\n }\r\n var shapeSegments = [];\r\n var i, len = segments.length, segmentOb;\r\n for (i = 0; i < len; i += 1) {\r\n segmentOb = segments[i];\r\n if (segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength) {\r\n \r\n } else {\r\n var shapeS, shapeE;\r\n if (segmentOb.s * totalModifierLength <= addedLength) {\r\n shapeS = 0;\r\n } else {\r\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\r\n }\r\n if(segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\r\n shapeE = 1;\r\n } else {\r\n shapeE = ((segmentOb.e * totalModifierLength - addedLength) / shapeLength);\r\n }\r\n shapeSegments.push([shapeS, shapeE]);\r\n }\r\n }\r\n if (!shapeSegments.length) {\r\n shapeSegments.push([0, 0]);\r\n }\r\n return shapeSegments;\r\n};\r\n\r\nTrimModifier.prototype.releasePathsData = function(pathsData) {\r\n var i, len = pathsData.length;\r\n for (i = 0; i < len; i += 1) {\r\n segments_length_pool.release(pathsData[i]);\r\n }\r\n pathsData.length = 0;\r\n return pathsData;\r\n};\r\n\r\nTrimModifier.prototype.processShapes = function(_isFirstFrame) {\r\n var s, e;\r\n if (this._mdf || _isFirstFrame) {\r\n var o = (this.o.v % 360) / 360;\r\n if (o < 0) {\r\n o += 1;\r\n }\r\n s = (this.s.v > 1 ? 1 : this.s.v < 0 ? 0 : this.s.v) + o;\r\n e = (this.e.v > 1 ? 1 : this.e.v < 0 ? 0 : this.e.v) + o;\r\n if (s === e) {\r\n\r\n }\r\n if (s > e) {\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n s = Math.round(s * 10000) * 0.0001;\r\n e = Math.round(e * 10000) * 0.0001;\r\n this.sValue = s;\r\n this.eValue = e;\r\n } else {\r\n s = this.sValue;\r\n e = this.eValue;\r\n }\r\n var shapePaths;\r\n var i, len = this.shapes.length, j, jLen;\r\n var pathsData, pathData, totalShapeLength, totalModifierLength = 0;\r\n\r\n if (e === s) {\r\n for (i = 0; i < len; i += 1) {\r\n this.shapes[i].localShapeCollection.releaseShapes();\r\n this.shapes[i].shape._mdf = true;\r\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\r\n if (this._mdf) {\r\n this.shapes[i].pathsData.length = 0;\r\n }\r\n }\r\n } else if (!((e === 1 && s === 0) || (e===0 && s === 1))){\r\n var segments = [], shapeData, localShapeCollection;\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\r\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n } else {\r\n shapePaths = shapeData.shape.paths;\r\n jLen = shapePaths._length;\r\n totalShapeLength = 0;\r\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\r\n totalShapeLength = shapeData.totalShapeLength;\r\n } else {\r\n pathsData = this.releasePathsData(shapeData.pathsData);\r\n for (j = 0; j < jLen; j += 1) {\r\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\r\n pathsData.push(pathData);\r\n totalShapeLength += pathData.totalLength;\r\n }\r\n shapeData.totalShapeLength = totalShapeLength;\r\n shapeData.pathsData = pathsData;\r\n }\r\n\r\n totalModifierLength += totalShapeLength;\r\n shapeData.shape._mdf = true;\r\n }\r\n }\r\n var shapeS = s, shapeE = e, addedLength = 0, edges;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n shapeData = this.shapes[i];\r\n if (shapeData.shape._mdf) {\r\n localShapeCollection = shapeData.localShapeCollection;\r\n localShapeCollection.releaseShapes();\r\n //if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\r\n if (this.m === 2 && len > 1) {\r\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\r\n addedLength += shapeData.totalShapeLength;\r\n } else {\r\n edges = [[shapeS, shapeE]];\r\n }\r\n jLen = edges.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n shapeS = edges[j][0];\r\n shapeE = edges[j][1];\r\n segments.length = 0;\r\n if (shapeE <= 1) {\r\n segments.push({\r\n s:shapeData.totalShapeLength * shapeS,\r\n e:shapeData.totalShapeLength * shapeE\r\n });\r\n } else if (shapeS >= 1) {\r\n segments.push({\r\n s:shapeData.totalShapeLength * (shapeS - 1),\r\n e:shapeData.totalShapeLength * (shapeE - 1)\r\n });\r\n } else {\r\n segments.push({\r\n s:shapeData.totalShapeLength * shapeS,\r\n e:shapeData.totalShapeLength\r\n });\r\n segments.push({\r\n s:0,\r\n e:shapeData.totalShapeLength * (shapeE - 1)\r\n });\r\n }\r\n var newShapesData = this.addShapes(shapeData,segments[0]);\r\n if (segments[0].s !== segments[0].e) {\r\n if (segments.length > 1) {\r\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\r\n if (lastShapeInCollection.c) {\r\n var lastShape = newShapesData.pop();\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\r\n } else {\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData, segments[1]);\r\n }\r\n } \r\n this.addPaths(newShapesData, localShapeCollection);\r\n }\r\n \r\n }\r\n shapeData.shape.paths = localShapeCollection;\r\n }\r\n }\r\n } else if (this._mdf) {\r\n for (i = 0; i < len; i += 1) {\r\n //Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\r\n //Don't remove this even if it's losing cached info.\r\n this.shapes[i].pathsData.length = 0;\r\n this.shapes[i].shape._mdf = true;\r\n }\r\n }\r\n};\r\n\r\nTrimModifier.prototype.addPaths = function(newPaths, localShapeCollection) {\r\n var i, len = newPaths.length;\r\n for (i = 0; i < len; i += 1) {\r\n localShapeCollection.addShape(newPaths[i]);\r\n }\r\n};\r\n\r\nTrimModifier.prototype.addSegment = function(pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\r\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\r\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\r\n if(newShape){\r\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\r\n }\r\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\r\n};\r\n\r\nTrimModifier.prototype.addSegmentFromArray = function(points, shapePath, pos, newShape) {\r\n shapePath.setXYAt(points[1], points[5], 'o', pos);\r\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\r\n if(newShape){\r\n shapePath.setXYAt(points[0], points[4], 'v', pos);\r\n }\r\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\r\n};\r\n\r\nTrimModifier.prototype.addShapes = function(shapeData, shapeSegment, shapePath) {\r\n var pathsData = shapeData.pathsData;\r\n var shapePaths = shapeData.shape.paths.shapes;\r\n var i, len = shapeData.shape.paths._length, j, jLen;\r\n var addedLength = 0;\r\n var currentLengthData,segmentCount;\r\n var lengths;\r\n var segment;\r\n var shapes = [];\r\n var initPos;\r\n var newShape = true;\r\n if (!shapePath) {\r\n shapePath = shape_pool.newElement();\r\n segmentCount = 0;\r\n initPos = 0;\r\n } else {\r\n segmentCount = shapePath._length;\r\n initPos = shapePath._length;\r\n }\r\n shapes.push(shapePath);\r\n for (i = 0; i < len; i += 1) {\r\n lengths = pathsData[i].lengths;\r\n shapePath.c = shapePaths[i].c;\r\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\r\n for (j = 1; j < jLen; j +=1) {\r\n currentLengthData = lengths[j-1];\r\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\r\n addedLength += currentLengthData.addedLength;\r\n shapePath.c = false;\r\n } else if(addedLength > shapeSegment.e) {\r\n shapePath.c = false;\r\n break;\r\n } else {\r\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\r\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\r\n newShape = false;\r\n } else {\r\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength)/currentLengthData.addedLength,(shapeSegment.e - addedLength)/currentLengthData.addedLength, lengths[j-1]);\r\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape);\r\n // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n }\r\n if (shapePaths[i].c && lengths.length) {\r\n currentLengthData = lengths[j - 1];\r\n if (addedLength <= shapeSegment.e) {\r\n var segmentLength = lengths[j - 1].addedLength;\r\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\r\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\r\n newShape = false;\r\n } else {\r\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\r\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape);\r\n // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n } else {\r\n shapePath.c = false;\r\n }\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n if (shapePath._length) {\r\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\r\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1],'o', shapePath._length - 1);\r\n }\r\n if (addedLength > shapeSegment.e) {\r\n break;\r\n }\r\n if (i < len - 1) {\r\n shapePath = shape_pool.newElement();\r\n newShape = true;\r\n shapes.push(shapePath);\r\n segmentCount = 0;\r\n }\r\n }\r\n return shapes;\r\n};\r\n\r\n\r\nShapeModifiers.registerModifier('tm', TrimModifier);\r\nfunction RoundCornersModifier(){}\r\nextendPrototype([ShapeModifier],RoundCornersModifier);\r\nRoundCornersModifier.prototype.initModifierProperties = function(elem,data){\r\n this.getValue = this.processKeys;\r\n this.rd = PropertyFactory.getProp(elem,data.r,0,null,this);\r\n this._isAnimated = !!this.rd.effectsSequence.length;\r\n};\r\n\r\nRoundCornersModifier.prototype.processPath = function(path, round){\r\n var cloned_path = shape_pool.newElement();\r\n cloned_path.c = path.c;\r\n var i, len = path._length;\r\n var currentV,currentI,currentO,closerV, newV,newO,newI,distance,newPosPerc,index = 0;\r\n var vX,vY,oX,oY,iX,iY;\r\n for(i=0;i0){\r\n pos -= 1;\r\n //this._elements.unshift(arr.splice(pos,1)[0]);\r\n this._elements.unshift(arr[pos]);\r\n cont += 1;\r\n }\r\n if(this.dynamicProperties.length){\r\n this.k = true;\r\n }else{\r\n this.getValue(true);\r\n }\r\n};\r\n\r\nRepeaterModifier.prototype.resetElements = function(elements){\r\n var i, len = elements.length;\r\n for(i = 0; i < len; i += 1) {\r\n elements[i]._processed = false;\r\n if(elements[i].ty === 'gr'){\r\n this.resetElements(elements[i].it);\r\n }\r\n }\r\n};\r\n\r\nRepeaterModifier.prototype.cloneElements = function(elements){\r\n var i, len = elements.length;\r\n var newElements = JSON.parse(JSON.stringify(elements));\r\n this.resetElements(newElements);\r\n return newElements;\r\n};\r\n\r\nRepeaterModifier.prototype.changeGroupRender = function(elements, renderFlag) {\r\n var i, len = elements.length;\r\n for(i = 0; i < len; i += 1) {\r\n elements[i]._render = renderFlag;\r\n if(elements[i].ty === 'gr') {\r\n this.changeGroupRender(elements[i].it, renderFlag);\r\n }\r\n }\r\n};\r\n\r\nRepeaterModifier.prototype.processShapes = function(_isFirstFrame) {\r\n var items, itemsTransform, i, dir, cont;\r\n if(this._mdf || _isFirstFrame){\r\n var copies = Math.ceil(this.c.v);\r\n if(this._groups.length < copies){\r\n while(this._groups.length < copies){\r\n var group = {\r\n it:this.cloneElements(this._elements),\r\n ty:'gr'\r\n };\r\n group.it.push({\"a\":{\"a\":0,\"ix\":1,\"k\":[0,0]},\"nm\":\"Transform\",\"o\":{\"a\":0,\"ix\":7,\"k\":100},\"p\":{\"a\":0,\"ix\":2,\"k\":[0,0]},\"r\":{\"a\":1,\"ix\":6,\"k\":[{s:0,e:0,t:0},{s:0,e:0,t:1}]},\"s\":{\"a\":0,\"ix\":3,\"k\":[100,100]},\"sa\":{\"a\":0,\"ix\":5,\"k\":0},\"sk\":{\"a\":0,\"ix\":4,\"k\":0},\"ty\":\"tr\"});\r\n \r\n this.arr.splice(0,0,group);\r\n this._groups.splice(0,0,group);\r\n this._currentCopies += 1;\r\n }\r\n this.elem.reloadShapes();\r\n }\r\n cont = 0;\r\n var renderFlag;\r\n for(i = 0; i <= this._groups.length - 1; i += 1){\r\n renderFlag = cont < copies;\r\n this._groups[i]._render = renderFlag;\r\n this.changeGroupRender(this._groups[i].it, renderFlag);\r\n cont += 1;\r\n }\r\n \r\n this._currentCopies = copies;\r\n ////\r\n\r\n var offset = this.o.v;\r\n var offsetModulo = offset%1;\r\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\r\n var k;\r\n var tMat = this.tr.v.props;\r\n var pProps = this.pMatrix.props;\r\n var rProps = this.rMatrix.props;\r\n var sProps = this.sMatrix.props;\r\n this.pMatrix.reset();\r\n this.rMatrix.reset();\r\n this.sMatrix.reset();\r\n this.tMatrix.reset();\r\n this.matrix.reset();\r\n var iteration = 0;\r\n\r\n if(offset > 0) {\r\n while(iterationroundOffset){\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\r\n iteration -= 1;\r\n }\r\n if(offsetModulo){\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, - offsetModulo, true);\r\n iteration -= offsetModulo;\r\n }\r\n }\r\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\r\n dir = this.data.m === 1 ? 1 : -1;\r\n cont = this._currentCopies;\r\n var j, jLen;\r\n while(cont){\r\n items = this.elemsData[i].it;\r\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\r\n jLen = itemsTransform.length;\r\n items[items.length - 1].transform.mProps._mdf = true;\r\n items[items.length - 1].transform.op._mdf = true;\r\n items[items.length - 1].transform.op.v = this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\r\n if(iteration !== 0){\r\n if((i !== 0 && dir === 1) || (i !== this._currentCopies - 1 && dir === -1)){\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\r\n }\r\n this.matrix.transform(rProps[0],rProps[1],rProps[2],rProps[3],rProps[4],rProps[5],rProps[6],rProps[7],rProps[8],rProps[9],rProps[10],rProps[11],rProps[12],rProps[13],rProps[14],rProps[15]);\r\n this.matrix.transform(sProps[0],sProps[1],sProps[2],sProps[3],sProps[4],sProps[5],sProps[6],sProps[7],sProps[8],sProps[9],sProps[10],sProps[11],sProps[12],sProps[13],sProps[14],sProps[15]);\r\n this.matrix.transform(pProps[0],pProps[1],pProps[2],pProps[3],pProps[4],pProps[5],pProps[6],pProps[7],pProps[8],pProps[9],pProps[10],pProps[11],pProps[12],pProps[13],pProps[14],pProps[15]);\r\n \r\n for(j=0;j 0.01){\r\n return false;\r\n }\r\n i += 1;\r\n }\r\n return true;\r\n};\r\n\r\nGradientProperty.prototype.checkCollapsable = function() {\r\n if (this.o.length/2 !== this.c.length/4) {\r\n return false;\r\n }\r\n if (this.data.k.k[0].s) {\r\n var i = 0, len = this.data.k.k.length;\r\n while (i < len) {\r\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\r\n return false;\r\n }\r\n i += 1;\r\n }\r\n } else if(!this.comparePoints(this.data.k.k, this.data.p)) {\r\n return false;\r\n }\r\n return true;\r\n};\r\n\r\nGradientProperty.prototype.getValue = function(forceRender){\r\n this.prop.getValue();\r\n this._mdf = false;\r\n this._cmdf = false;\r\n this._omdf = false;\r\n if(this.prop._mdf || forceRender){\r\n var i, len = this.data.p*4;\r\n var mult, val;\r\n for(i=0;i= currentLength + animatorOffset || !points) {\r\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\r\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\r\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\r\n matrixHelper.translate(-alignment[0]*letters[i].an/200, -(alignment[1] * yOff / 100));\r\n flag = false;\r\n } else if (points) {\r\n segmentLength += currentPoint.partialLength;\r\n pointInd += 1;\r\n if (pointInd >= points.length) {\r\n pointInd = 0;\r\n segmentInd += 1;\r\n if (!segments[segmentInd]) {\r\n if (mask.v.c) {\r\n pointInd = 0;\r\n segmentInd = 0;\r\n points = segments[segmentInd].points;\r\n } else {\r\n segmentLength -= currentPoint.partialLength;\r\n points = null;\r\n }\r\n } else {\r\n points = segments[segmentInd].points;\r\n }\r\n }\r\n if (points) {\r\n prevPoint = currentPoint;\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n }\r\n }\r\n }\r\n offf = letters[i].an / 2 - letters[i].add;\r\n matrixHelper.translate(-offf, 0, 0);\r\n } else {\r\n offf = letters[i].an/2 - letters[i].add;\r\n matrixHelper.translate(-offf,0,0);\r\n\r\n // Grouping alignment\r\n matrixHelper.translate(-alignment[0]*letters[i].an/200, -alignment[1]*yOff/100, 0);\r\n }\r\n\r\n lineLength += letters[i].l/2;\r\n for(j=0;j 1;\r\n if(this.kf) {\r\n this.addEffect(this.getKeyframeValue.bind(this));\r\n }\r\n return this.kf;\r\n}\r\n\r\nTextProperty.prototype.addEffect = function(effectFunction) {\r\n\tthis.effectsSequence.push(effectFunction);\r\n this.elem.addDynamicProperty(this);\r\n};\r\n\r\nTextProperty.prototype.getValue = function(_finalValue) {\r\n if((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\r\n return;\r\n }\r\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\r\n var currentValue = this.currentData;\r\n var currentIndex = this.keysIndex;\r\n if(this.lock) {\r\n this.setCurrentData(this.currentData);\r\n return;\r\n }\r\n this.lock = true;\r\n this._mdf = false;\r\n var multipliedValue;\r\n var i, len = this.effectsSequence.length;\r\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\r\n for(i = 0; i < len; i += 1) {\r\n //Checking if index changed to prevent creating a new object every time the expression updates.\r\n if(currentIndex !== this.keysIndex) {\r\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\r\n } else {\r\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\r\n }\r\n }\r\n if(currentValue !== finalValue) {\r\n this.setCurrentData(finalValue);\r\n }\r\n this.pv = this.v = this.currentData;\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n}\r\n\r\nTextProperty.prototype.getKeyframeValue = function() {\r\n var textKeys = this.data.d.k, textDocumentData;\r\n var frameNum = this.elem.comp.renderedFrame;\r\n var i = 0, len = textKeys.length;\r\n while(i <= len - 1) {\r\n textDocumentData = textKeys[i].s;\r\n if(i === len - 1 || textKeys[i+1].t > frameNum){\r\n break;\r\n }\r\n i += 1;\r\n }\r\n if(this.keysIndex !== i) {\r\n this.keysIndex = i;\r\n }\r\n return this.data.d.k[this.keysIndex].s;\r\n};\r\n\r\nTextProperty.prototype.buildFinalText = function(text) {\r\n var combinedCharacters = FontManager.getCombinedCharacterCodes();\r\n var charactersArray = [];\r\n var i = 0, len = text.length;\r\n var charCode;\r\n while (i < len) {\r\n charCode = text.charCodeAt(i);\r\n if (combinedCharacters.indexOf(charCode) !== -1) {\r\n charactersArray[charactersArray.length - 1] += text.charAt(i);\r\n } else {\r\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\r\n charCode = text.charCodeAt(i + 1);\r\n if (charCode >= 0xDC00 && charCode <= 0xDFFF) {\r\n charactersArray.push(text.substr(i, 2));\r\n ++i;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n }\r\n i += 1;\r\n }\r\n return charactersArray;\r\n}\r\n\r\nTextProperty.prototype.completeTextData = function(documentData) {\r\n documentData.__complete = true;\r\n var fontManager = this.elem.globalData.fontManager;\r\n var data = this.data;\r\n var letters = [];\r\n var i, len;\r\n var newLineFlag, index = 0, val;\r\n var anchorGrouping = data.m.g;\r\n var currentSize = 0, currentPos = 0, currentLine = 0, lineWidths = [];\r\n var lineWidth = 0;\r\n var maxLineWidth = 0;\r\n var j, jLen;\r\n var fontData = fontManager.getFontByName(documentData.f);\r\n var charData, cLength = 0;\r\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\r\n\r\n var fWeight = 'normal', fStyle = 'normal';\r\n len = styles.length;\r\n var styleName;\r\n for(i=0;i boxWidth && finalText[i] !== ' '){\r\n if(lastSpaceIndex === -1){\r\n len += 1;\r\n } else {\r\n i = lastSpaceIndex;\r\n }\r\n currentHeight += documentData.finalLineHeight || documentData.finalSize*1.2;\r\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0,\"\\r\");\r\n //finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\r\n lastSpaceIndex = -1;\r\n lineWidth = 0;\r\n }else {\r\n lineWidth += cLength;\r\n lineWidth += trackingOffset;\r\n }\r\n }\r\n currentHeight += fontData.ascent*documentData.finalSize/100;\r\n if(this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\r\n documentData.finalSize -= 1;\r\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\r\n } else {\r\n documentData.finalText = finalText;\r\n len = documentData.finalText.length;\r\n flag = false;\r\n }\r\n }\r\n\r\n }\r\n lineWidth = - trackingOffset;\r\n cLength = 0;\r\n var uncollapsedSpaces = 0;\r\n var currentChar;\r\n for (i = 0;i < len ;i += 1) {\r\n newLineFlag = false;\r\n currentChar = documentData.finalText[i];\r\n charCode = currentChar.charCodeAt(0);\r\n if (charCode === 13 || charCode === 3) {\r\n uncollapsedSpaces = 0;\r\n lineWidths.push(lineWidth);\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidth = - 2 * trackingOffset;\r\n val = '';\r\n newLineFlag = true;\r\n currentLine += 1;\r\n }else{\r\n val = currentChar;\r\n }\r\n if(fontManager.chars){\r\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\r\n cLength = newLineFlag ? 0 : charData.w*documentData.finalSize/100;\r\n }else{\r\n //var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\r\n //tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\r\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\r\n }\r\n\r\n //\r\n if(currentChar === ' '){\r\n uncollapsedSpaces += cLength + trackingOffset;\r\n } else {\r\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\r\n uncollapsedSpaces = 0;\r\n }\r\n letters.push({l:cLength,an:cLength,add:currentSize,n:newLineFlag, anIndexes:[], val: val, line: currentLine, animatorJustifyOffset: 0});\r\n if(anchorGrouping == 2){\r\n currentSize += cLength;\r\n if(val === '' || val === ' ' || i === len - 1){\r\n if(val === '' || val === ' '){\r\n currentSize -= cLength;\r\n }\r\n while(currentPos<=i){\r\n letters[currentPos].an = currentSize;\r\n letters[currentPos].ind = index;\r\n letters[currentPos].extra = cLength;\r\n currentPos += 1;\r\n }\r\n index += 1;\r\n currentSize = 0;\r\n }\r\n }else if(anchorGrouping == 3){\r\n currentSize += cLength;\r\n if(val === '' || i === len - 1){\r\n if(val === ''){\r\n currentSize -= cLength;\r\n }\r\n while(currentPos<=i){\r\n letters[currentPos].an = currentSize;\r\n letters[currentPos].ind = index;\r\n letters[currentPos].extra = cLength;\r\n currentPos += 1;\r\n }\r\n currentSize = 0;\r\n index += 1;\r\n }\r\n }else{\r\n letters[index].ind = index;\r\n letters[index].extra = 0;\r\n index += 1;\r\n }\r\n }\r\n documentData.l = letters;\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidths.push(lineWidth);\r\n if(documentData.sz){\r\n documentData.boxWidth = documentData.sz[0];\r\n documentData.justifyOffset = 0;\r\n }else{\r\n documentData.boxWidth = maxLineWidth;\r\n switch(documentData.j){\r\n case 1:\r\n documentData.justifyOffset = - documentData.boxWidth;\r\n break;\r\n case 2:\r\n documentData.justifyOffset = - documentData.boxWidth/2;\r\n break;\r\n default:\r\n documentData.justifyOffset = 0;\r\n }\r\n }\r\n documentData.lineWidths = lineWidths;\r\n\r\n var animators = data.a, animatorData, letterData;\r\n jLen = animators.length;\r\n var based, ind, indexes = [];\r\n for(j=0;j 0) {\r\n x1 = this.ne.v / 100.0;\r\n }\r\n else {\r\n y1 = -this.ne.v / 100.0;\r\n }\r\n if(this.xe.v > 0) {\r\n x2 = 1.0 - this.xe.v / 100.0;\r\n }\r\n else {\r\n y2 = 1.0 + this.xe.v / 100.0;\r\n }\r\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\r\n\r\n var mult = 0;\r\n var s = this.finalS;\r\n var e = this.finalE;\r\n var type = this.data.sh;\r\n if (type === 2){\r\n if (e === s) {\r\n mult = ind >= e ? 1 : 0;\r\n } else {\r\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n }\r\n mult = easer(mult);\r\n } else if(type === 3) {\r\n if (e === s) {\r\n mult = ind >= e ? 0 : 1;\r\n }else{\r\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s),1));\r\n }\r\n\r\n mult = easer(mult);\r\n } else if (type === 4) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n if (mult < 0.5) {\r\n mult *= 2;\r\n } else {\r\n mult = 1 - 2 * (mult - 0.5);\r\n }\r\n }\r\n mult = easer(mult);\r\n } else if (type === 5) {\r\n if (e === s){\r\n mult = 0;\r\n } else {\r\n var tot = e - s;\r\n /*ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind;*/\r\n ind = min(max(0, ind + 0.5 - s), e - s);\r\n var x = -tot/2+ind;\r\n var a = tot/2;\r\n mult = Math.sqrt(1 - (x * x) / (a * a));\r\n }\r\n mult = easer(mult);\r\n } else if (type === 6) {\r\n if (e === s){\r\n mult = 0;\r\n } else {\r\n ind = min(max(0, ind + 0.5 - s), e - s);\r\n mult = (1 + (Math.cos((Math.PI + Math.PI * 2 * (ind) / (e - s))))) / 2;\r\n }\r\n mult = easer(mult);\r\n } else {\r\n if (ind >= floor(s)) {\r\n if (ind - s < 0) {\r\n mult = max(0, min(min(e, 1) - (s - ind), 1));\r\n } else {\r\n mult = max(0, min(e - ind, 1));\r\n }\r\n }\r\n mult = easer(mult);\r\n }\r\n return mult*this.a.v;\r\n },\r\n getValue: function(newCharsFlag) {\r\n this.iterateDynamicProperties();\r\n this._mdf = newCharsFlag || this._mdf;\r\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\r\n if(newCharsFlag && this.data.r === 2) {\r\n this.e.v = this._currentTextLength;\r\n }\r\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\r\n var o = this.o.v/divisor;\r\n var s = this.s.v/divisor + o;\r\n var e = (this.e.v/divisor) + o;\r\n if(s>e){\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n this.finalS = s;\r\n this.finalE = e;\r\n }\r\n }\r\n extendPrototype([DynamicPropertyContainer], TextSelectorProp);\r\n\r\n function getTextSelectorProp(elem, data,arr) {\r\n return new TextSelectorProp(elem, data, arr);\r\n }\r\n\r\n return {\r\n getTextSelectorProp: getTextSelectorProp\r\n };\r\n}());\r\n\r\n \r\nvar pool_factory = (function() {\r\n\treturn function(initialLength, _create, _release, _clone) {\r\n\r\n\t\tvar _length = 0;\r\n\t\tvar _maxLength = initialLength;\r\n\t\tvar pool = createSizedArray(_maxLength);\r\n\r\n\t\tvar ob = {\r\n\t\t\tnewElement: newElement,\r\n\t\t\trelease: release\r\n\t\t};\r\n\r\n\t\tfunction newElement(){\r\n\t\t\tvar element;\r\n\t\t\tif(_length){\r\n\t\t\t\t_length -= 1;\r\n\t\t\t\telement = pool[_length];\r\n\t\t\t} else {\r\n\t\t\t\telement = _create();\r\n\t\t\t}\r\n\t\t\treturn element;\r\n\t\t}\r\n\r\n\t\tfunction release(element) {\r\n\t\t\tif(_length === _maxLength) {\r\n\t\t\t\tpool = pooling.double(pool);\r\n\t\t\t\t_maxLength = _maxLength*2;\r\n\t\t\t}\r\n\t\t\tif (_release) {\r\n\t\t\t\t_release(element);\r\n\t\t\t}\r\n\t\t\tpool[_length] = element;\r\n\t\t\t_length += 1;\r\n\t\t}\r\n\r\n\t\tfunction clone() {\r\n\t\t\tvar clonedElement = newElement();\r\n\t\t\treturn _clone(clonedElement);\r\n\t\t}\r\n\r\n\t\treturn ob;\r\n\t};\r\n}());\r\n\r\nvar pooling = (function(){\r\n\r\n\tfunction double(arr){\r\n\t\treturn arr.concat(createSizedArray(arr.length));\r\n\t}\r\n\r\n\treturn {\r\n\t\tdouble: double\r\n\t};\r\n}());\r\nvar point_pool = (function(){\r\n\r\n\tfunction create() {\r\n\t\treturn createTypedArray('float32', 2);\r\n\t}\r\n\treturn pool_factory(8, create);\r\n}());\r\nvar shape_pool = (function(){\r\n\r\n\tfunction create() {\r\n\t\treturn new ShapePath();\r\n\t}\r\n\r\n\tfunction release(shapePath) {\r\n\t\tvar len = shapePath._length, i;\r\n\t\tfor(i = 0; i < len; i += 1) {\r\n\t\t\tpoint_pool.release(shapePath.v[i]);\r\n\t\t\tpoint_pool.release(shapePath.i[i]);\r\n\t\t\tpoint_pool.release(shapePath.o[i]);\r\n\t\t\tshapePath.v[i] = null;\r\n\t\t\tshapePath.i[i] = null;\r\n\t\t\tshapePath.o[i] = null;\r\n\t\t}\r\n\t\tshapePath._length = 0;\r\n\t\tshapePath.c = false;\r\n\t}\r\n\r\n\tfunction clone(shape) {\r\n\t\tvar cloned = factory.newElement();\r\n\t\tvar i, len = shape._length === undefined ? shape.v.length : shape._length;\r\n\t\tcloned.setLength(len);\r\n\t\tcloned.c = shape.c;\r\n\t\tvar pt;\r\n\t\t\r\n\t\tfor(i = 0; i < len; i += 1) {\r\n\t\t\tcloned.setTripleAt(shape.v[i][0],shape.v[i][1],shape.o[i][0],shape.o[i][1],shape.i[i][0],shape.i[i][1], i);\r\n\t\t}\r\n\t\treturn cloned;\r\n\t}\r\n\r\n\tvar factory = pool_factory(4, create, release);\r\n\tfactory.clone = clone;\r\n\r\n\treturn factory;\r\n}());\r\nvar shapeCollection_pool = (function(){\r\n\tvar ob = {\r\n\t\tnewShapeCollection: newShapeCollection,\r\n\t\trelease: release\r\n\t};\r\n\r\n\tvar _length = 0;\r\n\tvar _maxLength = 4;\r\n\tvar pool = createSizedArray(_maxLength);\r\n\r\n\tfunction newShapeCollection(){\r\n\t\tvar shapeCollection;\r\n\t\tif(_length){\r\n\t\t\t_length -= 1;\r\n\t\t\tshapeCollection = pool[_length];\r\n\t\t} else {\r\n\t\t\tshapeCollection = new ShapeCollection();\r\n\t\t}\r\n\t\treturn shapeCollection;\r\n\t}\r\n\r\n\tfunction release(shapeCollection) {\r\n\t\tvar i, len = shapeCollection._length;\r\n\t\tfor(i = 0; i < len; i += 1) {\r\n\t\t\tshape_pool.release(shapeCollection.shapes[i]);\r\n\t\t}\r\n\t\tshapeCollection._length = 0;\r\n\r\n\t\tif(_length === _maxLength) {\r\n\t\t\tpool = pooling.double(pool);\r\n\t\t\t_maxLength = _maxLength*2;\r\n\t\t}\r\n\t\tpool[_length] = shapeCollection;\r\n\t\t_length += 1;\r\n\t}\r\n\r\n\treturn ob;\r\n}());\r\nvar segments_length_pool = (function(){\r\n\r\n\tfunction create() {\r\n\t\treturn {\r\n\t\t\tlengths: [],\r\n\t\t\ttotalLength: 0\r\n\t\t};\r\n\t}\r\n\r\n\tfunction release(element) {\r\n\t\tvar i, len = element.lengths.length;\r\n\t\tfor(i=0;i= 0; i--) {\r\n if (!this.elements[i]) {\r\n data = this.layers[i];\r\n if(data.ip - data.st <= (num - this.layers[i].st) && data.op - data.st > (num - this.layers[i].st))\r\n {\r\n this.buildItem(i);\r\n }\r\n }\r\n this.completeLayers = this.elements[i] ? this.completeLayers:false;\r\n }\r\n this.checkPendingElements();\r\n};\r\n\r\nBaseRenderer.prototype.createItem = function(layer){\r\n switch(layer.ty){\r\n case 2:\r\n return this.createImage(layer);\r\n case 0:\r\n return this.createComp(layer);\r\n case 1:\r\n return this.createSolid(layer);\r\n case 3:\r\n return this.createNull(layer);\r\n case 4:\r\n return this.createShape(layer);\r\n case 5:\r\n return this.createText(layer);\r\n case 6:\r\n return this.createAudio(layer);\r\n case 13:\r\n return this.createCamera(layer);\r\n }\r\n return this.createNull(layer);\r\n};\r\n\r\nBaseRenderer.prototype.createCamera = function(){\r\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\r\n};\r\n\r\nBaseRenderer.prototype.createAudio = function(data){\r\n return new AudioElement(data, this.globalData, this);\r\n};\r\n\r\nBaseRenderer.prototype.buildAllItems = function(){\r\n var i, len = this.layers.length;\r\n for(i=0;i= 0; i--) {\r\n if(this.completeLayers || this.elements[i]){\r\n this.elements[i].prepareFrame(num - this.layers[i].st);\r\n }\r\n }\r\n if(this.globalData._mdf) {\r\n for (i = 0; i < len; i += 1) {\r\n if(this.completeLayers || this.elements[i]){\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n }\r\n};\r\n\r\nSVGRenderer.prototype.appendElementInPos = function(element, pos){\r\n var newElement = element.getBaseElement();\r\n if(!newElement){\r\n return;\r\n }\r\n var i = 0;\r\n var nextElement;\r\n while(ielementRel && fillType === 'meet' || animationRelelementRel && fillType === 'slice'))){\r\n this.transformCanvas.tx = (elementWidth-this.transformCanvas.w*(elementHeight/this.transformCanvas.h))/2*this.renderConfig.dpr;\r\n } else if(xPos === 'xMax' && ((animationRelelementRel && fillType === 'slice'))){\r\n this.transformCanvas.tx = (elementWidth-this.transformCanvas.w*(elementHeight/this.transformCanvas.h))*this.renderConfig.dpr;\r\n } else {\r\n this.transformCanvas.tx = 0;\r\n }\r\n if(yPos === 'YMid' && ((animationRel>elementRel && fillType==='meet') || (animationRelelementRel && fillType==='meet') || (animationRel= 0; i-=1) {\r\n if(this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n this.elements.length = 0;\r\n this.globalData.canvasContext = null;\r\n this.animationItem.container = null;\r\n this.destroyed = true;\r\n};\r\n\r\nCanvasRenderer.prototype.renderFrame = function(num, forceRender){\r\n if((this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender) || this.destroyed || num === -1){\r\n return;\r\n }\r\n this.renderedFrame = num;\r\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\r\n this.globalData.frameId += 1;\r\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\r\n this.globalData.projectInterface.currentFrame = num;\r\n\r\n // console.log('--------');\r\n // console.log('NEW: ',num);\r\n var i, len = this.layers.length;\r\n if(!this.completeLayers){\r\n this.checkLayers(num);\r\n }\r\n\r\n for (i = 0; i < len; i++) {\r\n if(this.completeLayers || this.elements[i]){\r\n this.elements[i].prepareFrame(num - this.layers[i].st);\r\n }\r\n }\r\n if(this.globalData._mdf) {\r\n if(this.renderConfig.clearCanvas === true){\r\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\r\n }else{\r\n this.save();\r\n }\r\n for (i = len - 1; i >= 0; i-=1) {\r\n if(this.completeLayers || this.elements[i]){\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n if(this.renderConfig.clearCanvas !== true){\r\n this.restore();\r\n }\r\n }\r\n};\r\n\r\nCanvasRenderer.prototype.buildItem = function(pos){\r\n var elements = this.elements;\r\n if(elements[pos] || this.layers[pos].ty == 99){\r\n return;\r\n }\r\n var element = this.createItem(this.layers[pos], this,this.globalData);\r\n elements[pos] = element;\r\n element.initExpressions();\r\n /*if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n }*/\r\n};\r\n\r\nCanvasRenderer.prototype.checkPendingElements = function(){\r\n while(this.pendingElements.length){\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n }\r\n};\r\n\r\nCanvasRenderer.prototype.hide = function(){\r\n this.animationItem.container.style.display = 'none';\r\n};\r\n\r\nCanvasRenderer.prototype.show = function(){\r\n this.animationItem.container.style.display = 'block';\r\n};\r\n\r\nfunction HybridRenderer(animationItem, config){\r\n this.animationItem = animationItem;\r\n this.layers = null;\r\n this.renderedFrame = -1;\r\n this.renderConfig = {\r\n className: (config && config.className) || '',\r\n imagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',\r\n hideOnTransparent: (config && config.hideOnTransparent === false) ? false : true,\r\n filterSize: {\r\n width: config && config.filterSize && config.filterSize.width || '400%',\r\n height: config && config.filterSize && config.filterSize.height || '400%',\r\n x: config && config.filterSize && config.filterSize.x || '-100%',\r\n y: config && config.filterSize && config.filterSize.y || '-100%',\r\n }\r\n };\r\n this.globalData = {\r\n _mdf: false,\r\n frameNum: -1,\r\n renderConfig: this.renderConfig\r\n };\r\n this.pendingElements = [];\r\n this.elements = [];\r\n this.threeDElements = [];\r\n this.destroyed = false;\r\n this.camera = null;\r\n this.supports3d = true;\r\n this.rendererType = 'html';\r\n\r\n}\r\n\r\nextendPrototype([BaseRenderer],HybridRenderer);\r\n\r\nHybridRenderer.prototype.buildItem = SVGRenderer.prototype.buildItem;\r\n\r\nHybridRenderer.prototype.checkPendingElements = function(){\r\n while(this.pendingElements.length){\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n }\r\n};\r\n\r\nHybridRenderer.prototype.appendElementInPos = function(element, pos){\r\n var newDOMElement = element.getBaseElement();\r\n if(!newDOMElement){\r\n return;\r\n }\r\n var layer = this.layers[pos];\r\n if(!layer.ddd || !this.supports3d){\r\n if(this.threeDElements) {\r\n this.addTo3dContainer(newDOMElement,pos);\r\n } else {\r\n var i = 0;\r\n var nextDOMElement, nextLayer, tmpDOMElement;\r\n while(i= pos) {\r\n return this.threeDElements[i].perspectiveElem;\r\n }\r\n i += 1;\r\n }\r\n};\r\n\r\nHybridRenderer.prototype.createThreeDContainer = function(pos, type){\r\n var perspectiveElem = createTag('div');\r\n styleDiv(perspectiveElem);\r\n var container = createTag('div');\r\n styleDiv(container);\r\n if(type === '3d') {\r\n perspectiveElem.style.width = this.globalData.compSize.w+'px';\r\n perspectiveElem.style.height = this.globalData.compSize.h+'px';\r\n perspectiveElem.style.transformOrigin = perspectiveElem.style.mozTransformOrigin = perspectiveElem.style.webkitTransformOrigin = \"50% 50%\";\r\n container.style.transform = container.style.webkitTransform = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\r\n }\r\n \r\n perspectiveElem.appendChild(container);\r\n //this.resizerElem.appendChild(perspectiveElem);\r\n var threeDContainerData = {\r\n container:container,\r\n perspectiveElem:perspectiveElem,\r\n startPos: pos,\r\n endPos: pos,\r\n type: type\r\n };\r\n this.threeDElements.push(threeDContainerData);\r\n return threeDContainerData;\r\n};\r\n\r\nHybridRenderer.prototype.build3dContainers = function(){\r\n var i, len = this.layers.length;\r\n var lastThreeDContainerData;\r\n var currentContainer = '';\r\n for(i=0;i= 0; i --) {\r\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\r\n }\r\n};\r\n\r\nHybridRenderer.prototype.addTo3dContainer = function(elem,pos){\r\n var i = 0, len = this.threeDElements.length;\r\n while(ielementRel){\r\n sx = elementWidth/(this.globalData.compSize.w);\r\n sy = elementWidth/(this.globalData.compSize.w);\r\n tx = 0;\r\n ty = ((elementHeight-this.globalData.compSize.h*(elementWidth/this.globalData.compSize.w))/2);\r\n }else{\r\n sx = elementHeight/(this.globalData.compSize.h);\r\n sy = elementHeight/(this.globalData.compSize.h);\r\n tx = (elementWidth-this.globalData.compSize.w*(elementHeight/this.globalData.compSize.h))/2;\r\n ty = 0;\r\n }\r\n this.resizerElem.style.transform = this.resizerElem.style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,'+sy+',0,0,0,0,1,0,'+tx+','+ty+',0,1)';\r\n};\r\n\r\nHybridRenderer.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\r\n\r\nHybridRenderer.prototype.hide = function(){\r\n this.resizerElem.style.display = 'none';\r\n};\r\n\r\nHybridRenderer.prototype.show = function(){\r\n this.resizerElem.style.display = 'block';\r\n};\r\n\r\nHybridRenderer.prototype.initItems = function(){\r\n this.buildAllItems();\r\n if(this.camera){\r\n this.camera.setup();\r\n } else {\r\n var cWidth = this.globalData.compSize.w;\r\n var cHeight = this.globalData.compSize.h;\r\n var i, len = this.threeDElements.length;\r\n for(i=0;i 0){\r\n this.maskElement.setAttribute('id', layerId);\r\n this.element.maskedElement.setAttribute(maskRef, \"url(\" + locationHref + \"#\" + layerId + \")\");\r\n defs.appendChild(this.maskElement);\r\n }\r\n if (this.viewData.length) {\r\n this.element.addRenderableComponent(this);\r\n }\r\n\r\n}\r\n\r\nMaskElement.prototype.getMaskProperty = function(pos){\r\n return this.viewData[pos].prop;\r\n};\r\n\r\nMaskElement.prototype.renderFrame = function (isFirstFrame) {\r\n var finalMat = this.element.finalTransform.mat;\r\n var i, len = this.masksProperties.length;\r\n for (i = 0; i < len; i++) {\r\n if(this.viewData[i].prop._mdf || isFirstFrame){\r\n this.drawPath(this.masksProperties[i],this.viewData[i].prop.v,this.viewData[i]);\r\n }\r\n if(this.viewData[i].op._mdf || isFirstFrame){\r\n this.viewData[i].elem.setAttribute('fill-opacity',this.viewData[i].op.v);\r\n }\r\n if(this.masksProperties[i].mode !== 'n'){\r\n if(this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)){\r\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS())\r\n }\r\n if(this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)){\r\n var feMorph = this.storedData[i].expan;\r\n if(this.storedData[i].x.v < 0){\r\n if(this.storedData[i].lastOperator !== 'erode'){\r\n this.storedData[i].lastOperator = 'erode';\r\n this.storedData[i].elem.setAttribute('filter','url(' + locationHref + '#'+this.storedData[i].filterId+')');\r\n }\r\n feMorph.setAttribute('radius',-this.storedData[i].x.v);\r\n }else{\r\n if(this.storedData[i].lastOperator !== 'dilate'){\r\n this.storedData[i].lastOperator = 'dilate';\r\n this.storedData[i].elem.setAttribute('filter',null);\r\n }\r\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v*2);\r\n\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nMaskElement.prototype.getMaskelement = function () {\r\n return this.maskElement;\r\n};\r\n\r\nMaskElement.prototype.createLayerSolidPath = function(){\r\n var path = 'M0,0 ';\r\n path += ' h' + this.globalData.compSize.w ;\r\n path += ' v' + this.globalData.compSize.h ;\r\n path += ' h-' + this.globalData.compSize.w ;\r\n path += ' v-' + this.globalData.compSize.h + ' ';\r\n return path;\r\n};\r\n\r\nMaskElement.prototype.drawPath = function(pathData,pathNodes,viewData){\r\n var pathString = \" M\"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\r\n var i, len;\r\n len = pathNodes._length;\r\n for(i=1;i 1){\r\n pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\r\n }\r\n //pathNodes.__renderedString = pathString;\r\n\r\n if(viewData.lastPath !== pathString){\r\n var pathShapeValue = '';\r\n if(viewData.elem){\r\n if(pathNodes.c){\r\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\r\n }\r\n viewData.elem.setAttribute('d',pathShapeValue);\r\n }\r\n viewData.lastPath = pathString;\r\n }\r\n};\r\n\r\nMaskElement.prototype.destroy = function(){\r\n this.element = null;\r\n this.globalData = null;\r\n this.maskElement = null;\r\n this.data = null;\r\n this.masksProperties = null;\r\n};\r\n\r\n/**\r\n * @file \r\n * Handles AE's layer parenting property.\r\n *\r\n */\r\n\r\nfunction HierarchyElement(){}\r\n\r\nHierarchyElement.prototype = {\r\n\t/**\r\n * @function \r\n * Initializes hierarchy properties\r\n *\r\n */\r\n\tinitHierarchy: function() {\r\n\t\t//element's parent list\r\n\t this.hierarchy = [];\r\n\t //if element is parent of another layer _isParent will be true\r\n\t this._isParent = false;\r\n\t this.checkParenting();\r\n\t},\r\n\t/**\r\n * @function \r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */ \r\n\tsetHierarchy: function(hierarchy){\r\n\t this.hierarchy = hierarchy;\r\n\t},\r\n\t/**\r\n * @function \r\n * Sets layer as parent.\r\n *\r\n */ \r\n\tsetAsParent: function() {\r\n\t this._isParent = true;\r\n\t},\r\n\t/**\r\n * @function \r\n * Searches layer's parenting chain\r\n *\r\n */ \r\n\tcheckParenting: function(){\r\n\t if (this.data.parent !== undefined){\r\n\t this.comp.buildElementParenting(this, this.data.parent, []);\r\n\t }\r\n\t}\r\n};\r\n/**\r\n * @file \r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\r\n\r\nfunction FrameElement(){}\r\n\r\nFrameElement.prototype = {\r\n /**\r\n * @function \r\n * Initializes frame related properties.\r\n *\r\n */\r\n initFrame: function(){\r\n //set to true when inpoint is rendered\r\n this._isFirstFrame = false;\r\n //list of animated properties\r\n this.dynamicProperties = [];\r\n // If layer has been modified in current tick this will be true\r\n this._mdf = false;\r\n },\r\n /**\r\n * @function \r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n * \r\n */\r\n prepareProperties: function(num, isVisible) {\r\n var i, len = this.dynamicProperties.length;\r\n for (i = 0;i < len; i += 1) {\r\n if (isVisible || (this._isParent && this.dynamicProperties[i].propType === 'transform')) {\r\n this.dynamicProperties[i].getValue();\r\n if (this.dynamicProperties[i]._mdf) {\r\n this.globalData._mdf = true;\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n },\r\n addDynamicProperty: function(prop) {\r\n if(this.dynamicProperties.indexOf(prop) === -1) {\r\n this.dynamicProperties.push(prop);\r\n }\r\n }\r\n};\r\nfunction TransformElement(){}\r\n\r\nTransformElement.prototype = {\r\n initTransform: function() {\r\n this.finalTransform = {\r\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {o:0},\r\n _matMdf: false,\r\n _opMdf: false,\r\n mat: new Matrix()\r\n };\r\n if (this.data.ao) {\r\n this.finalTransform.mProp.autoOriented = true;\r\n }\r\n\r\n //TODO: check TYPE 11: Guided elements\r\n if (this.data.ty !== 11) {\r\n //this.createElements();\r\n }\r\n },\r\n renderTransform: function() {\r\n\r\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\r\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\r\n\r\n if (this.hierarchy) {\r\n var mat;\r\n var finalMat = this.finalTransform.mat;\r\n var i = 0, len = this.hierarchy.length;\r\n //Checking if any of the transformation matrices in the hierarchy chain has changed.\r\n if (!this.finalTransform._matMdf) {\r\n while (i < len) {\r\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\r\n this.finalTransform._matMdf = true;\r\n break;\r\n }\r\n i += 1;\r\n }\r\n }\r\n \r\n if (this.finalTransform._matMdf) {\r\n mat = this.finalTransform.mProp.v.props;\r\n finalMat.cloneFromProps(mat);\r\n for (i = 0; i < len; i += 1) {\r\n mat = this.hierarchy[i].finalTransform.mProp.v.props;\r\n finalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);\r\n }\r\n }\r\n }\r\n },\r\n globalToLocal: function(pt) {\r\n var transforms = [];\r\n transforms.push(this.finalTransform);\r\n var flag = true;\r\n var comp = this.comp;\r\n while (flag) {\r\n if (comp.finalTransform) {\r\n if (comp.data.hasMask) {\r\n transforms.splice(0, 0, comp.finalTransform);\r\n }\r\n comp = comp.comp;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n var i, len = transforms.length,ptNew;\r\n for (i = 0; i < len; i += 1) {\r\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0);\r\n //ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\r\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\r\n }\r\n return pt;\r\n },\r\n mHelper: new Matrix()\r\n};\r\nfunction RenderableElement(){\r\n\r\n}\r\n\r\nRenderableElement.prototype = {\r\n initRenderable: function() {\r\n //layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\r\n this.isInRange = false;\r\n //layer's display state\r\n this.hidden = false;\r\n // If layer's transparency equals 0, it can be hidden\r\n this.isTransparent = false;\r\n //list of animated components\r\n this.renderableComponents = [];\r\n },\r\n addRenderableComponent: function(component) {\r\n if(this.renderableComponents.indexOf(component) === -1) {\r\n this.renderableComponents.push(component);\r\n }\r\n },\r\n removeRenderableComponent: function(component) {\r\n if(this.renderableComponents.indexOf(component) !== -1) {\r\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\r\n }\r\n },\r\n prepareRenderableFrame: function(num) {\r\n this.checkLayerLimits(num);\r\n },\r\n checkTransparency: function(){\r\n if(this.finalTransform.mProp.o.v <= 0) {\r\n if(!this.isTransparent && this.globalData.renderConfig.hideOnTransparent){\r\n this.isTransparent = true;\r\n this.hide();\r\n }\r\n } else if(this.isTransparent) {\r\n this.isTransparent = false;\r\n this.show();\r\n }\r\n },\r\n /**\r\n * @function \r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * \r\n */\r\n checkLayerLimits: function(num) {\r\n if(this.data.ip - this.data.st <= num && this.data.op - this.data.st > num)\r\n {\r\n if(this.isInRange !== true){\r\n this.globalData._mdf = true;\r\n this._mdf = true;\r\n this.isInRange = true;\r\n this.show();\r\n }\r\n } else {\r\n if(this.isInRange !== false){\r\n this.globalData._mdf = true;\r\n this.isInRange = false;\r\n this.hide();\r\n }\r\n }\r\n },\r\n renderRenderable: function() {\r\n var i, len = this.renderableComponents.length;\r\n for(i = 0; i < len; i += 1) {\r\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\r\n }\r\n /*this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame);*/\r\n },\r\n sourceRectAtTime: function(){\r\n return {\r\n top:0,\r\n left:0,\r\n width:100,\r\n height:100\r\n };\r\n },\r\n getLayerSize: function(){\r\n if(this.data.ty === 5){\r\n return {w:this.data.textData.width,h:this.data.textData.height};\r\n }else{\r\n return {w:this.data.width,h:this.data.height};\r\n }\r\n }\r\n};\r\nfunction RenderableDOMElement() {}\r\n\r\n(function(){\r\n var _prototype = {\r\n initElement: function(data,globalData,comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n this.initRenderable();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n this.createContent();\r\n this.hide();\r\n },\r\n hide: function(){\r\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style.display = 'none';\r\n this.hidden = true;\r\n }\r\n },\r\n show: function(){\r\n if (this.isInRange && !this.isTransparent){\r\n if (!this.data.hd) {\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style.display = 'block';\r\n }\r\n this.hidden = false;\r\n this._isFirstFrame = true;\r\n }\r\n },\r\n renderFrame: function() {\r\n //If it is exported as hidden (data.hd === true) no need to render\r\n //If it is not visible no need to render\r\n if (this.data.hd || this.hidden) {\r\n return;\r\n }\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.renderElement();\r\n this.renderInnerContent();\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n renderInnerContent: function() {},\r\n prepareFrame: function(num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n this.checkTransparency();\r\n },\r\n destroy: function(){\r\n this.innerElem = null;\r\n this.destroyBaseElement();\r\n }\r\n };\r\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\r\n}());\r\nfunction ProcessedElement(element, position) {\r\n\tthis.elem = element;\r\n\tthis.pos = position;\r\n}\r\nfunction SVGStyleData(data, level) {\r\n\tthis.data = data;\r\n\tthis.type = data.ty;\r\n\tthis.d = '';\r\n\tthis.lvl = level;\r\n\tthis._mdf = false;\r\n\tthis.closed = data.hd === true;\r\n\tthis.pElem = createNS('path');\r\n\tthis.msElem = null;\r\n}\r\n\r\nSVGStyleData.prototype.reset = function() {\r\n\tthis.d = '';\r\n\tthis._mdf = false;\r\n};\r\nfunction SVGShapeData(transformers, level, shape) {\r\n this.caches = [];\r\n this.styles = [];\r\n this.transformers = transformers;\r\n this.lStr = '';\r\n this.sh = shape;\r\n this.lvl = level;\r\n //TODO find if there are some cases where _isAnimated can be false. \r\n // For now, since shapes add up with other shapes. They have to be calculated every time.\r\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\r\n this._isAnimated = !!shape.k;\r\n // TODO: commenting this for now since all shapes are animated\r\n var i = 0, len = transformers.length;\r\n while(i < len) {\r\n \tif(transformers[i].mProps.dynamicProperties.length) {\r\n \t\tthis._isAnimated = true;\r\n \t\tbreak;\r\n \t}\r\n \ti += 1;\r\n }\r\n}\r\n\r\nSVGShapeData.prototype.setAsAnimated = function() {\r\n this._isAnimated = true;\r\n}\r\nfunction SVGTransformData(mProps, op, container) {\r\n\tthis.transform = {\r\n\t\tmProps: mProps,\r\n\t\top: op,\r\n\t\tcontainer: container\r\n\t};\r\n\tthis.elements = [];\r\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\r\n}\r\nfunction SVGStrokeStyleData(elem, data, styleOb){\r\n\tthis.initDynamicPropertyContainer(elem);\r\n\tthis.getValue = this.iterateDynamicProperties;\r\n\tthis.o = PropertyFactory.getProp(elem,data.o,0,0.01,this);\r\n\tthis.w = PropertyFactory.getProp(elem,data.w,0,null,this);\r\n\tthis.d = new DashProperty(elem,data.d||{},'svg',this);\r\n\tthis.c = PropertyFactory.getProp(elem,data.c,1,255,this);\r\n\tthis.style = styleOb;\r\n this._isAnimated = !!this._isAnimated;\r\n}\r\n\r\nextendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\r\nfunction SVGFillStyleData(elem, data, styleOb){\r\n\tthis.initDynamicPropertyContainer(elem);\r\n\tthis.getValue = this.iterateDynamicProperties;\r\n\tthis.o = PropertyFactory.getProp(elem,data.o,0,0.01,this);\r\n\tthis.c = PropertyFactory.getProp(elem,data.c,1,255,this);\r\n\tthis.style = styleOb;\r\n}\r\n\r\nextendPrototype([DynamicPropertyContainer], SVGFillStyleData);\r\nfunction SVGGradientFillStyleData(elem, data, styleOb){\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.initGradientData(elem, data, styleOb);\r\n}\r\n\r\nSVGGradientFillStyleData.prototype.initGradientData = function(elem, data, styleOb){\r\n this.o = PropertyFactory.getProp(elem,data.o,0,0.01,this);\r\n this.s = PropertyFactory.getProp(elem,data.s,1,null,this);\r\n this.e = PropertyFactory.getProp(elem,data.e,1,null,this);\r\n this.h = PropertyFactory.getProp(elem,data.h||{k:0},0,0.01,this);\r\n this.a = PropertyFactory.getProp(elem,data.a||{k:0},0,degToRads,this);\r\n this.g = new GradientProperty(elem,data.g,this);\r\n this.style = styleOb;\r\n this.stops = [];\r\n this.setGradientData(styleOb.pElem, data);\r\n this.setGradientOpacity(data, styleOb);\r\n this._isAnimated = !!this._isAnimated;\r\n\r\n};\r\n\r\nSVGGradientFillStyleData.prototype.setGradientData = function(pathElement,data){\r\n\r\n var gradientId = createElementID();\r\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\r\n gfill.setAttribute('id',gradientId);\r\n gfill.setAttribute('spreadMethod','pad');\r\n gfill.setAttribute('gradientUnits','userSpaceOnUse');\r\n var stops = [];\r\n var stop, j, jLen;\r\n jLen = data.g.p*4;\r\n for(j=0;j 0) {\r\n\t redraw = itemData.transformers[k].mProps._mdf || redraw;\r\n\t iterations --;\r\n\t k --;\r\n\t }\r\n\t if(redraw) {\r\n\t iterations = lvl - itemData.styles[l].lvl;\r\n\t k = itemData.transformers.length-1;\r\n\t while(iterations > 0) {\r\n\t props = itemData.transformers[k].mProps.v.props;\r\n\t mat.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\r\n\t iterations --;\r\n\t k --;\r\n\t }\r\n\t }\r\n\t } else {\r\n\t mat = _identityMatrix;\r\n\t }\r\n\t paths = itemData.sh.paths;\r\n\t jLen = paths._length;\r\n\t if(redraw){\r\n\t pathStringTransformed = '';\r\n\t for(j=0;j= 1 ? 0.99 : itemData.h.v <= -1 ? -0.99: itemData.h.v;\r\n\t var dist = rad * percent;\r\n\t var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\r\n\t var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\r\n\t gfill.setAttribute('fx', x);\r\n\t gfill.setAttribute('fy', y);\r\n\t if (hasOpacity && !itemData.g._collapsable) {\r\n\t itemData.of.setAttribute('fx', x);\r\n\t itemData.of.setAttribute('fy', y);\r\n\t }\r\n\t }\r\n\t //gfill.setAttribute('fy','200');\r\n\t }\r\n\t};\r\n\r\n\tfunction renderStroke(styleData, itemData, isFirstFrame) {\r\n\t var styleElem = itemData.style;\r\n\t var d = itemData.d;\r\n\t if (d && (d._mdf || isFirstFrame) && d.dashStr) {\r\n\t styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\r\n\t styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\r\n\t }\r\n\t if(itemData.c && (itemData.c._mdf || isFirstFrame)){\r\n\t styleElem.pElem.setAttribute('stroke','rgb(' + bm_floor(itemData.c.v[0]) + ',' + bm_floor(itemData.c.v[1]) + ',' + bm_floor(itemData.c.v[2]) + ')');\r\n\t }\r\n\t if(itemData.o._mdf || isFirstFrame){\r\n\t styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\r\n\t }\r\n\t if(itemData.w._mdf || isFirstFrame){\r\n\t styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\r\n\t if(styleElem.msElem){\r\n\t styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\r\n\t }\r\n\t }\r\n\t};\r\n\r\n\treturn ob;\r\n}())\r\nfunction ShapeTransformManager() {\r\n\tthis.sequences = {};\r\n\tthis.sequenceList = [];\r\n this.transform_key_count = 0;\r\n}\r\n\r\nShapeTransformManager.prototype = {\r\n\taddTransformSequence: function(transforms) {\r\n\t\tvar i, len = transforms.length;\r\n\t\tvar key = '_';\r\n\t\tfor(i = 0; i < len; i += 1) {\r\n\t\t\tkey += transforms[i].transform.key + '_';\r\n\t\t}\r\n\t\tvar sequence = this.sequences[key];\r\n\t\tif(!sequence) {\r\n\t\t\tsequence = {\r\n\t\t\t\ttransforms: [].concat(transforms),\r\n\t\t\t\tfinalTransform: new Matrix(),\r\n\t\t\t\t_mdf: false\r\n\t\t\t};\r\n\t\t\tthis.sequences[key] = sequence;\r\n\t\t\tthis.sequenceList.push(sequence);\r\n\t\t}\r\n\t\treturn sequence;\r\n\t},\r\n\tprocessSequence: function(sequence, isFirstFrame) {\r\n\t\tvar i = 0, len = sequence.transforms.length, _mdf = isFirstFrame;\r\n\t\twhile (i < len && !isFirstFrame) {\r\n\t\t\tif (sequence.transforms[i].transform.mProps._mdf) {\r\n\t\t\t\t_mdf = true;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\ti += 1\r\n\t\t}\r\n\t\tif (_mdf) {\r\n\t\t\tvar props;\r\n\t\t\tsequence.finalTransform.reset();\r\n\t\t\tfor (i = len - 1; i >= 0; i -= 1) {\r\n\t\t props = sequence.transforms[i].transform.mProps.v.props;\r\n\t\t sequence.finalTransform.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\r\n\t\t\t}\r\n\t\t}\r\n\t\tsequence._mdf = _mdf;\r\n\t\t\r\n\t},\r\n\tprocessSequences: function(isFirstFrame) {\r\n\t\tvar i, len = this.sequenceList.length;\r\n\t\tfor (i = 0; i < len; i += 1) {\r\n\t\t\tthis.processSequence(this.sequenceList[i], isFirstFrame);\r\n\t\t}\r\n\r\n\t},\r\n\tgetNewKey: function() {\r\n\t\treturn '_' + this.transform_key_count++;\r\n\t}\r\n}\r\nfunction CVShapeData(element, data, styles, transformsManager) {\r\n this.styledShapes = [];\r\n this.tr = [0,0,0,0,0,0];\r\n var ty = 4;\r\n if(data.ty == 'rc'){\r\n ty = 5;\r\n }else if(data.ty == 'el'){\r\n ty = 6;\r\n }else if(data.ty == 'sr'){\r\n ty = 7;\r\n }\r\n this.sh = ShapePropertyFactory.getShapeProp(element,data,ty,element);\r\n var i , len = styles.length,styledShape;\r\n for (i = 0; i < len; i += 1) {\r\n if (!styles[i].closed) {\r\n styledShape = {\r\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\r\n trNodes: []\r\n }\r\n this.styledShapes.push(styledShape);\r\n styles[i].elements.push(styledShape);\r\n }\r\n }\r\n}\r\n\r\nCVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\r\nfunction BaseElement(){\r\n}\r\n\r\nBaseElement.prototype = {\r\n checkMasks: function(){\r\n if(!this.data.hasMask){\r\n return false;\r\n }\r\n var i = 0, len = this.data.masksProperties.length;\r\n while(i=0;i-=1){\r\n this.shapeModifiers[i].processShapes(this._isFirstFrame);\r\n }\r\n },\r\n lcEnum: {\r\n '1': 'butt',\r\n '2': 'round',\r\n '3': 'square'\r\n },\r\n ljEnum: {\r\n '1': 'miter',\r\n '2': 'round',\r\n '3': 'bevel'\r\n },\r\n searchProcessedElement: function(elem){\r\n var elements = this.processedElements;\r\n var i = 0, len = elements.length;\r\n while (i < len) {\r\n if (elements[i].elem === elem) {\r\n return elements[i].pos;\r\n }\r\n i += 1;\r\n }\r\n return 0;\r\n },\r\n addProcessedElement: function(elem, pos){\r\n var elements = this.processedElements;\r\n var i = elements.length;\r\n while(i) {\r\n i -= 1;\r\n if (elements[i].elem === elem) {\r\n elements[i].pos = pos;\r\n return;\r\n }\r\n }\r\n elements.push(new ProcessedElement(elem, pos));\r\n },\r\n prepareFrame: function(num) {\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n }\r\n};\r\nfunction ITextElement(){\r\n}\r\n\r\nITextElement.prototype.initElement = function(data,globalData,comp){\r\n this.lettersChangedFlag = true;\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\r\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n this.initRenderable();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n this.createContent();\r\n this.hide();\r\n this.textAnimator.searchProperties(this.dynamicProperties);\r\n};\r\n\r\nITextElement.prototype.prepareFrame = function(num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n if(this.textProperty._mdf || this.textProperty._isFirstFrame) {\r\n this.buildNewText();\r\n this.textProperty._isFirstFrame = false;\r\n this.textProperty._mdf = false;\r\n }\r\n};\r\n\r\nITextElement.prototype.createPathShape = function(matrixHelper, shapes) {\r\n var j,jLen = shapes.length;\r\n var k, kLen, pathNodes;\r\n var shapeStr = '';\r\n for(j=0;j= 0; i -= 1 ){\r\n if(this.completeLayers || this.elements[i]){\r\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\r\n if(this.elements[i]._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n};\r\n\r\nICompElement.prototype.renderInnerContent = function() {\r\n var i,len = this.layers.length;\r\n for( i = 0; i < len; i += 1 ){\r\n if(this.completeLayers || this.elements[i]){\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n};\r\n\r\nICompElement.prototype.setElements = function(elems){\r\n this.elements = elems;\r\n};\r\n\r\nICompElement.prototype.getElements = function(){\r\n return this.elements;\r\n};\r\n\r\nICompElement.prototype.destroyElements = function(){\r\n var i,len = this.layers.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].destroy();\r\n }\r\n }\r\n};\r\n\r\nICompElement.prototype.destroy = function(){\r\n this.destroyElements();\r\n this.destroyBaseElement();\r\n};\r\n\r\nfunction IImageElement(data,globalData,comp){\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initElement(data,globalData,comp);\r\n this.sourceRect = {top:0,left:0,width:this.assetData.w,height:this.assetData.h};\r\n}\r\n\r\nextendPrototype([BaseElement,TransformElement,SVGBaseElement,HierarchyElement,FrameElement,RenderableDOMElement], IImageElement);\r\n\r\nIImageElement.prototype.createContent = function(){\r\n\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n\r\n this.innerElem = createNS('image');\r\n this.innerElem.setAttribute('width',this.assetData.w+\"px\");\r\n this.innerElem.setAttribute('height',this.assetData.h+\"px\");\r\n this.innerElem.setAttribute('preserveAspectRatio',this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\r\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink','href',assetPath);\r\n \r\n this.layerElement.appendChild(this.innerElem);\r\n};\r\n\r\nIImageElement.prototype.sourceRectAtTime = function() {\r\n\treturn this.sourceRect;\r\n}\r\nfunction ISolidElement(data,globalData,comp){\r\n this.initElement(data,globalData,comp);\r\n}\r\nextendPrototype([IImageElement], ISolidElement);\r\n\r\nISolidElement.prototype.createContent = function(){\r\n\r\n var rect = createNS('rect');\r\n ////rect.style.width = this.data.sw;\r\n ////rect.style.height = this.data.sh;\r\n ////rect.style.fill = this.data.sc;\r\n rect.setAttribute('width',this.data.sw);\r\n rect.setAttribute('height',this.data.sh);\r\n rect.setAttribute('fill',this.data.sc);\r\n this.layerElement.appendChild(rect);\r\n};\r\nfunction AudioElement(data,globalData,comp){\r\n this.initFrame();\r\n this.initRenderable();\r\n this.assetData = globalData.getAssetData(data.refId);\r\n\tthis.initBaseData(data, globalData, comp);\r\n\tthis._isPlaying = false;\r\n\tthis._canPlay = false;\r\n\tvar assetPath = this.globalData.getAssetsPath(this.assetData);\r\n this.audio = this.globalData.audioController.createAudio(assetPath);\r\n this._currentTime = 0;\r\n this.globalData.audioController.addAudio(this);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate,this) : {_placeholder:true};\r\n}\r\n\r\nAudioElement.prototype.prepareFrame = function(num) {\r\n this.prepareRenderableFrame(num, true);\r\n this.prepareProperties(num, true);\r\n if (!this.tm._placeholder) {\r\n var timeRemapped = this.tm.v;\r\n this._currentTime = timeRemapped;\r\n } else {\r\n this._currentTime = num / this.data.sr;\r\n }\r\n};\r\n\r\nextendPrototype([RenderableElement,BaseElement,FrameElement], AudioElement);\r\n\r\nAudioElement.prototype.renderFrame = function() {\r\n\tif (this.isInRange && this._canPlay) {\r\n\t\tif (!this._isPlaying) {\r\n\t\t\tthis.audio.play();\r\n\t\t\tthis.audio.seek(this._currentTime / this.globalData.frameRate);\r\n\t\t\tthis._isPlaying = true;\r\n\t\t} else if (!this.audio.playing()\r\n\t\t\t|| Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1\r\n\t\t) {\r\n\t\t\tthis.audio.seek(this._currentTime / this.globalData.frameRate)\r\n\t\t}\r\n\t}\r\n};\r\n\r\nAudioElement.prototype.show = function() {\r\n\t// this.audio.play()\r\n};\r\n\r\nAudioElement.prototype.hide = function() {\r\n\tthis.audio.pause();\r\n\tthis._isPlaying = false;\r\n};\r\n\r\nAudioElement.prototype.pause = function() {\r\n\tthis.audio.pause();\r\n\tthis._isPlaying = false;\r\n\tthis._canPlay = false;\r\n};\r\n\r\nAudioElement.prototype.resume = function() {\r\n\tthis._canPlay = true;\r\n};\r\n\r\nAudioElement.prototype.setRate = function(rateValue) {\r\n\tthis.audio.rate(rateValue);\r\n};\r\n\r\nAudioElement.prototype.volume = function(volumeValue) {\r\n\tthis.audio.volume(volumeValue);\r\n};\r\n\r\nAudioElement.prototype.getBaseElement = function() {\r\n\treturn null;\r\n};\r\n\r\nAudioElement.prototype.destroy = function() {\r\n};\r\n\r\nAudioElement.prototype.sourceRectAtTime = function() {\r\n};\r\n\r\nAudioElement.prototype.initExpressions = function() {\r\n};\r\n\r\n\r\nfunction SVGCompElement(data,globalData,comp){\r\n this.layers = data.layers;\r\n this.supports3d = true;\r\n this.completeLayers = false;\r\n this.pendingElements = [];\r\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\r\n //this.layerElement = createNS('g');\r\n this.initElement(data,globalData,comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this,data.tm,0,globalData.frameRate,this) : {_placeholder:true};\r\n}\r\n\r\nextendPrototype([SVGRenderer, ICompElement, SVGBaseElement], SVGCompElement);\r\nfunction SVGTextElement(data,globalData,comp){\r\n this.textSpans = [];\r\n this.renderType = 'svg';\r\n this.initElement(data,globalData,comp);\r\n}\r\n\r\nextendPrototype([BaseElement,TransformElement,SVGBaseElement,HierarchyElement,FrameElement,RenderableDOMElement,ITextElement], SVGTextElement);\r\n\r\nSVGTextElement.prototype.createContent = function(){\r\n\r\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\r\n this.textContainer = createNS('text');\r\n }\r\n};\r\n\r\nSVGTextElement.prototype.buildTextContents = function(textArray) {\r\n var i = 0, len = textArray.length;\r\n var textContents = [], currentTextContent = '';\r\n while (i < len) {\r\n if(textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\r\n textContents.push(currentTextContent);\r\n currentTextContent = '';\r\n } else {\r\n currentTextContent += textArray[i];\r\n }\r\n i += 1;\r\n }\r\n textContents.push(currentTextContent);\r\n return textContents;\r\n}\r\n\r\nSVGTextElement.prototype.buildNewText = function(){\r\n var i, len;\r\n\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\r\n if(documentData.fc) {\r\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\r\n }else{\r\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\r\n }\r\n if(documentData.sc){\r\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\r\n this.layerElement.setAttribute('stroke-width', documentData.sw);\r\n }\r\n this.layerElement.setAttribute('font-size', documentData.finalSize);\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n if(fontData.fClass){\r\n this.layerElement.setAttribute('class',fontData.fClass);\r\n } else {\r\n this.layerElement.setAttribute('font-family', fontData.fFamily);\r\n var fWeight = documentData.fWeight, fStyle = documentData.fStyle;\r\n this.layerElement.setAttribute('font-style', fStyle);\r\n this.layerElement.setAttribute('font-weight', fWeight);\r\n }\r\n this.layerElement.setAttribute('aria-label', documentData.t);\r\n\r\n var letters = documentData.l || [];\r\n var usesGlyphs = !!this.globalData.fontManager.chars;\r\n len = letters.length;\r\n\r\n var tSpan;\r\n var matrixHelper = this.mHelper;\r\n var shapes, shapeStr = '', singleShape = this.data.singleShape;\r\n var xPos = 0, yPos = 0, firstLine = true;\r\n var trackingOffset = documentData.tr/1000*documentData.finalSize;\r\n if(singleShape && !usesGlyphs && !documentData.sz) {\r\n var tElement = this.textContainer;\r\n var justify = 'start';\r\n switch(documentData.j) {\r\n case 1:\r\n justify = 'end';\r\n break;\r\n case 2:\r\n justify = 'middle';\r\n break;\r\n }\r\n tElement.setAttribute('text-anchor',justify);\r\n tElement.setAttribute('letter-spacing',trackingOffset);\r\n var textContent = this.buildTextContents(documentData.finalText);\r\n len = textContent.length;\r\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\r\n for ( i = 0; i < len; i += 1) {\r\n tSpan = this.textSpans[i] || createNS('tspan');\r\n tSpan.textContent = textContent[i];\r\n tSpan.setAttribute('x', 0);\r\n tSpan.setAttribute('y', yPos);\r\n tSpan.style.display = 'inherit';\r\n tElement.appendChild(tSpan);\r\n this.textSpans[i] = tSpan;\r\n yPos += documentData.finalLineHeight;\r\n }\r\n \r\n this.layerElement.appendChild(tElement);\r\n } else {\r\n var cachedSpansLength = this.textSpans.length;\r\n var shapeData, charData;\r\n for (i = 0; i < len; i += 1) {\r\n if(!usesGlyphs || !singleShape || i === 0){\r\n tSpan = cachedSpansLength > i ? this.textSpans[i] : createNS(usesGlyphs?'path':'text');\r\n if (cachedSpansLength <= i) {\r\n tSpan.setAttribute('stroke-linecap', 'butt');\r\n tSpan.setAttribute('stroke-linejoin','round');\r\n tSpan.setAttribute('stroke-miterlimit','4');\r\n this.textSpans[i] = tSpan;\r\n this.layerElement.appendChild(tSpan);\r\n }\r\n tSpan.style.display = 'inherit';\r\n }\r\n \r\n matrixHelper.reset();\r\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\r\n if (singleShape) {\r\n if(letters[i].n) {\r\n xPos = -trackingOffset;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n firstLine = false;\r\n }\r\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\r\n xPos += letters[i].l || 0;\r\n //xPos += letters[i].val === ' ' ? 0 : trackingOffset;\r\n xPos += trackingOffset;\r\n }\r\n if(usesGlyphs) {\r\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n shapeData = charData && charData.data || {};\r\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\r\n if(!singleShape){\r\n tSpan.setAttribute('d',this.createPathShape(matrixHelper,shapes));\r\n } else {\r\n shapeStr += this.createPathShape(matrixHelper,shapes);\r\n }\r\n } else {\r\n if(singleShape) {\r\n tSpan.setAttribute(\"transform\", \"translate(\" + matrixHelper.props[12] + \",\" + matrixHelper.props[13] + \")\");\r\n }\r\n tSpan.textContent = letters[i].val;\r\n tSpan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\",\"preserve\");\r\n }\r\n //\r\n }\r\n if (singleShape && tSpan) {\r\n tSpan.setAttribute('d',shapeStr);\r\n }\r\n }\r\n while (i < this.textSpans.length){\r\n this.textSpans[i].style.display = 'none';\r\n i += 1;\r\n }\r\n \r\n this._sizeChanged = true;\r\n};\r\n\r\nSVGTextElement.prototype.sourceRectAtTime = function(time){\r\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\r\n this.renderInnerContent();\r\n if(this._sizeChanged){\r\n this._sizeChanged = false;\r\n var textBox = this.layerElement.getBBox();\r\n this.bbox = {\r\n top: textBox.y,\r\n left: textBox.x,\r\n width: textBox.width,\r\n height: textBox.height\r\n };\r\n }\r\n return this.bbox;\r\n};\r\n\r\nSVGTextElement.prototype.renderInnerContent = function(){\r\n\r\n if(!this.data.singleShape){\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n if(this.lettersChangedFlag || this.textAnimator.lettersChangedFlag){\r\n this._sizeChanged = true;\r\n var i,len;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n\r\n var letters = this.textProperty.currentData.l;\r\n\r\n len = letters.length;\r\n var renderedLetter, textSpan;\r\n for(i=0;i 1 && areAnimated) {\r\n this.setShapesAsAnimated(tempShapes);\r\n }\r\n }\r\n}\r\n\r\nSVGShapeElement.prototype.setShapesAsAnimated = function(shapes){\r\n var i, len = shapes.length;\r\n for(i = 0; i < len; i += 1) {\r\n shapes[i].setAsAnimated();\r\n }\r\n}\r\n\r\nSVGShapeElement.prototype.createStyleElement = function(data, level){\r\n //TODO: prevent drawing of hidden styles\r\n var elementData;\r\n var styleOb = new SVGStyleData(data, level);\r\n\r\n var pathElement = styleOb.pElem;\r\n if(data.ty === 'st') {\r\n elementData = new SVGStrokeStyleData(this, data, styleOb);\r\n } else if(data.ty === 'fl') {\r\n elementData = new SVGFillStyleData(this, data, styleOb);\r\n } else if(data.ty === 'gf' || data.ty === 'gs') {\r\n var gradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\r\n elementData = new gradientConstructor(this, data, styleOb);\r\n this.globalData.defs.appendChild(elementData.gf);\r\n if (elementData.maskId) {\r\n this.globalData.defs.appendChild(elementData.ms);\r\n this.globalData.defs.appendChild(elementData.of);\r\n pathElement.setAttribute('mask','url(' + locationHref + '#' + elementData.maskId + ')');\r\n }\r\n }\r\n \r\n if(data.ty === 'st' || data.ty === 'gs') {\r\n pathElement.setAttribute('stroke-linecap', this.lcEnum[data.lc] || 'round');\r\n pathElement.setAttribute('stroke-linejoin',this.ljEnum[data.lj] || 'round');\r\n pathElement.setAttribute('fill-opacity','0');\r\n if(data.lj === 1) {\r\n pathElement.setAttribute('stroke-miterlimit',data.ml);\r\n }\r\n }\r\n\r\n if(data.r === 2) {\r\n pathElement.setAttribute('fill-rule', 'evenodd');\r\n }\r\n\r\n if(data.ln){\r\n pathElement.setAttribute('id',data.ln);\r\n }\r\n if(data.cl){\r\n pathElement.setAttribute('class',data.cl);\r\n }\r\n if(data.bm){\r\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\r\n }\r\n this.stylesList.push(styleOb);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.createGroupElement = function(data) {\r\n var elementData = new ShapeGroupData();\r\n if(data.ln){\r\n elementData.gr.setAttribute('id',data.ln);\r\n }\r\n if(data.cl){\r\n elementData.gr.setAttribute('class',data.cl);\r\n }\r\n if(data.bm){\r\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\r\n }\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.createTransformElement = function(data, container) {\r\n var transformProperty = TransformPropertyFactory.getTransformProperty(this,data,this);\r\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.createShapeElement = function(data, ownTransformers, level) {\r\n var ty = 4;\r\n if(data.ty === 'rc'){\r\n ty = 5;\r\n }else if(data.ty === 'el'){\r\n ty = 6;\r\n }else if(data.ty === 'sr'){\r\n ty = 7;\r\n }\r\n var shapeProperty = ShapePropertyFactory.getShapeProp(this,data,ty,this);\r\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\r\n this.shapes.push(elementData);\r\n this.addShapeToModifiers(elementData);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.addToAnimatedContents = function(data, element) {\r\n var i = 0, len = this.animatedContents.length;\r\n while(i < len) {\r\n if(this.animatedContents[i].element === element) {\r\n return;\r\n }\r\n i += 1;\r\n }\r\n this.animatedContents.push({\r\n fn: SVGElementsRenderer.createRenderFunction(data),\r\n element: element,\r\n data: data\r\n });\r\n};\r\n\r\nSVGShapeElement.prototype.setElementStyles = function(elementData){\r\n var arr = elementData.styles;\r\n var j, jLen = this.stylesList.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (!this.stylesList[j].closed) {\r\n arr.push(this.stylesList[j]);\r\n }\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.reloadShapes = function(){\r\n this._isFirstFrame = true;\r\n var i, len = this.itemsData.length;\r\n for( i = 0; i < len; i += 1) {\r\n this.prevViewData[i] = this.itemsData[i];\r\n }\r\n this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.layerElement, 0, [], true);\r\n this.filterUniqueShapes();\r\n len = this.dynamicProperties.length;\r\n for(i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n }\r\n this.renderModifiers();\r\n};\r\n\r\nSVGShapeElement.prototype.searchShapes = function(arr,itemsData,prevViewData,container, level, transformers, render){\r\n var ownTransformers = [].concat(transformers);\r\n var i, len = arr.length - 1;\r\n var j, jLen;\r\n var ownStyles = [], ownModifiers = [], styleOb, currentTransform, modifier, processedPos;\r\n for(i=len;i>=0;i-=1){\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n if(!processedPos){\r\n arr[i]._render = render;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n if(arr[i].ty == 'fl' || arr[i].ty == 'st' || arr[i].ty == 'gf' || arr[i].ty == 'gs'){\r\n if(!processedPos){\r\n itemsData[i] = this.createStyleElement(arr[i], level);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n if(arr[i]._render){\r\n container.appendChild(itemsData[i].style.pElem);\r\n }\r\n ownStyles.push(itemsData[i].style);\r\n }else if(arr[i].ty == 'gr'){\r\n if(!processedPos){\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n for(j=0;j horizontal & vertical\r\n // 2 -> horizontal only\r\n // 3 -> vertical only\r\n //\r\n var dimensions = this.filterManager.effectElements[1].p.v;\r\n var sigmaX = (dimensions == 3) ? 0 : sigma;\r\n var sigmaY = (dimensions == 2) ? 0 : sigma;\r\n\r\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + \" \" + sigmaY);\r\n\r\n // Repeat edges mapping:\r\n //\r\n // 0 -> off -> duplicate\r\n // 1 -> on -> wrap\r\n var edgeMode = (this.filterManager.effectElements[2].p.v == 1) ? 'wrap' : 'duplicate';\r\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\r\n }\r\n}\r\nfunction SVGStrokeEffect(elem, filterManager){\r\n this.initialized = false;\r\n this.filterManager = filterManager;\r\n this.elem = elem;\r\n this.paths = [];\r\n}\r\n\r\nSVGStrokeEffect.prototype.initialize = function(){\r\n\r\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\r\n var path,groupPath, i, len;\r\n if(this.filterManager.effectElements[1].p.v === 1){\r\n len = this.elem.maskManager.masksProperties.length;\r\n i = 0;\r\n } else {\r\n i = this.filterManager.effectElements[0].p.v - 1;\r\n len = i + 1;\r\n }\r\n groupPath = createNS('g'); \r\n groupPath.setAttribute('fill','none');\r\n groupPath.setAttribute('stroke-linecap','round');\r\n groupPath.setAttribute('stroke-dashoffset',1);\r\n for(i;i= max){\r\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\r\n } else {\r\n colorValue = (outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma));\r\n }\r\n table[pos++] = colorValue;\r\n cnt += 256/(segments-1);\r\n }\r\n return table.join(' ');\r\n};\r\n\r\nSVGProLevelsFilter.prototype.renderFrame = function(forceRender){\r\n if(forceRender || this.filterManager._mdf){\r\n var val, cnt, perc, bezier;\r\n var effectElements = this.filterManager.effectElements;\r\n if(this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)){\r\n val = this.getTableValue(effectElements[3].p.v,effectElements[4].p.v,effectElements[5].p.v,effectElements[6].p.v,effectElements[7].p.v);\r\n this.feFuncRComposed.setAttribute('tableValues',val);\r\n this.feFuncGComposed.setAttribute('tableValues',val);\r\n this.feFuncBComposed.setAttribute('tableValues',val);\r\n }\r\n\r\n\r\n if(this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)){\r\n val = this.getTableValue(effectElements[10].p.v,effectElements[11].p.v,effectElements[12].p.v,effectElements[13].p.v,effectElements[14].p.v);\r\n this.feFuncR.setAttribute('tableValues',val);\r\n }\r\n\r\n if(this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)){\r\n val = this.getTableValue(effectElements[17].p.v,effectElements[18].p.v,effectElements[19].p.v,effectElements[20].p.v,effectElements[21].p.v);\r\n this.feFuncG.setAttribute('tableValues',val);\r\n }\r\n\r\n if(this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)){\r\n val = this.getTableValue(effectElements[24].p.v,effectElements[25].p.v,effectElements[26].p.v,effectElements[27].p.v,effectElements[28].p.v);\r\n this.feFuncB.setAttribute('tableValues',val);\r\n }\r\n\r\n if(this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)){\r\n val = this.getTableValue(effectElements[31].p.v,effectElements[32].p.v,effectElements[33].p.v,effectElements[34].p.v,effectElements[35].p.v);\r\n this.feFuncA.setAttribute('tableValues',val);\r\n }\r\n \r\n }\r\n};\r\nfunction SVGDropShadowEffect(filter, filterManager) {\r\n var filterSize = filterManager.container.globalData.renderConfig.filterSize\r\n filter.setAttribute('x', filterSize.x);\r\n filter.setAttribute('y', filterSize.y);\r\n filter.setAttribute('width', filterSize.width);\r\n filter.setAttribute('height', filterSize.height);\r\n this.filterManager = filterManager;\r\n\r\n var feGaussianBlur = createNS('feGaussianBlur');\r\n feGaussianBlur.setAttribute('in','SourceAlpha');\r\n feGaussianBlur.setAttribute('result','drop_shadow_1');\r\n feGaussianBlur.setAttribute('stdDeviation','0');\r\n this.feGaussianBlur = feGaussianBlur;\r\n filter.appendChild(feGaussianBlur);\r\n\r\n var feOffset = createNS('feOffset');\r\n feOffset.setAttribute('dx','25');\r\n feOffset.setAttribute('dy','0');\r\n feOffset.setAttribute('in','drop_shadow_1');\r\n feOffset.setAttribute('result','drop_shadow_2');\r\n this.feOffset = feOffset;\r\n filter.appendChild(feOffset);\r\n var feFlood = createNS('feFlood');\r\n feFlood.setAttribute('flood-color','#00ff00');\r\n feFlood.setAttribute('flood-opacity','1');\r\n feFlood.setAttribute('result','drop_shadow_3');\r\n this.feFlood = feFlood;\r\n filter.appendChild(feFlood);\r\n\r\n var feComposite = createNS('feComposite');\r\n feComposite.setAttribute('in','drop_shadow_3');\r\n feComposite.setAttribute('in2','drop_shadow_2');\r\n feComposite.setAttribute('operator','in');\r\n feComposite.setAttribute('result','drop_shadow_4');\r\n filter.appendChild(feComposite);\r\n\r\n\r\n var feMerge = createNS('feMerge');\r\n filter.appendChild(feMerge);\r\n var feMergeNode;\r\n feMergeNode = createNS('feMergeNode');\r\n feMerge.appendChild(feMergeNode);\r\n feMergeNode = createNS('feMergeNode');\r\n feMergeNode.setAttribute('in','SourceGraphic');\r\n this.feMergeNode = feMergeNode;\r\n this.feMerge = feMerge;\r\n this.originalNodeAdded = false;\r\n feMerge.appendChild(feMergeNode);\r\n}\r\n\r\nSVGDropShadowEffect.prototype.renderFrame = function(forceRender){\r\n if(forceRender || this.filterManager._mdf){\r\n if(forceRender || this.filterManager.effectElements[4].p._mdf){\r\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\r\n }\r\n if(forceRender || this.filterManager.effectElements[0].p._mdf){\r\n var col = this.filterManager.effectElements[0].p.v;\r\n this.feFlood.setAttribute('flood-color',rgbToHex(Math.round(col[0]*255),Math.round(col[1]*255),Math.round(col[2]*255)));\r\n }\r\n if(forceRender || this.filterManager.effectElements[1].p._mdf){\r\n this.feFlood.setAttribute('flood-opacity',this.filterManager.effectElements[1].p.v/255);\r\n }\r\n if(forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf){\r\n var distance = this.filterManager.effectElements[3].p.v;\r\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\r\n var x = distance * Math.cos(angle);\r\n var y = distance * Math.sin(angle);\r\n this.feOffset.setAttribute('dx', x);\r\n this.feOffset.setAttribute('dy', y);\r\n }\r\n /*if(forceRender || this.filterManager.effectElements[5].p._mdf){\r\n if(this.filterManager.effectElements[5].p.v === 1 && this.originalNodeAdded) {\r\n this.feMerge.removeChild(this.feMergeNode);\r\n this.originalNodeAdded = false;\r\n } else if(this.filterManager.effectElements[5].p.v === 0 && !this.originalNodeAdded) {\r\n this.feMerge.appendChild(this.feMergeNode);\r\n this.originalNodeAdded = true;\r\n }\r\n }*/\r\n }\r\n};\r\nvar _svgMatteSymbols = [];\r\n\r\nfunction SVGMatte3Effect(filterElem, filterManager, elem){\r\n this.initialized = false;\r\n this.filterManager = filterManager;\r\n this.filterElem = filterElem;\r\n this.elem = elem;\r\n elem.matteElement = createNS('g');\r\n elem.matteElement.appendChild(elem.layerElement);\r\n elem.matteElement.appendChild(elem.transformedElement);\r\n elem.baseElement = elem.matteElement;\r\n}\r\n\r\nSVGMatte3Effect.prototype.findSymbol = function(mask) {\r\n var i = 0, len = _svgMatteSymbols.length;\r\n while(i < len) {\r\n if(_svgMatteSymbols[i] === mask) {\r\n return _svgMatteSymbols[i];\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n};\r\n\r\nSVGMatte3Effect.prototype.replaceInParent = function(mask, symbolId) {\r\n var parentNode = mask.layerElement.parentNode;\r\n if(!parentNode) {\r\n return;\r\n }\r\n var children = parentNode.children;\r\n var i = 0, len = children.length;\r\n while (i < len) {\r\n if (children[i] === mask.layerElement) {\r\n break;\r\n }\r\n i += 1;\r\n }\r\n var nextChild;\r\n if (i <= len - 2) {\r\n nextChild = children[i + 1];\r\n }\r\n var useElem = createNS('use');\r\n useElem.setAttribute('href', '#' + symbolId);\r\n if(nextChild) {\r\n parentNode.insertBefore(useElem, nextChild);\r\n } else {\r\n parentNode.appendChild(useElem);\r\n }\r\n};\r\n\r\nSVGMatte3Effect.prototype.setElementAsMask = function(elem, mask) {\r\n if(!this.findSymbol(mask)) {\r\n var symbolId = createElementID();\r\n var masker = createNS('mask');\r\n masker.setAttribute('id', mask.layerId);\r\n masker.setAttribute('mask-type', 'alpha');\r\n _svgMatteSymbols.push(mask);\r\n var defs = elem.globalData.defs;\r\n defs.appendChild(masker);\r\n var symbol = createNS('symbol');\r\n symbol.setAttribute('id', symbolId);\r\n this.replaceInParent(mask, symbolId);\r\n symbol.appendChild(mask.layerElement);\r\n defs.appendChild(symbol);\r\n var useElem = createNS('use');\r\n useElem.setAttribute('href', '#' + symbolId);\r\n masker.appendChild(useElem);\r\n mask.data.hd = false;\r\n mask.show();\r\n }\r\n elem.setMatte(mask.layerId);\r\n};\r\n\r\nSVGMatte3Effect.prototype.initialize = function() {\r\n var ind = this.filterManager.effectElements[0].p.v;\r\n var elements = this.elem.comp.elements;\r\n var i = 0, len = elements.length;\r\n while (i < len) {\r\n \tif (elements[i] && elements[i].data.ind === ind) {\r\n \t\tthis.setElementAsMask(this.elem, elements[i]);\r\n \t}\r\n \ti += 1;\r\n }\r\n this.initialized = true;\r\n};\r\n\r\nSVGMatte3Effect.prototype.renderFrame = function() {\r\n\tif(!this.initialized) {\r\n\t\tthis.initialize();\r\n\t}\r\n};\r\nfunction SVGEffects(elem){\r\n var i, len = elem.data.ef ? elem.data.ef.length : 0;\r\n var filId = createElementID();\r\n var fil = filtersFactory.createFilter(filId);\r\n var count = 0;\r\n this.filters = [];\r\n var filterManager;\r\n for(i=0;i canvasRel && par === 'xMidYMid slice') || (imgRel < canvasRel && par !== 'xMidYMid slice')) {\r\n heightCrop = imgH;\r\n widthCrop = heightCrop*canvasRel;\r\n } else {\r\n widthCrop = imgW;\r\n heightCrop = widthCrop/canvasRel;\r\n }\r\n ctx.drawImage(this.img,(imgW-widthCrop)/2,(imgH-heightCrop)/2,widthCrop,heightCrop,0,0,this.assetData.w,this.assetData.h);\r\n this.img = canvas;\r\n }\r\n\r\n};\r\n\r\nCVImageElement.prototype.renderInnerContent = function(parentMatrix){\r\n this.canvasContext.drawImage(this.img, 0, 0);\r\n};\r\n\r\nCVImageElement.prototype.destroy = function(){\r\n this.img = null;\r\n};\r\nfunction CVCompElement(data, globalData, comp) {\r\n this.completeLayers = false;\r\n this.layers = data.layers;\r\n this.pendingElements = [];\r\n this.elements = createSizedArray(this.layers.length);\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this,data.tm,0,globalData.frameRate, this) : {_placeholder:true};\r\n}\r\n\r\nextendPrototype([CanvasRenderer, ICompElement, CVBaseElement], CVCompElement);\r\n\r\nCVCompElement.prototype.renderInnerContent = function() {\r\n var ctx = this.canvasContext;\r\n ctx.beginPath();\r\n ctx.moveTo(0, 0);\r\n ctx.lineTo(this.data.w, 0);\r\n ctx.lineTo(this.data.w, this.data.h);\r\n ctx.lineTo(0, this.data.h);\r\n ctx.lineTo(0, 0);\r\n ctx.clip();\r\n var i,len = this.layers.length;\r\n for( i = len - 1; i >= 0; i -= 1 ){\r\n if(this.completeLayers || this.elements[i]){\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n};\r\n\r\nCVCompElement.prototype.destroy = function(){\r\n var i,len = this.layers.length;\r\n for( i = len - 1; i >= 0; i -= 1 ){\r\n if(this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n this.layers = null;\r\n this.elements = null;\r\n};\r\n\r\nfunction CVMaskElement(data,element){\r\n this.data = data;\r\n this.element = element;\r\n this.masksProperties = this.data.masksProperties || [];\r\n this.viewData = createSizedArray(this.masksProperties.length);\r\n var i, len = this.masksProperties.length, hasMasks = false;\r\n for (i = 0; i < len; i++) {\r\n if(this.masksProperties[i].mode !== 'n'){\r\n hasMasks = true;\r\n }\r\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element,this.masksProperties[i],3);\r\n }\r\n this.hasMasks = hasMasks;\r\n if(hasMasks) {\r\n this.element.addRenderableComponent(this);\r\n }\r\n}\r\n\r\nCVMaskElement.prototype.renderFrame = function () {\r\n if(!this.hasMasks){\r\n return;\r\n }\r\n var transform = this.element.finalTransform.mat;\r\n var ctx = this.element.canvasContext;\r\n var i, len = this.masksProperties.length;\r\n var pt,pts,data;\r\n ctx.beginPath();\r\n for (i = 0; i < len; i++) {\r\n if(this.masksProperties[i].mode !== 'n'){\r\n if (this.masksProperties[i].inv) {\r\n ctx.moveTo(0, 0);\r\n ctx.lineTo(this.element.globalData.compSize.w, 0);\r\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\r\n ctx.lineTo(0, this.element.globalData.compSize.h);\r\n ctx.lineTo(0, 0);\r\n }\r\n data = this.viewData[i].v;\r\n pt = transform.applyToPointArray(data.v[0][0],data.v[0][1],0);\r\n ctx.moveTo(pt[0], pt[1]);\r\n var j, jLen = data._length;\r\n for (j = 1; j < jLen; j++) {\r\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\r\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\r\n }\r\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\r\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\r\n }\r\n }\r\n this.element.globalData.renderer.save(true);\r\n ctx.clip();\r\n};\r\n\r\nCVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\r\n\r\nCVMaskElement.prototype.destroy = function(){\r\n this.element = null;\r\n};\r\nfunction CVShapeElement(data, globalData, comp) {\r\n this.shapes = [];\r\n this.shapesData = data.shapes;\r\n this.stylesList = [];\r\n this.itemsData = [];\r\n this.prevViewData = [];\r\n this.shapeModifiers = [];\r\n this.processedElements = [];\r\n this.transformsManager = new ShapeTransformManager();\r\n this.initElement(data, globalData, comp);\r\n}\r\n\r\nextendPrototype([BaseElement,TransformElement,CVBaseElement,IShapeElement,HierarchyElement,FrameElement,RenderableElement], CVShapeElement);\r\n\r\nCVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\r\n\r\nCVShapeElement.prototype.transformHelper = {opacity:1,_opMdf:false};\r\n\r\nCVShapeElement.prototype.dashResetter = [];\r\n\r\nCVShapeElement.prototype.createContent = function(){\r\n this.searchShapes(this.shapesData,this.itemsData,this.prevViewData, true, []);\r\n};\r\n\r\nCVShapeElement.prototype.createStyleElement = function(data, transforms) {\r\n var styleElem = {\r\n data: data,\r\n type: data.ty,\r\n preTransforms: this.transformsManager.addTransformSequence(transforms),\r\n transforms: [],\r\n elements: [],\r\n closed: data.hd === true\r\n };\r\n var elementData = {};\r\n if(data.ty == 'fl' || data.ty == 'st'){\r\n elementData.c = PropertyFactory.getProp(this,data.c,1,255,this);\r\n if(!elementData.c.k){\r\n styleElem.co = 'rgb('+bm_floor(elementData.c.v[0])+','+bm_floor(elementData.c.v[1])+','+bm_floor(elementData.c.v[2])+')';\r\n }\r\n } else if (data.ty === 'gf' || data.ty === 'gs') {\r\n elementData.s = PropertyFactory.getProp(this,data.s,1,null,this);\r\n elementData.e = PropertyFactory.getProp(this,data.e,1,null,this);\r\n elementData.h = PropertyFactory.getProp(this,data.h||{k:0},0,0.01,this);\r\n elementData.a = PropertyFactory.getProp(this,data.a||{k:0},0,degToRads,this);\r\n elementData.g = new GradientProperty(this,data.g,this);\r\n }\r\n elementData.o = PropertyFactory.getProp(this,data.o,0,0.01,this);\r\n if(data.ty == 'st' || data.ty == 'gs') {\r\n styleElem.lc = this.lcEnum[data.lc] || 'round';\r\n styleElem.lj = this.ljEnum[data.lj] || 'round';\r\n if(data.lj == 1) {\r\n styleElem.ml = data.ml;\r\n }\r\n elementData.w = PropertyFactory.getProp(this,data.w,0,null,this);\r\n if(!elementData.w.k){\r\n styleElem.wi = elementData.w.v;\r\n }\r\n if(data.d){\r\n var d = new DashProperty(this,data.d,'canvas', this);\r\n elementData.d = d;\r\n if(!elementData.d.k){\r\n styleElem.da = elementData.d.dashArray;\r\n styleElem.do = elementData.d.dashoffset[0];\r\n }\r\n }\r\n } else {\r\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\r\n }\r\n this.stylesList.push(styleElem);\r\n elementData.style = styleElem;\r\n return elementData;\r\n};\r\n\r\nCVShapeElement.prototype.createGroupElement = function(data) {\r\n var elementData = {\r\n it: [],\r\n prevViewData: []\r\n };\r\n return elementData;\r\n};\r\n\r\nCVShapeElement.prototype.createTransformElement = function(data) {\r\n var elementData = {\r\n transform : {\r\n opacity: 1,\r\n _opMdf:false,\r\n key: this.transformsManager.getNewKey(),\r\n op: PropertyFactory.getProp(this,data.o,0,0.01,this),\r\n mProps: TransformPropertyFactory.getTransformProperty(this,data,this)\r\n }\r\n };\r\n return elementData;\r\n};\r\n\r\nCVShapeElement.prototype.createShapeElement = function(data) {\r\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\r\n \r\n this.shapes.push(elementData);\r\n this.addShapeToModifiers(elementData);\r\n return elementData;\r\n};\r\n\r\nCVShapeElement.prototype.reloadShapes = function() {\r\n this._isFirstFrame = true;\r\n var i, len = this.itemsData.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.prevViewData[i] = this.itemsData[i];\r\n }\r\n this.searchShapes(this.shapesData,this.itemsData,this.prevViewData, true, []);\r\n len = this.dynamicProperties.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n }\r\n this.renderModifiers();\r\n this.transformsManager.processSequences(this._isFirstFrame);\r\n};\r\n\r\nCVShapeElement.prototype.addTransformToStyleList = function(transform) {\r\n var i, len = this.stylesList.length;\r\n for (i = 0; i < len; i += 1) {\r\n if(!this.stylesList[i].closed) {\r\n this.stylesList[i].transforms.push(transform);\r\n }\r\n }\r\n}\r\n\r\nCVShapeElement.prototype.removeTransformFromStyleList = function() {\r\n var i, len = this.stylesList.length;\r\n for (i = 0; i < len; i += 1) {\r\n if(!this.stylesList[i].closed) {\r\n this.stylesList[i].transforms.pop();\r\n }\r\n }\r\n}\r\n\r\nCVShapeElement.prototype.closeStyles = function(styles) {\r\n var i, len = styles.length, j, jLen;\r\n for (i = 0; i < len; i += 1) {\r\n styles[i].closed = true;\r\n }\r\n}\r\n\r\nCVShapeElement.prototype.searchShapes = function(arr,itemsData, prevViewData, shouldRender, transforms){\r\n var i, len = arr.length - 1;\r\n var j, jLen;\r\n var ownStyles = [], ownModifiers = [], processedPos, modifier, currentTransform;\r\n var ownTransforms = [].concat(transforms);\r\n for(i=len;i>=0;i-=1){\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n if(!processedPos){\r\n arr[i]._shouldRender = shouldRender;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n if(arr[i].ty == 'fl' || arr[i].ty == 'st'|| arr[i].ty == 'gf'|| arr[i].ty == 'gs'){\r\n if(!processedPos){\r\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n \r\n ownStyles.push(itemsData[i].style);\r\n }else if(arr[i].ty == 'gr'){\r\n if(!processedPos){\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n for(j=0;j=0;i-=1){\r\n if(items[i].ty == 'tr'){\r\n groupTransform = data[i].transform;\r\n this.renderShapeTransform(parentTransform, groupTransform);\r\n }else if(items[i].ty == 'sh' || items[i].ty == 'el' || items[i].ty == 'rc' || items[i].ty == 'sr'){\r\n this.renderPath(items[i],data[i]);\r\n }else if(items[i].ty == 'fl'){\r\n this.renderFill(items[i],data[i],groupTransform);\r\n }else if(items[i].ty == 'st'){\r\n this.renderStroke(items[i],data[i],groupTransform);\r\n }else if(items[i].ty == 'gf' || items[i].ty == 'gs'){\r\n this.renderGradientFill(items[i],data[i],groupTransform);\r\n }else if(items[i].ty == 'gr'){\r\n this.renderShape(groupTransform,items[i].it,data[i].it);\r\n }else if(items[i].ty == 'tm'){\r\n //\r\n }\r\n }\r\n if(isMain){\r\n this.drawLayer();\r\n }\r\n \r\n};\r\n\r\nCVShapeElement.prototype.renderStyledShape = function(styledShape, shape){\r\n if(this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\r\n var shapeNodes = styledShape.trNodes;\r\n var paths = shape.paths;\r\n var i, len, j, jLen = paths._length;\r\n shapeNodes.length = 0;\r\n var groupTransformMat = styledShape.transforms.finalTransform;\r\n for (j = 0; j < jLen; j += 1) {\r\n var pathNodes = paths.shapes[j];\r\n if(pathNodes && pathNodes.v){\r\n len = pathNodes._length;\r\n for (i = 1; i < len; i += 1) {\r\n if (i === 1) {\r\n shapeNodes.push({\r\n t: 'm',\r\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\r\n });\r\n }\r\n shapeNodes.push({\r\n t: 'c',\r\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\r\n });\r\n }\r\n if (len === 1) {\r\n shapeNodes.push({\r\n t: 'm',\r\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\r\n });\r\n }\r\n if (pathNodes.c && len) {\r\n shapeNodes.push({\r\n t: 'c',\r\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\r\n });\r\n shapeNodes.push({\r\n t: 'z'\r\n });\r\n }\r\n }\r\n }\r\n styledShape.trNodes = shapeNodes;\r\n }\r\n}\r\n\r\nCVShapeElement.prototype.renderPath = function(pathData,itemData){\r\n if(pathData.hd !== true && pathData._shouldRender) {\r\n var i, len = itemData.styledShapes.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\r\n }\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderFill = function(styleData,itemData, groupTransform){\r\n var styleElem = itemData.style;\r\n\r\n if (itemData.c._mdf || this._isFirstFrame) {\r\n styleElem.co = 'rgb(' \r\n + bm_floor(itemData.c.v[0]) + ',' \r\n + bm_floor(itemData.c.v[1]) + ',' \r\n + bm_floor(itemData.c.v[2]) + ')';\r\n }\r\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderGradientFill = function(styleData,itemData, groupTransform){\r\n var styleElem = itemData.style;\r\n if(!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || (styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf))) {\r\n var ctx = this.globalData.canvasContext;\r\n var grd;\r\n var pt1 = itemData.s.v, pt2 = itemData.e.v;\r\n if (styleData.t === 1) {\r\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\r\n } else {\r\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\r\n\r\n var percent = itemData.h.v >= 1 ? 0.99 : itemData.h.v <= -1 ? -0.99: itemData.h.v;\r\n var dist = rad * percent;\r\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\r\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\r\n var grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\r\n }\r\n\r\n var i, len = styleData.g.p;\r\n var cValues = itemData.g.c;\r\n var opacity = 1;\r\n\r\n for (i = 0; i < len; i += 1){\r\n if(itemData.g._hasOpacity && itemData.g._collapsable) {\r\n opacity = itemData.g.o[i*2 + 1];\r\n }\r\n grd.addColorStop(cValues[i * 4] / 100,'rgba('+ cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ','+cValues[i * 4 + 3] + ',' + opacity + ')');\r\n }\r\n styleElem.grd = grd;\r\n }\r\n styleElem.coOp = itemData.o.v*groupTransform.opacity;\r\n \r\n};\r\n\r\nCVShapeElement.prototype.renderStroke = function(styleData,itemData, groupTransform){\r\n var styleElem = itemData.style;\r\n var d = itemData.d;\r\n if(d && (d._mdf || this._isFirstFrame)){\r\n styleElem.da = d.dashArray;\r\n styleElem.do = d.dashoffset[0];\r\n }\r\n if(itemData.c._mdf || this._isFirstFrame){\r\n styleElem.co = 'rgb('+bm_floor(itemData.c.v[0])+','+bm_floor(itemData.c.v[1])+','+bm_floor(itemData.c.v[2])+')';\r\n }\r\n if(itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame){\r\n styleElem.coOp = itemData.o.v*groupTransform.opacity;\r\n }\r\n if(itemData.w._mdf || this._isFirstFrame){\r\n styleElem.wi = itemData.w.v;\r\n }\r\n};\r\n\r\n\r\nCVShapeElement.prototype.destroy = function(){\r\n this.shapesData = null;\r\n this.globalData = null;\r\n this.canvasContext = null;\r\n this.stylesList.length = 0;\r\n this.itemsData.length = 0;\r\n};\r\n\r\n\r\nfunction CVSolidElement(data, globalData, comp) {\r\n this.initElement(data,globalData,comp);\r\n}\r\nextendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\r\n\r\nCVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\r\nCVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\r\n\r\nCVSolidElement.prototype.renderInnerContent = function() {\r\n var ctx = this.canvasContext;\r\n ctx.fillStyle = this.data.sc;\r\n ctx.fillRect(0, 0, this.data.sw, this.data.sh);\r\n //\r\n};\r\nfunction CVTextElement(data, globalData, comp){\r\n this.textSpans = [];\r\n this.yOffset = 0;\r\n this.fillColorAnim = false;\r\n this.strokeColorAnim = false;\r\n this.strokeWidthAnim = false;\r\n this.stroke = false;\r\n this.fill = false;\r\n this.justifyOffset = 0;\r\n this.currentRender = null;\r\n this.renderType = 'canvas';\r\n this.values = {\r\n fill: 'rgba(0,0,0,0)',\r\n stroke: 'rgba(0,0,0,0)',\r\n sWidth: 0,\r\n fValue: ''\r\n };\r\n this.initElement(data,globalData,comp);\r\n}\r\nextendPrototype([BaseElement,TransformElement,CVBaseElement,HierarchyElement,FrameElement,RenderableElement,ITextElement], CVTextElement);\r\n\r\nCVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\r\n\r\nCVTextElement.prototype.buildNewText = function(){\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\r\n\r\n var hasFill = false;\r\n if(documentData.fc) {\r\n hasFill = true;\r\n this.values.fill = this.buildColor(documentData.fc);\r\n }else{\r\n this.values.fill = 'rgba(0,0,0,0)';\r\n }\r\n this.fill = hasFill;\r\n var hasStroke = false;\r\n if(documentData.sc){\r\n hasStroke = true;\r\n this.values.stroke = this.buildColor(documentData.sc);\r\n this.values.sWidth = documentData.sw;\r\n }\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n var i, len;\r\n var letters = documentData.l;\r\n var matrixHelper = this.mHelper;\r\n this.stroke = hasStroke;\r\n this.values.fValue = documentData.finalSize + 'px '+ this.globalData.fontManager.getFontByName(documentData.f).fFamily;\r\n len = documentData.finalText.length;\r\n //this.tHelper.font = this.values.fValue;\r\n var charData, shapeData, k, kLen, shapes, j, jLen, pathNodes, commands, pathArr, singleShape = this.data.singleShape;\r\n var trackingOffset = documentData.tr/1000*documentData.finalSize;\r\n var xPos = 0, yPos = 0, firstLine = true;\r\n var cnt = 0;\r\n for (i = 0; i < len; i += 1) {\r\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n shapeData = charData && charData.data || {};\r\n matrixHelper.reset();\r\n if(singleShape && letters[i].n) {\r\n xPos = -trackingOffset;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n firstLine = false;\r\n }\r\n\r\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\r\n jLen = shapes.length;\r\n matrixHelper.scale(documentData.finalSize/100,documentData.finalSize/100);\r\n if(singleShape){\r\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\r\n }\r\n commands = createSizedArray(jLen);\r\n for(j=0;j